Version
menu_open
Wwise SDK 2023.1.4
HostPropertySet.h
Go to the documentation of this file.
1 /*******************************************************************************
2 The content of this file includes portions of the AUDIOKINETIC Wwise Technology
3 released in source code form as part of the SDK installer package.
4 
5 Commercial License Usage
6 
7 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology
8 may use this file in accordance with the end user license agreement provided
9 with the software or, alternatively, in accordance with the terms contained in a
10 written agreement between you and Audiokinetic Inc.
11 
12 Apache License Usage
13 
14 Alternatively, this file may be used under the Apache License, Version 2.0 (the
15 "Apache License"); you may not use this file except in compliance with the
16 Apache License. You may obtain a copy of the Apache License at
17 http://www.apache.org/licenses/LICENSE-2.0.
18 
19 Unless required by applicable law or agreed to in writing, software distributed
20 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
21 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for
22 the specific language governing permissions and limitations under the License.
23 
24  Copyright (c) 2024 Audiokinetic Inc.
25 *******************************************************************************/
26 
27 /**
28  * \brief Wwise Authoring Plug-ins - Plug-in API for property sets.
29  * \file AK/Wwise/Plugin/HostPropertySet.h
30  */
31 
32 #pragma once
33 
34 #include "PluginInfoGenerator.h"
35 
36 
37 /**
38  * \brief Interface used to interact with property sets.
39  *
40  * A property set is a dictionary of properties, as stored inside a user's Authoring project. Whenever a
41  * property name is specified, it corresponds to the property name as set in the plug-in's XML
42  * definition file.
43  *
44  * By default, Authoring will provide a property set, as defined in the XML definition file. It is
45  * possible to have more than one property set by requesting ak_wwise_plugin_host_object_store_v1, and
46  * adding \c InnerTypes in the XML definition file.
47  *
48  * This interface supports both the unique default property set, as well as Object Store's inner
49  * property sets.
50  *
51  * You can also subscribe to notifications through ak_wwise_plugin_notifications_property_set_v1 in order to
52  * be informed when some property set values changed.
53  *
54  * \aknote
55  * Most methods assume you acquired access to a platform as a GUID; either provided by the caller function,
56  * or retrieved through the Host interface.
57  *
58  * The usual providers of this GUID are \ref ak_wwise_plugin_audio_plugin_v1::GetBankParameters
59  * and \ref ak_wwise_plugin_audio_plugin_v1::GetPluginData method parameters.
60  *
61  * You can also poll up-to-date GUIDs from \ref ak_wwise_plugin_host_v1 methods, such as
62  * \ref ak_wwise_plugin_host_v1::GetCurrentPlatform.
63  *
64  * Finally, you can also provide GUID_NULL as a parameter, which will access data for all platforms at
65  * once (linked value). This is adequate only in certain cases where no platform-specific data is
66  * possible for a value. Using the current platform is always the preferred method of access.
67  * \endaknote
68  *
69  * \sa
70  * - \ref wwiseplugin_xml_properties_tag
71  * - \ref wwiseplugin_propertyset
72  * - \ref ak_wwise_plugin_notifications_property_set_v1
73  * - \ref ak_wwise_plugin_host_object_store_v1
74  */
76 #ifdef __cplusplus
78 #endif
79 {
80 #ifndef __cplusplus
81  ak_wwise_plugin_base_interface m_baseInterface;
82 #endif
83 
84 #ifdef __cplusplus
85  /// Base host-provided instance type for ak_wwise_plugin_host_property_set_v1.
89  {}
90 #endif
91 
92  /**
93  * \deprecated
94  * \brief Retrieves the value of a specific property as a variant.
95  *
96  * \akwarning
97  * This is a semi-private function. You should use the typed GetValue methods instead.
98  *
99  * \ref GetValueString, \ref GetValueInt64, \ref GetValueInt32, \ref GetValueInt16,
100  * \ref GetValueInt8, \ref GetValueUInt64, \ref GetValueUInt32, \ref GetValueUInt16,
101  * \ref GetValueUInt8, \ref GetValueReal64 \ref GetValueReal32, \ref GetValueBool
102  *
103  * The function can still be useful if you want to handle parameters as a black box, getting a
104  * value without knowing the type, and then setting that value elsewhere.
105  * \endakwarning
106  *
107  * \sa
108  * - \ref wwiseplugin_bank
109  *
110  * \param[in] in_this Current instance of this interface.
111  * \param[in] in_guidPlatform The unique ID of the queried platform.
112  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
113  * \param[out] out_varProperty The returned value of the property.
114  * \return true if successful.
115  */
116  bool(*GetValue)(
117  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
118  const GUID* in_guidPlatform,
119  const char * in_pszPropertyName,
120  AK::WwiseAuthoringAPI::AkVariantBase* out_varProperty
121  );
122 
123  /**
124  * \deprecated
125  * \brief Modifies the value of a specific property as a variant.
126  *
127  * Updates the property \c in_pszPropertyName to contain \c in_varProperty under the
128  * \c in_guidPlatform platform.
129  *
130  * The property type, as contained by \c in_varProperty, should be equal to the
131  * type as defined in the plug-in XML definition file.
132  *
133  * \aknote
134  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
135  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
136  *
137  * More than one platform will be affected if the property is linked
138  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
139  * \endaknote
140  *
141  * \akwarning
142  * This is a semi-private function. You should use the typed SetValue methods instead.
143  *
144  * \ref SetValueString, \ref SetValueInt64, \ref SetValueInt32, \ref SetValueInt16,
145  * \ref SetValueInt8, \ref SetValueUInt64, \ref SetValueUInt32, \ref SetValueUInt16,
146  * \ref SetValueUInt8, \ref SetValueReal64 \ref SetValueReal32, \ref SetValueBool
147  *
148  * The function can still be useful if you want to handle parameters as a black box, getting a
149  * value without knowing the type, and then setting that value elsewhere.
150  * \endakwarning
151  *
152  * \sa
153  * - \ref wwiseplugin_bank
154  *
155  * \param[in] in_this Current instance of this interface.
156  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
157  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
158  * \param[out] in_varProperty The new value of the property.
159  * \return true if successful.
160  */
161  bool(*SetValue)(
163  const GUID* in_guidPlatform,
164  const char * in_pszPropertyName,
165  const AK::WwiseAuthoringAPI::AkVariantBase* in_varProperty
166  );
167 
168  /**
169  * \brief Returns true if the specified property exists.
170  *
171  * \param[in] in_this Current instance of this interface.
172  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to check.
173  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
174  * \return true if property exists.
175  */
177  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
178  const GUID* in_guidPlatform,
179  const char * in_pszPropertyName
180  );
181 
182  /**
183  * \brief Get the RTPC binding status for the specified property.
184  *
185  * \param[in] in_this Current instance of this interface.
186  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
187  * \return true if property is bound to an RTPC.
188  */
190  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
191  const char * in_pszPropertyName
192  );
193 
194  /**
195  * \brief Returns whether the specified property is bound to a state object.
196  *
197  * \sa
198  * - \ref concept_state
199  *
200  * \param[in] in_this Current instance of this interface.
201  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
202  * \return true if property is bound to a state.
203  */
205  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
206  const char * in_pszPropertyName
207  );
208 
209  /**
210  * \brief Returns whether the specified property has at least some linked platforms.
211  *
212  * By default, all platforms are linked.
213  *
214  * \param[in] in_this Current instance of this interface.
215  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
216  * \return true if that particular property has some linked platforms.
217  */
219  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
220  const char * in_pszPropertyName
221  );
222 
223  /**
224  * \brief Returns whether the specified property has at least some platforms that are not linked.
225  *
226  * By default, all platforms are linked.
227  *
228  * \param[in] in_this Current instance of this interface.
229  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
230  * \return true if that particular property has some unlinked platforms.
231  */
233  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
234  const char * in_pszPropertyName
235  );
236 
237  /**
238  * \brief Returns whether the specified property's platform is linked.
239  *
240  * By default, all platforms are linked.
241  *
242  * \param[in] in_this Current instance of this interface.
243  * \param[in] in_guidPlatform The unique ID of the queried platform.
244  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
245  * \return true if the specified property specifically has the specified platform linked.
246  */
248  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
249  const GUID* in_guidPlatform,
250  const char * in_pszPropertyName
251  );
252 
253  /**
254  * \brief Returns the internal unique identifier of the corresponding object.
255  *
256  * For the plug-in property set, this is equivalent to the ID field in the project files.
257  *
258  * For inner property sets, as defined in Object Stores, that value is dynamic and only valid for
259  * this session.
260  *
261  * \aknote
262  * This value is provided mostly for information during the development process.
263  *
264  * The ID might change on Undo or Redo operations.
265  * \endaknote
266  *
267  * \param[in] in_this Current instance of this interface.
268  * \return GUID of the corresponding object.
269  */
270  const GUID*(*GetID)(
272  );
273 
274  /**
275  * \brief Retrieves the type of a specific property.
276  *
277  * The return value can contain AK::WwiseAuthoringAPI::AkVariantTypeBase
278  * enumeration values.
279  *
280  * \param[in] in_this Current instance of this interface.
281  * \param[in] in_guidPlatform The unique ID of the queried platform.
282  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
283  * \return A AK::WwiseAuthoringAPI::AkVariantTypeBase value.
284  */
285  int (*GetType)(
286  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
287  const GUID* in_guidPlatform,
288  const char * in_pszPropertyName
289  );
290 
291  /**
292  * \brief Resets a property value to its default.
293  *
294  * This is different than setting the value to the default value. Once saved,
295  * this property set value line will disappear from the project file.
296  *
297  * \param[in] in_this Current instance of this interface.
298  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
299  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
300  * \return true if successful.
301  */
302  bool(*ClearValue)(
304  const GUID* in_guidPlatform,
305  const char * in_pszPropertyName
306  );
307 
308  /**
309  * \brief Modifies a property to a string value.
310  *
311  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
312  * \c in_guidPlatform platform.
313  *
314  * The plug-in XML definition file should define this property as a \c string in order to use
315  * this method.
316  *
317  * \aknote
318  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
319  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
320  *
321  * More than one platform will be affected if the property is linked
322  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
323  * \endaknote
324  *
325  * \sa
326  * - \ref wwiseplugin_bank
327  *
328  * \param[in] in_this Current instance of this interface.
329  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
330  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
331  * \param[out] in_propertyValue The new value of the property.
332  * \return true if successful.
333  */
336  const GUID* in_guidPlatform,
337  const char * in_pszPropertyName,
338  const char* in_propertyValue
339  );
340 
341  /**
342  * \brief Modifies a property to a 64-bit signed integer value.
343  *
344  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
345  * \c in_guidPlatform platform.
346  *
347  * The plug-in XML definition file should define this property as a \c int64 in order to use
348  * this method.
349  *
350  * \aknote
351  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
352  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
353  *
354  * More than one platform will be affected if the property is linked
355  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
356  * \endaknote
357  *
358  * \sa
359  * - \ref wwiseplugin_bank
360  *
361  * \param[in] in_this Current instance of this interface.
362  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
363  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
364  * \param[out] in_propertyValue The new value of the property.
365  * \return true if successful.
366  */
369  const GUID* in_guidPlatform,
370  const char * in_pszPropertyName,
371  int64_t in_propertyValue
372  );
373 
374  /**
375  * \brief Modifies a property to a 32-bit signed integer value.
376  *
377  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
378  * \c in_guidPlatform platform.
379  *
380  * The plug-in XML definition file should define this property as a \c int32 in order to use
381  * this method.
382  *
383  * \aknote
384  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
385  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
386  *
387  * More than one platform will be affected if the property is linked
388  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
389  * \endaknote
390  *
391  * \sa
392  * - \ref wwiseplugin_bank
393  *
394  * \param[in] in_this Current instance of this interface.
395  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
396  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
397  * \param[out] in_propertyValue The new value of the property.
398  * \return true if successful.
399  */
402  const GUID* in_guidPlatform,
403  const char * in_pszPropertyName,
404  int32_t in_propertyValue
405  );
406 
407  /**
408  * \brief Modifies a property to a 16-bit signed integer value.
409  *
410  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
411  * \c in_guidPlatform platform.
412  *
413  * The plug-in XML definition file should define this property as a \c int16 in order to use
414  * this method.
415  *
416  * \aknote
417  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
418  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
419  *
420  * More than one platform will be affected if the property is linked
421  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
422  * \endaknote
423  *
424  * \sa
425  * - \ref wwiseplugin_bank
426  *
427  * \param[in] in_this Current instance of this interface.
428  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
429  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
430  * \param[out] in_propertyValue The new value of the property.
431  * \return true if successful.
432  */
435  const GUID* in_guidPlatform,
436  const char * in_pszPropertyName,
437  int16_t in_propertyValue
438  );
439 
440  /**
441  * \brief Modifies a property to an 8-bit signed integer value. (Future use)
442  *
443  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
444  * \c in_guidPlatform platform.
445  *
446  * \akwarning
447  * The plug-in XML definition file doesn't currently provide a \c int8 value type.
448  * \endakwarning
449  *
450  * \aknote
451  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
452  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
453  *
454  * More than one platform will be affected if the property is linked
455  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
456  * \endaknote
457  *
458  * \sa
459  * - \ref wwiseplugin_bank
460  *
461  * \param[in] in_this Current instance of this interface.
462  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
463  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
464  * \param[out] in_propertyValue The new value of the property.
465  * \return true if successful.
466  */
467  bool(*SetValueInt8)(
469  const GUID* in_guidPlatform,
470  const char * in_pszPropertyName,
471  int8_t in_propertyValue
472  );
473 
474  /**
475  * \brief Modifies a property to a 64-bit unsigned integer value. (Future use)
476  *
477  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
478  * \c in_guidPlatform platform.
479  *
480  * \akwarning
481  * The plug-in XML definition file doesn't currently provide a \c uint64 value type.
482  * \endakwarning
483  *
484  * \aknote
485  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
486  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
487  *
488  * More than one platform will be affected if the property is linked
489  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
490  * \endaknote
491  *
492  * \sa
493  * - \ref wwiseplugin_bank
494  *
495  * \param[in] in_this Current instance of this interface.
496  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
497  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
498  * \param[out] in_propertyValue The new value of the property.
499  * \return true if successful.
500  */
503  const GUID* in_guidPlatform,
504  const char * in_pszPropertyName,
505  uint64_t in_propertyValue
506  );
507 
508  /**
509  * \brief Modifies a property to a 32-bit unsigned integer value. (Future use)
510  *
511  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
512  * \c in_guidPlatform platform.
513  *
514  * \akwarning
515  * The plug-in XML definition file doesn't currently provide a \c uint32 value type.
516  * \endakwarning
517  *
518  * \aknote
519  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
520  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
521  *
522  * More than one platform will be affected if the property is linked
523  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
524  * \endaknote
525  *
526  * \sa
527  * - \ref wwiseplugin_bank
528  *
529  * \param[in] in_this Current instance of this interface.
530  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
531  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
532  * \param[out] in_propertyValue The new value of the property.
533  * \return true if successful.
534  */
537  const GUID* in_guidPlatform,
538  const char * in_pszPropertyName,
539  uint32_t in_propertyValue
540  );
541 
542  /**
543  * \brief Modifies a property to a 16-bit unsigned integer value. (Future use)
544  *
545  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
546  * \c in_guidPlatform platform.
547  *
548  * \akwarning
549  * The plug-in XML definition file doesn't currently provide a \c uint16 value type.
550  * \endakwarning
551  *
552  * \aknote
553  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
554  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
555  *
556  * More than one platform will be affected if the property is linked
557  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
558  * \endaknote
559  *
560  * \sa
561  * - \ref wwiseplugin_bank
562  *
563  * \param[in] in_this Current instance of this interface.
564  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
565  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
566  * \param[out] in_propertyValue The new value of the property.
567  * \return true if successful.
568  */
571  const GUID* in_guidPlatform,
572  const char * in_pszPropertyName,
573  uint16_t in_propertyValue
574  );
575 
576  /**
577  * \brief Modifies a property to an 8-bit unsigned integer value. (Future use)
578  *
579  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
580  * \c in_guidPlatform platform.
581  *
582  * \akwarning
583  * The plug-in XML definition file doesn't currently provide a \c uint8 value type.
584  * \endakwarning
585  *
586  * \aknote
587  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
588  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
589  *
590  * More than one platform will be affected if the property is linked
591  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
592  * \endaknote
593  *
594  * \sa
595  * - \ref wwiseplugin_bank
596  *
597  * \param[in] in_this Current instance of this interface.
598  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
599  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
600  * \param[out] in_propertyValue The new value of the property.
601  * \return true if successful.
602  */
605  const GUID* in_guidPlatform,
606  const char * in_pszPropertyName,
607  uint8_t in_propertyValue
608  );
609 
610  /**
611  * \brief Modifies a property to a 64-bit floating point value.
612  *
613  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
614  * \c in_guidPlatform platform.
615  *
616  * The plug-in XML definition file should define this property as a \c Real64 in order to use
617  * this method.
618  *
619  * \aknote
620  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
621  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
622  *
623  * More than one platform will be affected if the property is linked
624  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
625  * \endaknote
626  *
627  * \sa
628  * - \ref wwiseplugin_bank
629  *
630  * \param[in] in_this Current instance of this interface.
631  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
632  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
633  * \param[out] in_propertyValue The new value of the property.
634  * \return true if successful.
635  */
638  const GUID* in_guidPlatform,
639  const char * in_pszPropertyName,
640  double in_propertyValue
641  );
642 
643  /**
644  * \brief Modifies a property to a 32-bit floating point value.
645  *
646  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
647  * \c in_guidPlatform platform.
648  *
649  * The plug-in XML definition file should define this property as a \c Real32 in order to use
650  * this method.
651  *
652  * \aknote
653  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
654  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
655  *
656  * More than one platform will be affected if the property is linked
657  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
658  * \endaknote
659  *
660  * \sa
661  * - \ref wwiseplugin_bank
662  *
663  * \param[in] in_this Current instance of this interface.
664  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
665  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
666  * \param[out] in_propertyValue The new value of the property.
667  * \return true if successful.
668  */
671  const GUID* in_guidPlatform,
672  const char * in_pszPropertyName,
673  float in_propertyValue
674  );
675 
676  /**
677  * \brief Modifies a property to a boolean value.
678  *
679  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
680  * \c in_guidPlatform platform.
681  *
682  * The plug-in XML definition file should define this property as a \c bool in order to use
683  * this method.
684  *
685  * \aknote
686  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
687  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
688  *
689  * More than one platform will be affected if the property is linked
690  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
691  * \endaknote
692  *
693  * \sa
694  * - \ref wwiseplugin_bank
695  *
696  * \param[in] in_this Current instance of this interface.
697  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
698  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
699  * \param[out] in_propertyValue The new value of the property.
700  * \return true if successful.
701  */
702  bool(*SetValueBool)(
704  const GUID* in_guidPlatform,
705  const char * in_pszPropertyName,
706  bool in_propertyValue
707  );
708 
709  /**
710  * \brief Retrieves the string value of a specific property.
711  *
712  * The plug-in XML definition file should define this property as a \c string in order to use
713  * this method.
714  *
715  * \aknote
716  * The returned pointer is provided by Authoring, and contains a TLS copy of the property
717  * value string. It is guaranteed to be valid until the next Host function call. If you
718  * wish to retain this string, you should make a copy at the earliest convenience.
719  * \endaknote
720  *
721  * \sa
722  * - \ref wwiseplugin_bank
723  *
724  * \param[in] in_this Current instance of this interface.
725  * \param[in] in_guidPlatform The unique ID of the queried platform.
726  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
727  * \param[out] out_propertyValue The returned value of the property.
728  * The buffer is owned by Authoring and is valid until the next API call.
729  * \return true if successful.
730  */
732  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
733  const GUID* in_guidPlatform,
734  const char * in_pszPropertyName,
735  const char** out_propertyValue
736  );
737 
738  /**
739  * \brief Retrieves the 64-bit signed integer value of a specific property.
740  *
741  * The plug-in XML definition file should define this property as a \c int64 in order to use
742  * this method.
743  *
744  * \sa
745  * - \ref wwiseplugin_bank
746  *
747  * \param[in] in_this Current instance of this interface.
748  * \param[in] in_guidPlatform The unique ID of the queried platform.
749  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
750  * \param[out] out_propertyValue The returned value of the property.
751  * \return true if successful.
752  */
754  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
755  const GUID* in_guidPlatform,
756  const char * in_pszPropertyName,
757  int64_t* out_propertyValue
758  );
759 
760  /**
761  * \brief Retrieves the 32-bit signed integer value of a specific property.
762  *
763  * The plug-in XML definition file should define this property as a \c int32 in order to use
764  * this method.
765  *
766  * \sa
767  * - \ref wwiseplugin_bank
768  *
769  * \param[in] in_this Current instance of this interface.
770  * \param[in] in_guidPlatform The unique ID of the queried platform.
771  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
772  * \param[out] out_propertyValue The returned value of the property.
773  * \return true if successful.
774  */
776  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
777  const GUID* in_guidPlatform,
778  const char * in_pszPropertyName,
779  int32_t* out_propertyValue
780  );
781 
782  /**
783  * \brief Retrieves the 16-bit signed integer value of a specific property.
784  *
785  * The plug-in XML definition file should define this property as a \c int16 in order to use
786  * this method.
787  *
788  * \sa
789  * - \ref wwiseplugin_bank
790  *
791  * \param[in] in_this Current instance of this interface.
792  * \param[in] in_guidPlatform The unique ID of the queried platform.
793  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
794  * \param[out] out_propertyValue The returned value of the property.
795  * \return true if successful.
796  */
798  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
799  const GUID* in_guidPlatform,
800  const char * in_pszPropertyName,
801  int16_t* out_propertyValue
802  );
803 
804  /**
805  * \brief Retrieves the 8-bit signed integer value of a specific property. (Future use)
806  *
807  * \akwarning
808  * The plug-in XML definition file doesn't currently provide a \c int8 value type.
809  * \endakwarning
810  *
811  * \sa
812  * - \ref wwiseplugin_bank
813  *
814  * \param[in] in_this Current instance of this interface.
815  * \param[in] in_guidPlatform The unique ID of the queried platform.
816  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
817  * \param[out] out_propertyValue The returned value of the property.
818  * \return true if successful.
819  */
820  bool(*GetValueInt8)(
821  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
822  const GUID* in_guidPlatform,
823  const char * in_pszPropertyName,
824  int8_t* out_propertyValue
825  );
826 
827  /**
828  * \brief Retrieves the 64-bit unsigned integer value of a specific property. (Future use)
829  *
830  * \akwarning
831  * The plug-in XML definition file doesn't currently provide a \c uint64 value type.
832  * \endakwarning
833  *
834  * \sa
835  * - \ref wwiseplugin_bank
836  *
837  * \param[in] in_this Current instance of this interface.
838  * \param[in] in_guidPlatform The unique ID of the queried platform.
839  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
840  * \param[out] out_propertyValue The returned value of the property.
841  * \return true if successful.
842  */
844  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
845  const GUID* in_guidPlatform,
846  const char * in_pszPropertyName,
847  uint64_t* out_propertyValue
848  );
849 
850  /**
851  * \brief Retrieves the 32-bit unsigned integer value of a specific property. (Future use)
852  *
853  * \akwarning
854  * The plug-in XML definition file doesn't currently provide a \c uint32 value type.
855  * \endakwarning
856  *
857  * \sa
858  * - \ref wwiseplugin_bank
859  *
860  * \param[in] in_this Current instance of this interface.
861  * \param[in] in_guidPlatform The unique ID of the queried platform.
862  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
863  * \param[out] out_propertyValue The returned value of the property.
864  * \return true if successful.
865  */
867  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
868  const GUID* in_guidPlatform,
869  const char * in_pszPropertyName,
870  uint32_t* out_propertyValue
871  );
872 
873  /**
874  * \brief Retrieves the 16-bit unsigned integer value of a specific property. (Future use)
875  *
876  * \akwarning
877  * The plug-in XML definition file doesn't currently provide a \c uint16 value type.
878  * \endakwarning
879  *
880  * \sa
881  * - \ref wwiseplugin_bank
882  *
883  * \param[in] in_this Current instance of this interface.
884  * \param[in] in_guidPlatform The unique ID of the queried platform.
885  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
886  * \param[out] out_propertyValue The returned value of the property.
887  * \return true if successful.
888  */
890  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
891  const GUID* in_guidPlatform,
892  const char * in_pszPropertyName,
893  uint16_t* out_propertyValue
894  );
895 
896  /**
897  * \brief Retrieves the 8-bit unsigned integer value of a specific property. (Future use)
898  *
899  * \akwarning
900  * The plug-in XML definition file doesn't currently provide a \c uint8 value type.
901  * \endakwarning
902  *
903  * \sa
904  * - \ref wwiseplugin_bank
905  *
906  * \param[in] in_this Current instance of this interface.
907  * \param[in] in_guidPlatform The unique ID of the queried platform.
908  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
909  * \param[out] out_propertyValue The returned value of the property.
910  * \return true if successful.
911  */
913  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
914  const GUID* in_guidPlatform,
915  const char * in_pszPropertyName,
916  uint8_t* out_propertyValue
917  );
918 
919  /**
920  * \brief Retrieves the 64-bit floating point value of a specific property.
921  *
922  * The plug-in XML definition file should define this property as a \c Real64 in order to use
923  * this method.
924  *
925  * \sa
926  * - \ref wwiseplugin_bank
927  *
928  * \param[in] in_this Current instance of this interface.
929  * \param[in] in_guidPlatform The unique ID of the queried platform.
930  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
931  * \param[out] out_propertyValue The returned value of the property.
932  * \return true if successful.
933  */
935  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
936  const GUID* in_guidPlatform,
937  const char * in_pszPropertyName,
938  double* out_propertyValue
939  );
940 
941  /**
942  * \brief Retrieves the 32-bit floating point value of a specific property.
943  *
944  * The plug-in XML definition file should define this property as a \c Real32 in order to use
945  * this method.
946  *
947  * \sa
948  * - \ref wwiseplugin_bank
949  *
950  * \param[in] in_this Current instance of this interface.
951  * \param[in] in_guidPlatform The unique ID of the queried platform.
952  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
953  * \param[out] out_propertyValue The returned value of the property.
954  * \return true if successful.
955  */
957  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
958  const GUID* in_guidPlatform,
959  const char * in_pszPropertyName,
960  float* out_propertyValue
961  );
962 
963  /**
964  * \brief Retrieves the boolean value of a specific property.
965  *
966  * The plug-in XML definition file should define this property as a \c bool in order to use
967  * this method.
968  *
969  * \sa
970  * - \ref wwiseplugin_bank
971  *
972  * \param[in] in_this Current instance of this interface.
973  * \param[in] in_guidPlatform The unique ID of the queried platform.
974  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
975  * \param[out] out_propertyValue The returned value of the property.
976  * \return true if successful.
977  */
978  bool(*GetValueBool)(
979  const struct ak_wwise_plugin_host_property_set_instance_v1* in_this,
980  const GUID* in_guidPlatform,
981  const char * in_pszPropertyName,
982  bool* out_propertyValue
983  );
984 };
985 
986 
988 #ifdef __cplusplus
990 #endif
991 {
992 #ifndef __cplusplus
993  ak_wwise_plugin_base_interface m_baseInterface;
994 #endif
995 
996 #ifdef __cplusplus
997  /// Base instance type for receiving notifications on property set's changes.
999 
1002  {}
1003 #endif
1004 
1005  /**
1006  * \brief This function is called by Wwise when a plug-in property changes.
1007  *
1008  * For example, data can change through interaction with a UI control bound to a property,
1009  * or through undo/redo operations.
1010  *
1011  * This function is not called on the Object Store or any inner property sets.
1012  *
1013  * \sa
1014  * - \ref wwiseplugin_propertyset_notification
1015  *
1016  * \param[in] in_this Current instance of this interface.
1017  * \param[in] in_guidPlatform The unique ID of the queried platform.
1018  * \param[in] in_pszPropertyName The name of the affected property.
1019  */
1022  const GUID* in_guidPlatform,
1023  const char * in_pszPropertyName
1024  );
1025 };
1026 
1027 
1028 #define AK_WWISE_PLUGIN_HOST_PROPERTY_SET_V1_ID() \
1029  AK_WWISE_PLUGIN_BASE_INTERFACE_FROM_ID(AK_WWISE_PLUGIN_INTERFACE_TYPE_HOST_PROPERTY_SET, 1)
1030 #define AK_WWISE_PLUGIN_HOST_PROPERTY_SET_V1_CTOR() \
1031 { \
1032  .m_baseInterface = AK_WWISE_PLUGIN_HOST_PROPERTY_SET_V1_ID() \
1033 }
1034 
1035 #define AK_WWISE_PLUGIN_NOTIFICATIONS_PROPERTY_SET_V1_ID() \
1036  AK_WWISE_PLUGIN_BASE_INTERFACE_FROM_ID(AK_WWISE_PLUGIN_INTERFACE_TYPE_NOTIFICATIONS_PROPERTY_SET, 1)
1037 #define AK_WWISE_PLUGIN_NOTIFICATIONS_PROPERTY_SET_V1_CTOR(/* ak_wwise_plugin_info* */ in_pluginInfo, /* void* */ in_data) \
1038 { \
1039  .m_baseInterface = AK_WWISE_PLUGIN_BASE_INTERFACE_CTOR(AK_WWISE_PLUGIN_NOTIFICATIONS_PROPERTY_SET_V1_ID(), in_pluginInfo, in_data) \
1040 }
1041 
1042 
1043 #ifdef __cplusplus
1044 namespace AK::Wwise::Plugin
1045 {
1046  namespace V1
1047  {
1049 
1050  /// \copydoc ak_wwise_plugin_host_property_set_v1
1051  class PropertySet : public CBaseInstanceGlue<CHostPropertySet>
1052  {
1053  public:
1055 
1056  /**
1057  * \brief The interface type, as requested by this plug-in.
1058  */
1059  enum : InterfaceTypeValue
1060  {
1061  /**
1062  * \brief The interface type, as requested by this plug-in.
1063  */
1065  };
1066  /**
1067  * \brief The interface version, as requested by this plug-in.
1068  */
1069  enum : InterfaceVersion
1070  {
1071  /**
1072  * \brief The interface version, as requested by this plug-in.
1073  */
1074  k_interfaceVersion = 1
1075  };
1076 
1077  /**
1078  * \deprecated
1079  * \brief Retrieves the value of a specific property as a variant.
1080  *
1081  * \akwarning
1082  * This is a semi-private function. You should use the typed GetValue methods instead.
1083  *
1084  * \ref GetValueString, \ref GetValueInt64, \ref GetValueInt32, \ref GetValueInt16,
1085  * \ref GetValueInt8, \ref GetValueUInt64, \ref GetValueUInt32, \ref GetValueUInt16,
1086  * \ref GetValueUInt8, \ref GetValueReal64 \ref GetValueReal32, \ref GetValueBool
1087  *
1088  * The function can still be useful if you want to handle parameters as a black box, getting a
1089  * value without knowing the type, and then setting that value elsewhere.
1090  * \endakwarning
1091  *
1092  * \sa
1093  * - \ref wwiseplugin_bank
1094  *
1095  * \param[in] in_guidPlatform The unique ID of the queried platform.
1096  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1097  * \param[out] out_varProperty The returned value of the property.
1098  * \return true if successful.
1099  */
1100  inline bool GetValue(
1101  const GUID & in_guidPlatform,
1102  const char * in_pszPropertyName,
1103  AK::WwiseAuthoringAPI::AkVariantBase& out_varProperty
1104  ) const
1105  {
1106  return MKBOOL(g_cinterface->GetValue(this, &in_guidPlatform, in_pszPropertyName, &out_varProperty));
1107  }
1108 
1109  /**
1110  * \deprecated
1111  * \brief Modifies the value of a specific property as a variant.
1112  *
1113  * Updates the property \c in_pszPropertyName to contain \c in_varProperty under the
1114  * \c in_guidPlatform platform.
1115  *
1116  * The property type, as contained by \c in_varProperty, should be equal to the
1117  * type as defined in the plug-in XML definition file.
1118  *
1119  * \aknote
1120  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1121  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1122  *
1123  * More than one platform will be affected if the property is linked
1124  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1125  * \endaknote
1126  *
1127  * \akwarning
1128  * This is a semi-private function. You should use the typed SetValue methods instead.
1129  *
1130  * \ref SetValueString, \ref SetValueInt64, \ref SetValueInt32, \ref SetValueInt16,
1131  * \ref SetValueInt8, \ref SetValueUInt64, \ref SetValueUInt32, \ref SetValueUInt16,
1132  * \ref SetValueUInt8, \ref SetValueReal64 \ref SetValueReal32, \ref SetValueBool
1133  *
1134  * The function can still be useful if you want to handle parameters as a black box, getting a
1135  * value without knowing the type, and then setting that value elsewhere.
1136  * \endakwarning
1137  *
1138  * \sa
1139  * - \ref wwiseplugin_bank
1140  *
1141  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1142  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1143  * \param[out] in_varProperty The new value of the property.
1144  * \return true if successful.
1145  */
1146  inline bool SetValue(
1147  const GUID & in_guidPlatform,
1148  const char * in_pszPropertyName,
1149  const AK::WwiseAuthoringAPI::AkVariantBase& in_varProperty
1150  )
1151  {
1152  return MKBOOL(g_cinterface->SetValue(this, &in_guidPlatform, in_pszPropertyName, &in_varProperty));
1153  }
1154 
1155  /**
1156  * \brief Returns true if the specified property exists.
1157  *
1158  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to check.
1159  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1160  * \return true if property exists.
1161  */
1162  inline bool HasPropertyValue(
1163  const GUID & in_guidPlatform,
1164  const char * in_pszPropertyName
1165  ) const
1166  {
1167  return MKBOOL(g_cinterface->HasPropertyValue(this, &in_guidPlatform, in_pszPropertyName));
1168  }
1169 
1170  /**
1171  * \brief Get the RTPC binding status for the specified property.
1172  *
1173  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1174  * \return true if property is bound to an RTPC.
1175  */
1176  inline bool PropertyHasRTPC(
1177  const char * in_pszPropertyName
1178  ) const
1179  {
1180  return MKBOOL(g_cinterface->PropertyHasRTPC(this, in_pszPropertyName));
1181  }
1182 
1183  /**
1184  * \brief Returns whether the specified property is bound to a state object.
1185  *
1186  * \sa
1187  * - \ref concept_state
1188  *
1189  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1190  * \return true if property is bound to a state.
1191  */
1192  inline bool PropertyHasState(
1193  const char* in_pszPropertyName
1194  ) const
1195  {
1196  return MKBOOL(g_cinterface->PropertyHasState(this, in_pszPropertyName));
1197  }
1198 
1199  /**
1200  * \brief Returns whether the specified property has at least some linked platforms.
1201  *
1202  * By default, all platforms are linked.
1203  *
1204  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1205  * \return true if that particular property has some linked platforms.
1206  */
1207  inline bool PropertyHasLinked(
1208  const char* in_pszPropertyName
1209  ) const
1210  {
1211  return MKBOOL(g_cinterface->PropertyHasLinked(this, in_pszPropertyName));
1212  }
1213 
1214  /**
1215  * \brief Returns whether the specified property has at least some platforms that are not linked.
1216  *
1217  * By default, all platforms are linked.
1218  *
1219  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1220  * \return true if that particular property has some unlinked platforms.
1221  */
1222  inline bool PropertyHasUnlinked(
1223  const char* in_pszPropertyName
1224  ) const
1225  {
1226  return MKBOOL(g_cinterface->PropertyHasUnlinked(this, in_pszPropertyName));
1227  }
1228 
1229  /**
1230  * \brief Returns whether the specified property's platform is linked.
1231  *
1232  * By default, all platforms are linked.
1233  *
1234  * \param[in] in_guidPlatform The unique ID of the queried platform.
1235  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1236  * \return true if the specified property specifically has the specified platform linked.
1237  */
1239  const GUID& in_guidPlatform,
1240  const char* in_pszPropertyName
1241  ) const
1242  {
1243  return MKBOOL(g_cinterface->PropertyPlatformIsLinked(this, &in_guidPlatform, in_pszPropertyName));
1244  }
1245 
1246  /**
1247  * \brief Returns the internal unique identifier of the corresponding object.
1248  *
1249  * For the plug-in property set, this is equivalent to the ID field in the project files.
1250  *
1251  * For inner property sets, as defined in Object Stores, that value is dynamic and only valid for
1252  * this session.
1253  *
1254  * \aknote
1255  * This value is provided mostly for information during the development process.
1256  *
1257  * The ID might change on Undo or Redo operations.
1258  * \endaknote
1259  *
1260  * \return GUID of the corresponding object.
1261  */
1262  inline const GUID* GetID() const
1263  {
1264  return g_cinterface->GetID(this);
1265  }
1266 
1267  /**
1268  * \brief Retrieves the type of a specific property.
1269  *
1270  * The return value can contain AK::WwiseAuthoringAPI::AkVariantTypeBase
1271  * enumeration values.
1272  *
1273  * \param[in] in_guidPlatform The unique ID of the queried platform.
1274  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1275  * \return A AK::WwiseAuthoringAPI::AkVariantTypeBase value.
1276  */
1277  inline int GetType(
1278  const GUID& in_guidPlatform,
1279  const char* in_pszPropertyName
1280  ) const
1281  {
1282  return g_cinterface->GetType(this, &in_guidPlatform, in_pszPropertyName);
1283  }
1284 
1285  /**
1286  * \brief Resets a property value to its default.
1287  *
1288  * This is different than setting the value to the default value. Once saved,
1289  * this property set value line will disappear from the project file.
1290  *
1291  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1292  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1293  * \return true if successful.
1294  */
1295  inline bool ClearValue(
1296  const GUID& in_guidPlatform,
1297  const char* in_pszPropertyName
1298  )
1299  {
1300  return MKBOOL(g_cinterface->ClearValue(this, &in_guidPlatform, in_pszPropertyName));
1301  }
1302 
1303  /**
1304  * \brief Modifies a property to a string value.
1305  *
1306  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1307  * \c in_guidPlatform platform.
1308  *
1309  * The plug-in XML definition file should define this property as a \c string in order to use
1310  * this method.
1311  *
1312  * \aknote
1313  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1314  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1315  *
1316  * More than one platform will be affected if the property is linked
1317  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1318  * \endaknote
1319  *
1320  * \sa
1321  * - \ref wwiseplugin_bank
1322  *
1323  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1324  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1325  * \param[out] in_propertyValue The new value of the property.
1326  * \return true if successful.
1327  */
1328  inline bool SetValueString(
1329  const GUID & in_guidPlatform,
1330  const char * in_pszPropertyName,
1331  const char * in_propertyValue
1332  )
1333  {
1334  return MKBOOL(g_cinterface->SetValueString(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1335  }
1336 
1337  /**
1338  * \brief Modifies a property to a 64-bit signed integer value.
1339  *
1340  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1341  * \c in_guidPlatform platform.
1342  *
1343  * The plug-in XML definition file should define this property as a \c int64 in order to use
1344  * this method.
1345  *
1346  * \aknote
1347  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1348  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1349  *
1350  * More than one platform will be affected if the property is linked
1351  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1352  * \endaknote
1353  *
1354  * \sa
1355  * - \ref wwiseplugin_bank
1356  *
1357  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1358  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1359  * \param[out] in_propertyValue The new value of the property.
1360  * \return true if successful.
1361  */
1362  inline bool SetValueInt64(
1363  const GUID & in_guidPlatform,
1364  const char * in_pszPropertyName,
1365  int64_t in_propertyValue
1366  )
1367  {
1368  return MKBOOL(g_cinterface->SetValueInt64(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1369  }
1370 
1371  /**
1372  * \brief Modifies a property to a 32-bit signed integer value.
1373  *
1374  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1375  * \c in_guidPlatform platform.
1376  *
1377  * The plug-in XML definition file should define this property as a \c int32 in order to use
1378  * this method.
1379  *
1380  * \aknote
1381  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1382  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1383  *
1384  * More than one platform will be affected if the property is linked
1385  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1386  * \endaknote
1387  *
1388  * \sa
1389  * - \ref wwiseplugin_bank
1390  *
1391  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1392  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1393  * \param[out] in_propertyValue The new value of the property.
1394  * \return true if successful.
1395  */
1396  inline bool SetValueInt32(
1397  const GUID & in_guidPlatform,
1398  const char * in_pszPropertyName,
1399  int32_t in_propertyValue
1400  )
1401  {
1402  return MKBOOL(g_cinterface->SetValueInt32(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1403  }
1404 
1405  /**
1406  * \brief Modifies a property to a 16-bit signed integer value.
1407  *
1408  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1409  * \c in_guidPlatform platform.
1410  *
1411  * The plug-in XML definition file should define this property as a \c int16 in order to use
1412  * this method.
1413  *
1414  * \aknote
1415  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1416  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1417  *
1418  * More than one platform will be affected if the property is linked
1419  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1420  * \endaknote
1421  *
1422  * \sa
1423  * - \ref wwiseplugin_bank
1424  *
1425  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1426  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1427  * \param[out] in_propertyValue The new value of the property.
1428  * \return true if successful.
1429  */
1430  inline bool SetValueInt16(
1431  const GUID & in_guidPlatform,
1432  const char * in_pszPropertyName,
1433  int16_t in_propertyValue
1434  )
1435  {
1436  return MKBOOL(g_cinterface->SetValueInt16(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1437  }
1438 
1439  /**
1440  * \brief Modifies a property to an 8-bit signed integer value. (Future use)
1441  *
1442  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1443  * \c in_guidPlatform platform.
1444  *
1445  * \akwarning
1446  * The plug-in XML definition file doesn't currently provide a \c int8 value type.
1447  * \endakwarning
1448  *
1449  * \aknote
1450  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1451  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1452  *
1453  * More than one platform will be affected if the property is linked
1454  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1455  * \endaknote
1456  *
1457  * \sa
1458  * - \ref wwiseplugin_bank
1459  *
1460  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1461  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1462  * \param[out] in_propertyValue The new value of the property.
1463  * \return true if successful.
1464  */
1465  inline bool SetValueInt8(
1466  const GUID & in_guidPlatform,
1467  const char * in_pszPropertyName,
1468  int8_t in_propertyValue
1469  )
1470  {
1471  return MKBOOL(g_cinterface->SetValueInt8(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1472  }
1473 
1474  /**
1475  * \brief Modifies a property to a 64-bit unsigned integer value. (Future use)
1476  *
1477  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1478  * \c in_guidPlatform platform.
1479  *
1480  * \akwarning
1481  * The plug-in XML definition file doesn't currently provide a \c uint64 value type.
1482  * \endakwarning
1483  *
1484  * \aknote
1485  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1486  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1487  *
1488  * More than one platform will be affected if the property is linked
1489  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1490  * \endaknote
1491  *
1492  * \sa
1493  * - \ref wwiseplugin_bank
1494  *
1495  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1496  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1497  * \param[out] in_propertyValue The new value of the property.
1498  * \return true if successful.
1499  */
1500  inline bool SetValueUInt64(
1501  const GUID & in_guidPlatform,
1502  const char * in_pszPropertyName,
1503  uint64_t in_propertyValue
1504  )
1505  {
1506  return MKBOOL(g_cinterface->SetValueUInt64(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1507  }
1508 
1509  /**
1510  * \brief Modifies a property to a 32-bit unsigned integer value. (Future use)
1511  *
1512  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1513  * \c in_guidPlatform platform.
1514  *
1515  * \akwarning
1516  * The plug-in XML definition file doesn't currently provide a \c uint32 value type.
1517  * \endakwarning
1518  *
1519  * \aknote
1520  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1521  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1522  *
1523  * More than one platform will be affected if the property is linked
1524  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1525  * \endaknote
1526  *
1527  * \sa
1528  * - \ref wwiseplugin_bank
1529  *
1530  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1531  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1532  * \param[out] in_propertyValue The new value of the property.
1533  * \return true if successful.
1534  */
1535  inline bool SetValueUInt32(
1536  const GUID & in_guidPlatform,
1537  const char * in_pszPropertyName,
1538  uint32_t in_propertyValue
1539  )
1540  {
1541  return MKBOOL(g_cinterface->SetValueUInt32(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1542  }
1543 
1544  /**
1545  * \brief Modifies a property to a 16-bit unsigned integer value. (Future use)
1546  *
1547  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1548  * \c in_guidPlatform platform.
1549  *
1550  * \akwarning
1551  * The plug-in XML definition file doesn't currently provide a \c uint16 value type.
1552  * \endakwarning
1553  *
1554  * \aknote
1555  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1556  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1557  *
1558  * More than one platform will be affected if the property is linked
1559  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1560  * \endaknote
1561  *
1562  * \sa
1563  * - \ref wwiseplugin_bank
1564  *
1565  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1566  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1567  * \param[out] in_propertyValue The new value of the property.
1568  * \return true if successful.
1569  */
1570  inline bool SetValueUInt16(
1571  const GUID & in_guidPlatform,
1572  const char * in_pszPropertyName,
1573  uint16_t in_propertyValue
1574  )
1575  {
1576  return MKBOOL(g_cinterface->SetValueUInt16(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1577  }
1578 
1579  /**
1580  * \brief Modifies a property to an 8-bit unsigned integer value. (Future use)
1581  *
1582  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1583  * \c in_guidPlatform platform.
1584  *
1585  * \akwarning
1586  * The plug-in XML definition file doesn't currently provide a \c uint8 value type.
1587  * \endakwarning
1588  *
1589  * \aknote
1590  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1591  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1592  *
1593  * More than one platform will be affected if the property is linked
1594  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1595  * \endaknote
1596  *
1597  * \sa
1598  * - \ref wwiseplugin_bank
1599  *
1600  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1601  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1602  * \param[out] in_propertyValue The new value of the property.
1603  * \return true if successful.
1604  */
1605  inline bool SetValueUInt8(
1606  const GUID & in_guidPlatform,
1607  const char * in_pszPropertyName,
1608  uint8_t in_propertyValue
1609  )
1610  {
1611  return MKBOOL(g_cinterface->SetValueUInt8(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1612  }
1613 
1614  /**
1615  * \brief Modifies a property to a 64-bit floating point value.
1616  *
1617  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1618  * \c in_guidPlatform platform.
1619  *
1620  * The plug-in XML definition file should define this property as a \c Real64 in order to use
1621  * this method.
1622  *
1623  * \aknote
1624  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1625  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1626  *
1627  * More than one platform will be affected if the property is linked
1628  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1629  * \endaknote
1630  *
1631  * \sa
1632  * - \ref wwiseplugin_bank
1633  *
1634  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1635  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1636  * \param[out] in_propertyValue The new value of the property.
1637  * \return true if successful.
1638  */
1639  inline bool SetValueReal64(
1640  const GUID & in_guidPlatform,
1641  const char * in_pszPropertyName,
1642  double in_propertyValue
1643  )
1644  {
1645  return MKBOOL(g_cinterface->SetValueReal64(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1646  }
1647 
1648  /**
1649  * \brief Modifies a property to a 32-bit floating point value.
1650  *
1651  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1652  * \c in_guidPlatform platform.
1653  *
1654  * The plug-in XML definition file should define this property as a \c Real32 in order to use
1655  * this method.
1656  *
1657  * \aknote
1658  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1659  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1660  *
1661  * More than one platform will be affected if the property is linked
1662  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1663  * \endaknote
1664  *
1665  * \sa
1666  * - \ref wwiseplugin_bank
1667  *
1668  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1669  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1670  * \param[out] in_propertyValue The new value of the property.
1671  * \return true if successful.
1672  */
1673  inline bool SetValueReal32(
1674  const GUID & in_guidPlatform,
1675  const char * in_pszPropertyName,
1676  float in_propertyValue
1677  )
1678  {
1679  return MKBOOL(g_cinterface->SetValueReal32(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1680  }
1681 
1682  /**
1683  * \brief Modifies a property to a boolean value.
1684  *
1685  * Updates the property \c in_pszPropertyName to contain \c in_propertyValue under the
1686  * \c in_guidPlatform platform.
1687  *
1688  * The plug-in XML definition file should define this property as a \c bool in order to use
1689  * this method.
1690  *
1691  * \aknote
1692  * Your changes might be substantially altered or replaced if your property is bound to an RTPC
1693  * ( \ref PropertyHasRTPC ) or a State ( \ref PropertyHasState ).
1694  *
1695  * More than one platform will be affected if the property is linked
1696  * ( \ref PropertyPlatformIsLinked ); all platforms are linked by default.
1697  * \endaknote
1698  *
1699  * \sa
1700  * - \ref wwiseplugin_bank
1701  *
1702  * \param[in] in_guidPlatform The unique ID of the platform whose property you want to modify.
1703  * \param[in] in_pszPropertyName The name of the property to update, based on the XML definition file.
1704  * \param[out] in_propertyValue The new value of the property.
1705  * \return true if successful.
1706  */
1707  inline bool SetValueBool(
1708  const GUID & in_guidPlatform,
1709  const char * in_pszPropertyName,
1710  bool in_propertyValue
1711  )
1712  {
1713  return MKBOOL(g_cinterface->SetValueBool(this, &in_guidPlatform, in_pszPropertyName, in_propertyValue));
1714  }
1715 
1716  /**
1717  * \brief Retrieves the string value of a specific property.
1718  *
1719  * The plug-in XML definition file should define this property as a \c string in order to use
1720  * this method.
1721  *
1722  * \aknote
1723  * The returned pointer is provided by Authoring, and contains a TLS copy of the property
1724  * value string. It is guaranteed to be valid until the next Host function call. If you
1725  * wish to retain this string, you should make a copy at the earliest convenience.
1726  * \endaknote
1727  *
1728  * \sa
1729  * - \ref wwiseplugin_bank
1730  *
1731  * \param[in] in_guidPlatform The unique ID of the queried platform.
1732  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1733  * \param[out] out_propertyValue The returned value of the property.
1734  * The buffer is owned by Authoring and is valid until the next API call.
1735  * \return true if successful.
1736  */
1737  inline bool GetValueString(
1738  const GUID & in_guidPlatform,
1739  const char * in_pszPropertyName,
1740  const char*& out_propertyValue
1741  ) const
1742  {
1743  return MKBOOL(g_cinterface->GetValueString(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1744  }
1745 
1746  /**
1747  * \brief Retrieves the 64-bit signed integer value of a specific property.
1748  *
1749  * The plug-in XML definition file should define this property as a \c int64 in order to use
1750  * this method.
1751  *
1752  * \sa
1753  * - \ref wwiseplugin_bank
1754  *
1755  * \param[in] in_guidPlatform The unique ID of the queried platform.
1756  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1757  * \param[out] out_propertyValue The returned value of the property.
1758  * \return true if successful.
1759  */
1760  inline bool GetValueInt64(
1761  const GUID & in_guidPlatform,
1762  const char * in_pszPropertyName,
1763  int64_t& out_propertyValue
1764  ) const
1765  {
1766  return MKBOOL(g_cinterface->GetValueInt64(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1767  }
1768 
1769  /**
1770  * \brief Retrieves the 32-bit signed integer value of a specific property.
1771  *
1772  * The plug-in XML definition file should define this property as a \c int32 in order to use
1773  * this method.
1774  *
1775  * \sa
1776  * - \ref wwiseplugin_bank
1777  *
1778  * \param[in] in_guidPlatform The unique ID of the queried platform.
1779  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1780  * \param[out] out_propertyValue The returned value of the property.
1781  * \return true if successful.
1782  */
1783  inline bool GetValueInt32(
1784  const GUID & in_guidPlatform,
1785  const char * in_pszPropertyName,
1786  int32_t& out_propertyValue
1787  ) const
1788  {
1789  return MKBOOL(g_cinterface->GetValueInt32(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1790  }
1791 
1792  /**
1793  * \brief Retrieves the 16-bit signed integer value of a specific property.
1794  *
1795  * The plug-in XML definition file should define this property as a \c int16 in order to use
1796  * this method.
1797  *
1798  * \sa
1799  * - \ref wwiseplugin_bank
1800  *
1801  * \param[in] in_guidPlatform The unique ID of the queried platform.
1802  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1803  * \param[out] out_propertyValue The returned value of the property.
1804  * \return true if successful.
1805  */
1806  inline bool GetValueInt16(
1807  const GUID & in_guidPlatform,
1808  const char * in_pszPropertyName,
1809  int16_t& out_propertyValue
1810  ) const
1811  {
1812  return MKBOOL(g_cinterface->GetValueInt16(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1813  }
1814 
1815  /**
1816  * \brief Retrieves the 8-bit signed integer value of a specific property. (Future use)
1817  *
1818  * \akwarning
1819  * The plug-in XML definition file doesn't currently provide a \c int8 value type.
1820  * \endakwarning
1821  *
1822  * \sa
1823  * - \ref wwiseplugin_bank
1824  *
1825  * \param[in] in_guidPlatform The unique ID of the queried platform.
1826  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1827  * \param[out] out_propertyValue The returned value of the property.
1828  * \return true if successful.
1829  */
1830  inline bool GetValueInt8(
1831  const GUID & in_guidPlatform,
1832  const char * in_pszPropertyName,
1833  int8_t& out_propertyValue
1834  ) const
1835  {
1836  return MKBOOL(g_cinterface->GetValueInt8(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1837  }
1838 
1839  /**
1840  * \brief Retrieves the 64-bit unsigned integer value of a specific property. (Future use)
1841  *
1842  * \akwarning
1843  * The plug-in XML definition file doesn't currently provide a \c uint64 value type.
1844  * \endakwarning
1845  *
1846  * \sa
1847  * - \ref wwiseplugin_bank
1848  *
1849  * \param[in] in_guidPlatform The unique ID of the queried platform.
1850  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1851  * \param[out] out_propertyValue The returned value of the property.
1852  * \return true if successful.
1853  */
1854  inline bool GetValueUInt64(
1855  const GUID & in_guidPlatform,
1856  const char * in_pszPropertyName,
1857  uint64_t& out_propertyValue
1858  ) const
1859  {
1860  return MKBOOL(g_cinterface->GetValueUInt64(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1861  }
1862 
1863  /**
1864  * \brief Retrieves the 32-bit unsigned integer value of a specific property. (Future use)
1865  *
1866  * \akwarning
1867  * The plug-in XML definition file doesn't currently provide a \c uint32 value type.
1868  * \endakwarning
1869  *
1870  * \sa
1871  * - \ref wwiseplugin_bank
1872  *
1873  * \param[in] in_guidPlatform The unique ID of the queried platform.
1874  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1875  * \param[out] out_propertyValue The returned value of the property.
1876  * \return true if successful.
1877  */
1878  inline bool GetValueUInt32(
1879  const GUID & in_guidPlatform,
1880  const char * in_pszPropertyName,
1881  uint32_t& out_propertyValue
1882  ) const
1883  {
1884  return MKBOOL(g_cinterface->GetValueUInt32(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1885  }
1886 
1887  /**
1888  * \brief Retrieves the 16-bit unsigned integer value of a specific property. (Future use)
1889  *
1890  * \akwarning
1891  * The plug-in XML definition file doesn't currently provide a \c uint16 value type.
1892  * \endakwarning
1893  *
1894  * \sa
1895  * - \ref wwiseplugin_bank
1896  *
1897  * \param[in] in_guidPlatform The unique ID of the queried platform.
1898  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1899  * \param[out] out_propertyValue The returned value of the property.
1900  * \return true if successful.
1901  */
1902  inline bool GetValueUInt16(
1903  const GUID & in_guidPlatform,
1904  const char * in_pszPropertyName,
1905  uint16_t& out_propertyValue
1906  ) const
1907  {
1908  return MKBOOL(g_cinterface->GetValueUInt16(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1909  }
1910 
1911  /**
1912  * \brief Retrieves the 8-bit unsigned integer value of a specific property. (Future use)
1913  *
1914  * \akwarning
1915  * The plug-in XML definition file doesn't currently provide a \c uint8 value type.
1916  * \endakwarning
1917  *
1918  * \sa
1919  * - \ref wwiseplugin_bank
1920  *
1921  * \param[in] in_guidPlatform The unique ID of the queried platform.
1922  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1923  * \param[out] out_propertyValue The returned value of the property.
1924  * \return true if successful.
1925  */
1926  inline bool GetValueUInt8(
1927  const GUID & in_guidPlatform,
1928  const char * in_pszPropertyName,
1929  uint8_t& out_propertyValue
1930  ) const
1931  {
1932  return MKBOOL(g_cinterface->GetValueUInt8(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1933  }
1934 
1935  /**
1936  * \brief Retrieves the 64-bit floating point value of a specific property.
1937  *
1938  * The plug-in XML definition file should define this property as a \c Real64 in order to use
1939  * this method.
1940  *
1941  * \sa
1942  * - \ref wwiseplugin_bank
1943  *
1944  * \param[in] in_guidPlatform The unique ID of the queried platform.
1945  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1946  * \param[out] out_propertyValue The returned value of the property.
1947  * \return true if successful.
1948  */
1949  inline bool GetValueReal64(
1950  const GUID & in_guidPlatform,
1951  const char * in_pszPropertyName,
1952  double& out_propertyValue
1953  ) const
1954  {
1955  return MKBOOL(g_cinterface->GetValueReal64(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1956  }
1957 
1958  /**
1959  * \brief Retrieves the 32-bit floating point value of a specific property.
1960  *
1961  * The plug-in XML definition file should define this property as a \c Real32 in order to use
1962  * this method.
1963  *
1964  * \sa
1965  * - \ref wwiseplugin_bank
1966  *
1967  * \param[in] in_guidPlatform The unique ID of the queried platform.
1968  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1969  * \param[out] out_propertyValue The returned value of the property.
1970  * \return true if successful.
1971  */
1972  inline bool GetValueReal32(
1973  const GUID & in_guidPlatform,
1974  const char * in_pszPropertyName,
1975  float& out_propertyValue
1976  ) const
1977  {
1978  return MKBOOL(g_cinterface->GetValueReal32(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
1979  }
1980 
1981  /**
1982  * \brief Retrieves the boolean value of a specific property.
1983  *
1984  * The plug-in XML definition file should define this property as a \c bool in order to use
1985  * this method.
1986  *
1987  * \sa
1988  * - \ref wwiseplugin_bank
1989  *
1990  * \param[in] in_guidPlatform The unique ID of the queried platform.
1991  * \param[in] in_pszPropertyName The name of the queried property, based on the XML definition file.
1992  * \param[out] out_propertyValue The returned value of the property.
1993  * \return true if successful.
1994  */
1995  inline bool GetValueBool(
1996  const GUID & in_guidPlatform,
1997  const char * in_pszPropertyName,
1998  bool& out_propertyValue
1999  ) const
2000  {
2001  return MKBOOL(g_cinterface->GetValueBool(this, &in_guidPlatform, in_pszPropertyName, &out_propertyValue));
2002  }
2003 
2004  /**
2005  * \brief Retrieves the string value of a specific property and returns the value as a temporary pointer.
2006  *
2007  * This is a convenience for \ref GetValueString where the value is returned instead of
2008  * being set in a provided variable.
2009  *
2010  * The plug-in XML definition file should define this property as a \c string in order to use
2011  * this method.
2012  *
2013  * \aknote
2014  * The returned pointer is provided by Authoring, and contains a TLS copy of the property
2015  * value string. It is guaranteed to be valid until the next Host function call. If you
2016  * wish to retain this string, you should make a copy at the earliest convenience.
2017  * \endaknote
2018  *
2019  * \sa
2020  * - \ref wwiseplugin_bank
2021  *
2022  * \param in_guidPlatform The unique ID of the queried platform.
2023  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2024  * \return The value of the property.
2025  */
2026  inline const char* GetString(
2027  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2028  const char * in_pszPropertyName ///< The name of the property
2029  ) const
2030  {
2031  const char* result;
2032  AKVERIFY(GetValueString(in_guidPlatform, in_pszPropertyName, result));
2033  return result;
2034  }
2035 
2036  /**
2037  * \brief Returns the 64-bit signed integer value of a specific property.
2038  *
2039  * This is a convenience for \ref GetValueInt64 where the value is returned instead of
2040  * being set in a provided variable.
2041  *
2042  * The plug-in XML definition file should define this property as a \c int64 in order to use
2043  * this method.
2044  *
2045  * \sa
2046  * - \ref wwiseplugin_bank
2047  *
2048  * \param in_guidPlatform The unique ID of the queried platform.
2049  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2050  * \return The value of the property.
2051  */
2052  inline int64_t GetInt64(
2053  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2054  const char * in_pszPropertyName ///< The name of the property
2055  ) const
2056  {
2057  int64_t result;
2058  AKVERIFY(GetValueInt64(in_guidPlatform, in_pszPropertyName, result));
2059  return result;
2060  }
2061 
2062  /**
2063  * \brief Returns the 32-bit signed integer value of a specific property.
2064  *
2065  * This is a convenience for \ref GetValueInt32 where the value is returned instead of
2066  * being set in a provided variable.
2067  *
2068  * The plug-in XML definition file should define this property as a \c int32 in order to use
2069  * this method.
2070  *
2071  * \sa
2072  * - \ref wwiseplugin_bank
2073  *
2074  * \param in_guidPlatform The unique ID of the queried platform.
2075  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2076  * \return The value of the property.
2077  */
2078  inline int32_t GetInt32(
2079  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2080  const char * in_pszPropertyName ///< The name of the property
2081  ) const
2082  {
2083  int32_t result;
2084  AKVERIFY(GetValueInt32(in_guidPlatform, in_pszPropertyName, result));
2085  return result;
2086  }
2087 
2088  /**
2089  * \brief Returns the 16-bit signed integer value of a specific property.
2090  *
2091  * This is a convenience for \ref GetValueInt16 where the value is returned instead of
2092  * being set in a provided variable.
2093  *
2094  * The plug-in XML definition file should define this property as a \c int16 in order to use
2095  * this method.
2096  *
2097  * \sa
2098  * - \ref wwiseplugin_bank
2099  *
2100  * \param in_guidPlatform The unique ID of the queried platform.
2101  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2102  * \return The value of the property.
2103  */
2104  inline int16_t GetInt16(
2105  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2106  const char * in_pszPropertyName ///< The name of the property
2107  ) const
2108  {
2109  int16_t result;
2110  AKVERIFY(GetValueInt16(in_guidPlatform, in_pszPropertyName, result));
2111  return result;
2112  }
2113 
2114  /**
2115  * \brief Returns the 8-bit signed integer value of a specific property.
2116  *
2117  * This is a convenience for \ref GetValueInt8 where the value is returned instead of
2118  * being set in a provided variable.
2119  *
2120  * \akwarning
2121  * The plug-in XML definition file doesn't currently provide a \c int8 value type.
2122  * \endakwarning
2123  *
2124  * \sa
2125  * - \ref wwiseplugin_bank
2126  *
2127  * \param in_guidPlatform The unique ID of the queried platform.
2128  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2129  * \return The value of the property.
2130  */
2131  inline int8_t GetInt8(
2132  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2133  const char * in_pszPropertyName ///< The name of the property
2134  ) const
2135  {
2136  int8_t result;
2137  AKVERIFY(GetValueInt8(in_guidPlatform, in_pszPropertyName, result));
2138  return result;
2139  }
2140 
2141  /**
2142  * \brief Returns the 64-bit unsigned integer value of a specific property.
2143  *
2144  * This is a convenience for \ref GetValueUInt64 where the value is returned instead of
2145  * being set in a provided variable.
2146  *
2147  * \akwarning
2148  * The plug-in XML definition file doesn't currently provide a \c uint64 value type.
2149  * \endakwarning
2150  *
2151  * \sa
2152  * - \ref wwiseplugin_bank
2153  *
2154  * \param in_guidPlatform The unique ID of the queried platform.
2155  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2156  * \return The value of the property.
2157  */
2158  inline uint64_t GetUInt64(
2159  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2160  const char * in_pszPropertyName ///< The name of the property
2161  ) const
2162  {
2163  uint64_t result;
2164  AKVERIFY(GetValueUInt64(in_guidPlatform, in_pszPropertyName, result));
2165  return result;
2166  }
2167 
2168  /**
2169  * \brief Returns the 32-bit unsigned integer value of a specific property.
2170  *
2171  * This is a convenience for \ref GetValueUInt32 where the value is returned instead of
2172  * being set in a provided variable.
2173  *
2174  * \akwarning
2175  * The plug-in XML definition file doesn't currently provide a \c uint32 value type.
2176  * \endakwarning
2177  *
2178  * \sa
2179  * - \ref wwiseplugin_bank
2180  *
2181  * \param in_guidPlatform The unique ID of the queried platform.
2182  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2183  * \return The value of the property.
2184  */
2185  inline uint32_t GetUInt32(
2186  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2187  const char * in_pszPropertyName ///< The name of the property
2188  ) const
2189  {
2190  uint32_t result;
2191  AKVERIFY(GetValueUInt32(in_guidPlatform, in_pszPropertyName, result));
2192  return result;
2193  }
2194 
2195  /**
2196  * \brief Returns the 16-bit unsigned integer value of a specific property.
2197  *
2198  * This is a convenience for \ref GetValueUInt16 where the value is returned instead of
2199  * being set in a provided variable.
2200  *
2201  * \akwarning
2202  * The plug-in XML definition file doesn't currently provide a \c uint16 value type.
2203  * \endakwarning
2204  *
2205  * \sa
2206  * - \ref wwiseplugin_bank
2207  *
2208  * \param in_guidPlatform The unique ID of the queried platform.
2209  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2210  * \return The value of the property.
2211  */
2212  inline uint16_t GetUInt16(
2213  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2214  const char * in_pszPropertyName ///< The name of the property
2215  ) const
2216  {
2217  uint16_t result;
2218  AKVERIFY(GetValueUInt16(in_guidPlatform, in_pszPropertyName, result));
2219  return result;
2220  }
2221 
2222  /**
2223  * \brief Returns the 8-bit unsigned integer value of a specific property.
2224  *
2225  * This is a convenience for \ref GetValueUInt8 where the value is returned instead of
2226  * being set in a provided variable.
2227  *
2228  * \akwarning
2229  * The plug-in XML definition file doesn't currently provide a \c uint8 value type.
2230  * \endakwarning
2231  *
2232  * \sa
2233  * - \ref wwiseplugin_bank
2234  *
2235  * \param in_guidPlatform The unique ID of the queried platform.
2236  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2237  * \return The value of the property.
2238  */
2239  inline uint8_t GetUInt8(
2240  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2241  const char * in_pszPropertyName ///< The name of the property
2242  ) const
2243  {
2244  uint8_t result;
2245  AKVERIFY(GetValueUInt8(in_guidPlatform, in_pszPropertyName, result));
2246  return result;
2247  }
2248 
2249  /**
2250  * \brief Returns the 64-bit floating point value of a specific property.
2251  *
2252  * This is a convenience for \ref GetValueReal64 where the value is returned instead of
2253  * being set in a provided variable.
2254  *
2255  * The plug-in XML definition file should define this property as a \c Real64 in order to use
2256  * this method.
2257  *
2258  * \sa
2259  * - \ref wwiseplugin_bank
2260  *
2261  * \param in_guidPlatform The unique ID of the queried platform.
2262  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2263  * \return The value of the property.
2264  */
2265  inline double GetReal64(
2266  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2267  const char * in_pszPropertyName ///< The name of the property
2268  ) const
2269  {
2270  double result;
2271  AKVERIFY(GetValueReal64(in_guidPlatform, in_pszPropertyName, result));
2272  return result;
2273  }
2274 
2275  /**
2276  * \brief Returns the 32-bit floating point value of a specific property.
2277  *
2278  * This is a convenience for \ref GetValueReal32 where the value is returned instead of
2279  * being set in a provided variable.
2280  *
2281  * The plug-in XML definition file should define this property as a \c Real32 in order to use
2282  * this method.
2283  *
2284  * \sa
2285  * - \ref wwiseplugin_bank
2286  *
2287  * \param in_guidPlatform The unique ID of the queried platform.
2288  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2289  * \return The value of the property.
2290  */
2291  inline float GetReal32(
2292  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2293  const char * in_pszPropertyName ///< The name of the property
2294  ) const
2295  {
2296  float result;
2297  AKVERIFY(GetValueReal32(in_guidPlatform, in_pszPropertyName, result));
2298  return result;
2299  }
2300 
2301  /**
2302  * \brief Returns the boolean value of a specific property.
2303  *
2304  * This is a convenience for \ref GetValueBool where the value is returned instead of
2305  * being set in a provided variable.
2306  *
2307  * The plug-in XML definition file should define this property as a \c bool in order to use
2308  * this method.
2309  *
2310  * \sa
2311  * - \ref wwiseplugin_bank
2312  *
2313  * \param in_guidPlatform The unique ID of the queried platform.
2314  * \param in_pszPropertyName The name of the queried property, based on the XML definition file.
2315  * \return The value of the property.
2316  */
2317  inline bool GetBool(
2318  const GUID & in_guidPlatform, ///< The unique ID of the queried platform
2319  const char * in_pszPropertyName ///< The name of the property
2320  ) const
2321  {
2322  bool result;
2323  AKVERIFY(GetValueBool(in_guidPlatform, in_pszPropertyName, result));
2324  return result;
2325  }
2326  };
2327 
2328  namespace Notifications
2329  {
2331 
2332  /// \copydoc ak_wwise_plugin_notifications_property_set_v1
2334  {
2335  public:
2336  /**
2337  * \copydoc CPropertySet_::Instance
2338  */
2340 
2341  /**
2342  * \brief The interface type, as provided by this plug-in.
2343  */
2344  enum : InterfaceTypeValue
2345  {
2346  /**
2347  * \brief The interface type, as provided by this plug-in.
2348  */
2350  };
2351  /**
2352  * \brief The interface version, as provided by this plug-in.
2353  */
2354  enum : InterfaceVersion
2355  {
2356  /**
2357  * \brief The interface version, as provided by this plug-in.
2358  */
2359  k_interfaceVersion = 1
2360  };
2361 
2362  /**
2363  * \brief The C interface, fulfilled by your plug-in.
2364  */
2365  struct Interface : public CPropertySet_
2366  {
2369  {
2372  const GUID* in_guidPlatform,
2373  const char* in_pszPropertyName)
2374  {
2375  static_cast<Instance*>(in_this)->NotifyPropertyChanged(
2376  *in_guidPlatform,
2377  in_pszPropertyName);
2378  };
2379  }
2380  };
2381 
2383  static Interface g_interface;
2384  return &g_interface;
2385  }
2387  return this;
2388  }
2390  return this;
2391  }
2392 
2395  {
2396  }
2397 
2398  virtual ~PropertySet_() {}
2399 
2400  /**
2401  * \brief This function is called by Wwise when a plug-in property changes.
2402  *
2403  * For example, data can change through interaction with a UI control bound to a property,
2404  * or through undo/redo operations.
2405  *
2406  * This function is not called on the Object Store or any inner property sets.
2407  *
2408  * \sa
2409  * - \ref wwiseplugin_propertyset_notification
2410  *
2411  * \param[in] in_guidPlatform The unique ID of the queried platform.
2412  * \param[in] in_pszPropertyName The name of the affected property.
2413  */
2415  const GUID& in_guidPlatform, ///< The unique ID of the queried platform
2416  const char* in_pszPropertyName ///< The name of the property
2417  ) {}
2418  };
2419  } // of namespace Notifications
2420 
2421  /**
2422  * \brief Requests a PropertySet interface, provided as m_propertySet variable.
2423  *
2424  * Deriving your plug-in class from RequestPropertySet will automatically request both PropertySet and
2425  * Notifications::PropertySet_ interfaces. From this point, you will be able to derive from the virtual
2426  * functions as defined in Notifications::PropertySet_, and access the host-provided functions in the
2427  * `m_propertySet` variable.
2428  *
2429  * This is also useful when you want to access inner property sets from the ObjectStore interface.
2430  * In that case, you can ignore the m_propertySet variable and the notifications interface.
2431  *
2432  * \aknote The AK::Wwise::Plugin::RequestPropertySet and AK::Wwise::Plugin::RequestWrite classes are automatically
2433  * derived when providing AudioPlugin in C++. \endaknote
2434  */
2436 
2437  } // of namespace V1
2438 
2439  /// Latest version of the C PropertySet interface.
2441  /// Latest version of the C++ PropertySet interface.
2443  /// Latest version of the requested C++ PropertySet interface.
2445 
2446  namespace Notifications
2447  {
2448  /// Latest version of the C PropertySet notification interface.
2450  /// Latest version of the C++ PropertySet notification interface.
2452  }
2453 
2459 } // of namespace AK::Wwise::Plugin
2460 
2461 #endif
bool SetValue(const GUID &in_guidPlatform, const char *in_pszPropertyName, const AK::WwiseAuthoringAPI::AkVariantBase &in_varProperty)
Modifies the value of a specific property as a variant.
bool(* SetValueUInt64)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint64_t in_propertyValue)
Modifies a property to a 64-bit unsigned integer value. (Future use)
bool GetValueInt8(const GUID &in_guidPlatform, const char *in_pszPropertyName, int8_t &out_propertyValue) const
Retrieves the 8-bit signed integer value of a specific property. (Future use)
@ k_interfaceVersion
The interface version, as provided by this plug-in.
bool(* SetValueString)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, const char *in_propertyValue)
Modifies a property to a string value.
@ k_interfaceType
The interface type, as requested by this plug-in.
int64_t GetInt64(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 64-bit signed integer value of a specific property.
@ AK_WWISE_PLUGIN_INTERFACE_TYPE_HOST_PROPERTY_SET
2021.1 Property Set host service. ak_wwise_plugin_host_property_set_v1
int GetType(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Retrieves the type of a specific property.
bool SetValueString(const GUID &in_guidPlatform, const char *in_pszPropertyName, const char *in_propertyValue)
Modifies a property to a string value.
bool(* SetValueUInt8)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint8_t in_propertyValue)
Modifies a property to an 8-bit unsigned integer value. (Future use)
bool(* HasPropertyValue)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName)
Returns true if the specified property exists.
virtual void NotifyPropertyChanged(const GUID &in_guidPlatform, const char *in_pszPropertyName)
This function is called by Wwise when a plug-in property changes.
bool(* GetValueReal64)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, double *out_propertyValue)
Retrieves the 64-bit floating point value of a specific property.
bool(* PropertyHasUnlinked)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const char *in_pszPropertyName)
Returns whether the specified property has at least some platforms that are not linked.
int(* GetType)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName)
Retrieves the type of a specific property.
static GluedInterface * g_cinterface
The unique instance of the CInterface interface. Defined at nullptr first, overridden by the Host onc...
bool GetValueInt64(const GUID &in_guidPlatform, const char *in_pszPropertyName, int64_t &out_propertyValue) const
Retrieves the 64-bit signed integer value of a specific property.
bool SetValueUInt32(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint32_t in_propertyValue)
Modifies a property to a 32-bit unsigned integer value. (Future use)
const GUID * GetID() const
Returns the internal unique identifier of the corresponding object.
decltype(BaseInterface::m_version) InterfaceVersion
PluginInfoGenerator: Type for the m_version value in BaseInterface.
bool SetValueUInt64(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint64_t in_propertyValue)
Modifies a property to a 64-bit unsigned integer value. (Future use)
bool(* GetValue)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, AK::WwiseAuthoringAPI::AkVariantBase *out_varProperty)
Retrieves the value of a specific property as a variant.
int8_t GetInt8(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 8-bit signed integer value of a specific property.
bool(* GetValueReal32)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, float *out_propertyValue)
Retrieves the 32-bit floating point value of a specific property.
uint16_t GetUInt16(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 16-bit unsigned integer value of a specific property.
RequestedHostInterface< PropertySet > RequestPropertySet
Requests a PropertySet interface, provided as m_propertySet variable.
const CPropertySet_::Instance * GetInstancePointer() const
bool SetValueInt8(const GUID &in_guidPlatform, const char *in_pszPropertyName, int8_t in_propertyValue)
Modifies a property to an 8-bit signed integer value. (Future use)
bool(* PropertyHasLinked)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const char *in_pszPropertyName)
Returns whether the specified property has at least some linked platforms.
bool PropertyHasUnlinked(const char *in_pszPropertyName) const
Returns whether the specified property has at least some platforms that are not linked.
@ k_interfaceType
The interface type, as provided by this plug-in.
const char * GetString(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Retrieves the string value of a specific property and returns the value as a temporary pointer.
int32_t GetInt32(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 32-bit signed integer value of a specific property.
ak_wwise_plugin_notifications_property_set_instance_v1 Instance
Base instance type for receiving notifications on property set's changes.
bool(* PropertyHasState)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const char *in_pszPropertyName)
Returns whether the specified property is bound to a state object.
bool(* GetValueUInt64)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint64_t *out_propertyValue)
Retrieves the 64-bit unsigned integer value of a specific property. (Future use)
bool(* SetValueReal64)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, double in_propertyValue)
Modifies a property to a 64-bit floating point value.
The C interface, fulfilled by your plug-in.
bool(* GetValueInt8)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int8_t *out_propertyValue)
Retrieves the 8-bit signed integer value of a specific property. (Future use)
bool SetValueInt32(const GUID &in_guidPlatform, const char *in_pszPropertyName, int32_t in_propertyValue)
Modifies a property to a 32-bit signed integer value.
uint64_t GetUInt64(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 64-bit unsigned integer value of a specific property.
bool(* GetValueBool)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, bool *out_propertyValue)
Retrieves the boolean value of a specific property.
void(* NotifyPropertyChanged)(struct ak_wwise_plugin_notifications_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName)
This function is called by Wwise when a plug-in property changes.
double GetReal64(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 64-bit floating point value of a specific property.
bool ClearValue(const GUID &in_guidPlatform, const char *in_pszPropertyName)
Resets a property value to its default.
bool(* GetValueInt64)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int64_t *out_propertyValue)
Retrieves the 64-bit signed integer value of a specific property.
bool GetValueString(const GUID &in_guidPlatform, const char *in_pszPropertyName, const char *&out_propertyValue) const
Retrieves the string value of a specific property.
bool SetValueReal32(const GUID &in_guidPlatform, const char *in_pszPropertyName, float in_propertyValue)
Modifies a property to a 32-bit floating point value.
bool GetBool(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the boolean value of a specific property.
const GUID *(* GetID)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this)
Returns the internal unique identifier of the corresponding object.
bool(* SetValueInt64)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int64_t in_propertyValue)
Modifies a property to a 64-bit signed integer value.
bool GetValueUInt16(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint16_t &out_propertyValue) const
Retrieves the 16-bit unsigned integer value of a specific property. (Future use)
Wwise Authoring Plug-ins - C++ class helper to automatically determine the plug-in interfaces used in...
bool(* SetValueUInt32)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint32_t in_propertyValue)
Modifies a property to a 32-bit unsigned integer value. (Future use)
bool GetValueBool(const GUID &in_guidPlatform, const char *in_pszPropertyName, bool &out_propertyValue) const
Retrieves the boolean value of a specific property.
PluginInfoGenerator: Associates an existing C Interface with a variable that can be used....
CInterfacePtr InterfacePtr
Definition: PluginDef.h:995
bool(* SetValueInt16)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int16_t in_propertyValue)
Modifies a property to a 16-bit signed integer value.
#define AKVERIFY(x)
Definition: AkAssert.h:69
ak_wwise_plugin_host_property_set_v1 CHostPropertySet
@ k_interfaceVersion
The interface version, as requested by this plug-in.
bool(* GetValueString)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, const char **out_propertyValue)
Retrieves the string value of a specific property.
int16_t GetInt16(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 16-bit signed integer value of a specific property.
bool(* GetValueInt16)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int16_t *out_propertyValue)
Retrieves the 16-bit signed integer value of a specific property.
@ AK_WWISE_PLUGIN_INTERFACE_TYPE_NOTIFICATIONS_PROPERTY_SET
2021.1 Property Set modification notification. ak_wwise_plugin_notifications_property_set_v1
bool(* SetValue)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, const AK::WwiseAuthoringAPI::AkVariantBase *in_varProperty)
Modifies the value of a specific property as a variant.
bool(* GetValueInt32)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int32_t *out_propertyValue)
Retrieves the 32-bit signed integer value of a specific property.
bool PropertyHasLinked(const char *in_pszPropertyName) const
Returns whether the specified property has at least some linked platforms.
bool PropertyHasRTPC(const char *in_pszPropertyName) const
Get the RTPC binding status for the specified property.
uint32_t GetUInt32(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 32-bit unsigned integer value of a specific property.
Interface used to interact with property sets.
uint8_t GetUInt8(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 8-bit unsigned integer value of a specific property.
float GetReal32(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns the 32-bit floating point value of a specific property.
std::underlying_type< InterfaceType >::type InterfaceTypeValue
PluginInfoGenerator: Underlying storage type for the m_interface value in BaseInterface.
bool GetValueReal32(const GUID &in_guidPlatform, const char *in_pszPropertyName, float &out_propertyValue) const
Retrieves the 32-bit floating point value of a specific property.
bool SetValueUInt16(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint16_t in_propertyValue)
Modifies a property to a 16-bit unsigned integer value. (Future use)
bool SetValueInt16(const GUID &in_guidPlatform, const char *in_pszPropertyName, int16_t in_propertyValue)
Modifies a property to a 16-bit signed integer value.
bool GetValueUInt64(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint64_t &out_propertyValue) const
Retrieves the 64-bit unsigned integer value of a specific property. (Future use)
bool GetValueInt16(const GUID &in_guidPlatform, const char *in_pszPropertyName, int16_t &out_propertyValue) const
Retrieves the 16-bit signed integer value of a specific property.
bool SetValueBool(const GUID &in_guidPlatform, const char *in_pszPropertyName, bool in_propertyValue)
Modifies a property to a boolean value.
Interface used to interact with property sets.
AK_WWISE_PLUGIN_SPECIALIZE_INTERFACE_VERSION(AudioPlugin)
bool PropertyPlatformIsLinked(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns whether the specified property's platform is linked.
bool GetValueUInt32(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint32_t &out_propertyValue) const
Retrieves the 32-bit unsigned integer value of a specific property. (Future use)
bool(* GetValueUInt8)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint8_t *out_propertyValue)
Retrieves the 8-bit unsigned integer value of a specific property. (Future use)
Interface description and base class for every Wwise Authoring plug-in interface.
bool SetValueInt64(const GUID &in_guidPlatform, const char *in_pszPropertyName, int64_t in_propertyValue)
Modifies a property to a 64-bit signed integer value.
ak_wwise_plugin_notifications_property_set_v1 CPropertySet_
bool(* PropertyHasRTPC)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const char *in_pszPropertyName)
Get the RTPC binding status for the specified property.
bool SetValueReal64(const GUID &in_guidPlatform, const char *in_pszPropertyName, double in_propertyValue)
Modifies a property to a 64-bit floating point value.
Base host-provided instance type for ak_wwise_plugin_host_property_set_v1.
Definition: PluginDef.h:660
bool(* ClearValue)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName)
Resets a property value to its default.
bool SetValueUInt8(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint8_t in_propertyValue)
Modifies a property to an 8-bit unsigned integer value. (Future use)
bool PropertyHasState(const char *in_pszPropertyName) const
Returns whether the specified property is bound to a state object.
bool(* SetValueUInt16)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint16_t in_propertyValue)
Modifies a property to a 16-bit unsigned integer value. (Future use)
bool(* SetValueInt32)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int32_t in_propertyValue)
Modifies a property to a 32-bit signed integer value.
bool(* SetValueInt8)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, int8_t in_propertyValue)
Modifies a property to an 8-bit signed integer value. (Future use)
#define MKBOOL(cond)
Definition: PluginHelpers.h:74
bool(* PropertyPlatformIsLinked)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName)
Returns whether the specified property's platform is linked.
Base instance type for receiving notifications on property set's changes.
Definition: PluginDef.h:861
bool(* SetValueBool)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, bool in_propertyValue)
Modifies a property to a boolean value.
#define AK_WWISE_PLUGIN_SPECIALIZE_HOST_INTERFACE(in_name, in_varname,...)
PluginInfoGenerator: Creates a C++ host specialization for interface class specified in in_name,...
V1::Notifications::PropertySet_ PropertySet
Latest version of the C++ PropertySet notification interface.
bool HasPropertyValue(const GUID &in_guidPlatform, const char *in_pszPropertyName) const
Returns true if the specified property exists.
bool(* SetValueReal32)(struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, float in_propertyValue)
Modifies a property to a 32-bit floating point value.
bool GetValueReal64(const GUID &in_guidPlatform, const char *in_pszPropertyName, double &out_propertyValue) const
Retrieves the 64-bit floating point value of a specific property.
bool GetValue(const GUID &in_guidPlatform, const char *in_pszPropertyName, AK::WwiseAuthoringAPI::AkVariantBase &out_varProperty) const
Retrieves the value of a specific property as a variant.
bool(* GetValueUInt32)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint32_t *out_propertyValue)
Retrieves the 32-bit unsigned integer value of a specific property. (Future use)
bool GetValueUInt8(const GUID &in_guidPlatform, const char *in_pszPropertyName, uint8_t &out_propertyValue) const
Retrieves the 8-bit unsigned integer value of a specific property. (Future use)
bool(* GetValueUInt16)(const struct ak_wwise_plugin_host_property_set_instance_v1 *in_this, const GUID *in_guidPlatform, const char *in_pszPropertyName, uint16_t *out_propertyValue)
Retrieves the 16-bit unsigned integer value of a specific property. (Future use)
bool GetValueInt32(const GUID &in_guidPlatform, const char *in_pszPropertyName, int32_t &out_propertyValue) const
Retrieves the 32-bit signed integer value of a specific property.
AK_WWISE_PLUGIN_SPECIALIZE_INTERFACE_CLASS(AudioPlugin)

Was this page helpful?

Need Support?

Questions? Problems? Need more info? Contact us, and we can help!

Visit our Support page

Tell us about your project. We're here to help.

Register your project and we'll help you get started with no strings attached!

Get started with Wwise