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