Version

menu_open
Wwise SDK 2024.1.0
PluginDef.h
Go to the documentation of this file.
1 /*******************************************************************************
2 The content of this file includes portions of the AUDIOKINETIC Wwise Technology
3 released in source code form as part of the SDK installer package.
4 
5 Commercial License Usage
6 
7 Licensees holding valid commercial licenses to the AUDIOKINETIC Wwise Technology
8 may use this file in accordance with the end user license agreement provided
9 with the software or, alternatively, in accordance with the terms contained in a
10 written agreement between you and Audiokinetic Inc.
11 
12 Apache License Usage
13 
14 Alternatively, this file may be used under the Apache License, Version 2.0 (the
15 "Apache License"); you may not use this file except in compliance with the
16 Apache License. You may obtain a copy of the Apache License at
17 http://www.apache.org/licenses/LICENSE-2.0.
18 
19 Unless required by applicable law or agreed to in writing, software distributed
20 under the Apache License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES
21 OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License for
22 the specific language governing permissions and limitations under the License.
23 
24  Copyright (c) 2024 Audiokinetic Inc.
25 *******************************************************************************/
26 
27 /**
28  * \brief Wwise Authoring Plug-ins - Base plug-in definitions
29  * \file AK/Wwise/Plugin/PluginDef.h
30  */
31 
32 #pragma once
33 
34 #include "PluginHelpers.h"
35 
36 // Everthing in this section needs:
37 // - to be converted back to plain vanilla C
38 // - create optional interfaces for classes
39 // - create compulsory convertion functions for enums
40 #ifdef __cplusplus
41 #include "../../SoundEngine/Common/IAkPlugin.h"
42 
43 namespace AK
44 {
45  namespace WwiseAuthoringAPI
46  {
47  class AkVariantBase;
48  }
49 }
50 
51 namespace AK
52 {
53  namespace Wwise
54  {
55  namespace Plugin
56  {
57  /// License type.
58  enum LicenseType
59  {
60  LicenseType_Trial = 1, ///< Used for both Trial and Evaluation License handling
61  LicenseType_Purchased, ///< The license was purchased
62  LicenseType_Academic ///< The license is for academic
63  };
64 
65  /// License status.
67  {
68  LicenseStatus_Unlicensed, ///< No license found
69  LicenseStatus_Expired, ///< A license is found, but is expired
70  LicenseStatus_Valid, ///< A license is found and is valid
71 
72  LicenseStatus_Incompatible ///< The plugin was made for an older version of Wwise
73  };
74 
75  struct LicenseID
76  {
77  // nul-terminated 8 characters license
78  char id[9];
79  };
80 
81  /// Type of operation for the NotifyInnerObjectAddedRemoved function.
83  {
86  };
87 
88  struct MonitorData
89  {
90  uint64_t uGameObjectID;
91  void* pData;
92  unsigned int uDataSize;
93  };
94 
95  /// Import channel configuration options.
97  {
98  Channel_mono = 0,
105  };
106 
107  /// Log message severity.
108  enum Severity
109  {
110  Severity_Success = -1, ///< operation was executed without errors or will not produce errors
111  Severity_Message, ///< not impacting the integrity of the current operation
112  Severity_Warning, ///< potentially impacting the integrity of the current operation
113  Severity_Error, ///< impacting the integrity of the current operation
114  Severity_FatalError, ///< impacting the completion of the current operation
115  };
116 
117  /// Represents the association between a dialog control (such as
118  /// a checkbox or radio button) and a plug-in property.
119  /// \aknote
120  /// You should not need to use this structure directly. Instead, use the
121  /// AK_BEGIN_POPULATE_TABLE(), AK_POP_ITEM(), and AK_END_POPULATE_TABLE() macros.
122  /// \endaknote
123  /// \sa
124  /// - \ref wwiseplugin_dialog_guide_poptable
126  {
127  uint32_t uiID; ///< The dialog control resource ID
128  const char * pszProp; ///< The property name
129  };
130 
131  /// Dialog type. Source plug-ins can be edited in the Property Editor or
132  /// the Contents Editor, while effect plug-ins can only be edited in the
133  /// Effect Editor.
134  /// \sa
135  /// - \ref wwiseplugin_dialogcode
136  enum eDialog
137  {
138  SettingsDialog, ///< Main plug-in dialog. This is the dialog used in the Property
139  ///< Editor for source plug-ins, and in the Effect Editor for
140  ///< effect plug-ins.
141  ContentsEditorDialog ///< Contents Editor dialog. This is the small dialog used in the
142  ///< Contents Editor for source plug-ins.
143  };
144 
145  /// Conversion error code.
147  {
151  };
152 
153  class IProgress
154  {
155  public:
156  /// Call this to set the name of the operation currently done.
157  /// If not called the operation will have an empty name in the UI.
158  /// The name should be on a single line.
159  virtual void SetCurrentOperationName(const char * in_szOperationName) = 0;
160 
161  /// Should be called at the beginning of the operation to set the min and max value
162  virtual void SetRange(uint32_t in_dwMinValue, uint32_t in_dwMaxValue) = 0;
163 
164  /// Notify of the advancement of the task.
165  virtual void NotifyProgress(uint32_t in_dwProgress) = 0;
166 
167  /// Check if the user has cancelled the task
168  virtual bool IsCancelled() const = 0;
169 
170  /// Display an error message to the user.
171  /// The message should be on a single line.
172  virtual void ErrorMessage(const char * in_rErrorText, Severity in_eSeverity = Severity_Warning) = 0;
173  };
174 
175  /// Interface to let the plug in give us a string of any size.
176  /// The pointer to the interface should not be kept.
177  class IWriteString
178  {
179  public:
180  virtual void WriteString(const char * in_szString,
181  int in_iStringLength) = 0;
182  };
183 
184  /// Interfaces used to set and get the properties from a plug in.
186  {
187  public:
188  virtual bool GetValue(const char * in_szPropertyName,
189  AK::WwiseAuthoringAPI::AkVariantBase& out_rValue) const = 0;
190 
191  virtual int GetType(
192  const char* in_pszPropertyName ///< The name of the property
193  ) const = 0;
194 
195  virtual bool GetValueString(
196  const char * in_pszPropertyName, ///< The name of the property
197  const char*& out_varProperty ///< The returned value of the property
198  ) const = 0;
199 
200  virtual bool GetValueInt64(
201  const char * in_pszPropertyName, ///< The name of the property
202  int64_t& out_varProperty ///< The returned value of the property
203  ) const = 0;
204 
205  virtual bool GetValueInt32(
206  const char * in_pszPropertyName, ///< The name of the property
207  int32_t& out_varProperty ///< The returned value of the property
208  ) const = 0;
209 
210  virtual bool GetValueInt16(
211  const char * in_pszPropertyName, ///< The name of the property
212  int16_t& out_varProperty ///< The returned value of the property
213  ) const = 0;
214 
215  virtual bool GetValueInt8(
216  const char * in_pszPropertyName, ///< The name of the property
217  int8_t& out_varProperty ///< The returned value of the property
218  ) const = 0;
219 
220  virtual bool GetValueUInt64(
221  const char * in_pszPropertyName, ///< The name of the property
222  uint64_t& out_varProperty ///< The returned value of the property
223  ) const = 0;
224 
225  virtual bool GetValueUInt32(
226  const char * in_pszPropertyName, ///< The name of the property
227  uint32_t& out_varProperty ///< The returned value of the property
228  ) const = 0;
229 
230  virtual bool GetValueUInt16(
231  const char * in_pszPropertyName, ///< The name of the property
232  uint16_t& out_varProperty ///< The returned value of the property
233  ) const = 0;
234 
235  virtual bool GetValueUInt8(
236  const char * in_pszPropertyName, ///< The name of the property
237  uint8_t& out_varProperty ///< The returned value of the property
238  ) const = 0;
239 
240  virtual bool GetValueReal64(
241  const char * in_pszPropertyName, ///< The name of the property
242  double& out_varProperty ///< The returned value of the property
243  ) const = 0;
244 
245  virtual bool GetValueReal32(
246  const char * in_pszPropertyName, ///< The name of the property
247  float& out_varProperty ///< The returned value of the property
248  ) const = 0;
249 
250  virtual bool GetValueBool(
251  const char * in_pszPropertyName, ///< The name of the property
252  bool& out_varProperty ///< The returned value of the property
253  ) const = 0;
254 
255  inline const char* GetString(
256  const char * in_pszPropertyName ///< The name of the property
257  ) const
258  {
259  const char* result;
260  AKVERIFY(GetValueString(in_pszPropertyName, result));
261  return result;
262  }
263 
264  inline int64_t GetInt64(
265  const char * in_pszPropertyName ///< The name of the property
266  ) const
267  {
268  int64_t result;
269  AKVERIFY(GetValueInt64(in_pszPropertyName, result));
270  return result;
271  }
272 
273  inline int32_t GetInt32(
274  const char * in_pszPropertyName ///< The name of the property
275  ) const
276  {
277  int32_t result;
278  AKVERIFY(GetValueInt32(in_pszPropertyName, result));
279  return result;
280  }
281 
282  inline int16_t GetInt16(
283  const char * in_pszPropertyName ///< The name of the property
284  ) const
285  {
286  int16_t result;
287  AKVERIFY(GetValueInt16(in_pszPropertyName, result));
288  return result;
289  }
290 
291  inline int8_t GetInt8(
292  const char * in_pszPropertyName ///< The name of the property
293  ) const
294  {
295  int8_t result;
296  AKVERIFY(GetValueInt8(in_pszPropertyName, result));
297  return result;
298  }
299 
300  inline uint64_t GetUInt64(
301  const char * in_pszPropertyName ///< The name of the property
302  ) const
303  {
304  uint64_t result;
305  AKVERIFY(GetValueUInt64(in_pszPropertyName, result));
306  return result;
307  }
308 
309  inline uint32_t GetUInt32(
310  const char * in_pszPropertyName ///< The name of the property
311  ) const
312  {
313  uint32_t result;
314  AKVERIFY(GetValueUInt32(in_pszPropertyName, result));
315  return result;
316  }
317 
318  inline uint16_t GetUInt16(
319  const char * in_pszPropertyName ///< The name of the property
320  ) const
321  {
322  uint16_t result;
323  AKVERIFY(GetValueUInt16(in_pszPropertyName, result));
324  return result;
325  }
326 
327  inline uint8_t GetUInt8(
328  const char * in_pszPropertyName ///< The name of the property
329  ) const
330  {
331  uint8_t result;
332  AKVERIFY(GetValueUInt8(in_pszPropertyName, result));
333  return result;
334  }
335 
336  inline double GetReal64(
337  const char * in_pszPropertyName ///< The name of the property
338  ) const
339  {
340  double result;
341  AKVERIFY(GetValueReal64(in_pszPropertyName, result));
342  return result;
343  }
344 
345  inline float GetReal32(
346  const char * in_pszPropertyName ///< The name of the property
347  ) const
348  {
349  float result;
350  AKVERIFY(GetValueReal32(in_pszPropertyName, result));
351  return result;
352  }
353 
354  inline bool GetBool(
355  const char * in_pszPropertyName ///< The name of the property
356  ) const
357  {
358  bool result;
359  AKVERIFY(GetValueBool(in_pszPropertyName, result));
360  return result;
361  }
362  };
363 
365  {
366  public:
367  virtual bool SetValue(const char * in_szPropertyName,
368  const AK::WwiseAuthoringAPI::AkVariantBase& in_rValue) = 0;
369 
370  virtual bool ClearValue(
371  const char* in_pszPropertyName ///< The name of the property
372  ) = 0;
373 
374  virtual bool SetValueString(
375  const char * in_pszPropertyName, ///< The name of the property
376  const char * in_varProperty ///< The value to set
377  ) = 0;
378 
379  virtual bool SetValueInt64(
380  const char * in_pszPropertyName, ///< The name of the property
381  int64_t in_varProperty ///< The value to set
382  ) = 0;
383 
384  virtual bool SetValueInt32(
385  const char * in_pszPropertyName, ///< The name of the property
386  int32_t in_varProperty ///< The value to set
387  ) = 0;
388 
389  virtual bool SetValueInt16(
390  const char * in_pszPropertyName, ///< The name of the property
391  int16_t in_varProperty ///< The value to set
392  ) = 0;
393 
394  virtual bool SetValueInt8(
395  const char * in_pszPropertyName, ///< The name of the property
396  int8_t in_varProperty ///< The value to set
397  ) = 0;
398 
399  virtual bool SetValueUInt64(
400  const char * in_pszPropertyName, ///< The name of the property
401  uint64_t in_varProperty ///< The value to set
402  ) = 0;
403 
404  virtual bool SetValueUInt32(
405  const char * in_pszPropertyName, ///< The name of the property
406  uint32_t in_varProperty ///< The value to set
407  ) = 0;
408 
409  virtual bool SetValueUInt16(
410  const char * in_pszPropertyName, ///< The name of the property
411  uint16_t in_varProperty ///< The value to set
412  ) = 0;
413 
414  virtual bool SetValueUInt8(
415  const char * in_pszPropertyName, ///< The name of the property
416  uint8_t in_varProperty ///< The value to set
417  ) = 0;
418 
419  virtual bool SetValueReal64(
420  const char * in_pszPropertyName, ///< The name of the property
421  double in_varProperty ///< The value to set
422  ) = 0;
423 
424  virtual bool SetValueReal32(
425  const char * in_pszPropertyName, ///< The name of the property
426  float in_varProperty ///< The value to set
427  ) = 0;
428 
429  virtual bool SetValueBool(
430  const char * in_pszPropertyName, ///< The name of the property
431  bool in_varProperty ///< The value to set
432  ) = 0;
433  };
434 
435  // Note: This should be kept in line with RIFFHEADER
436  struct RiffHeader
437  {
438  uint32_t fccChunkId;
439  uint32_t dwDataSize;
440  };
441 
443  {
444  //
445  // Inputs
446  //
447  const GUID* platformID;
448  const GUID* basePlatformID;
449  const char* sourceFileName;
450  const char* destinationFileName;
453 
454  bool noDecode;
455 
458 
459  // Analysis data types available for this source.
460  uint32_t analysisDataTypes;
461 
462  // False if source context contains at least one value that is not the default.
463  bool isDefault;
464 
465  // Required downmix normalization gain (linear), 1 if not available / desired.
467  };
468 
470  {
471  uint32_t dataSize = 0; ///< Actual size of data, taking duration into account (for prefetch)
472  uint32_t duration = -1; ///< Actual duration of data, or -1 for entire file
473  uint32_t sampleRate = 0; ///< Number of samples per second
474  AkChannelConfig channelConfig; ///< Channel configuration
475  uint32_t decodedFileSize = -1; ///< File size of file when decoded to PCM format, *If* offline decoding is supported by the codec. Otherwise has value NO_OFFLINE_DECODING (-1)
476  uint8_t abyHash[16] = { 0 }; ///< Converted file hash (as present in the HASH chunk).
477  };
478 
480  : public ConvertedFileInfo
481  {
482  const void* data = nullptr; ///< Pointer to start of file data
483  };
484  }
485  }
486 }
487 #endif
488 
489 /** \addtogroup global
490  * @{
491  */
492 
494 typedef struct ak_wwise_plugin_base_interface* ak_wwise_plugin_interface_ptr; ///< Pointer to a generic base from a plug-in interface.
495 
496 /**
497  * \brief Generic base for all plug-in instances. In C++, this is derived. In C, they are equivalent.
498  *
499  * \sa
500  * - \ref ak_wwise_plugin_cpp_base_instance for disrepancies between the C and C++ model.
501  */
503 typedef struct ak_wwise_plugin_base_instance* ak_wwise_plugin_instance_ptr; ///< Pointer to a generic base for a plug-in instances.
504 
506 struct ak_wwise_plugin_info;
508 
509 typedef void ak_wwise_plugin_widget;
510 
511 #ifdef __cplusplus
512 /**
513  * \brief Generic base for all plug-in instances in C++
514  *
515  * \warning This differs from the ak_wwise_plugin_base_instance, as C++ classes have a virtual table as their first member.
516  * It's important to make the distinction between the two by specifically doing a static_cast between the C version and the C++ version,
517  * and not a mere reinterpret_cast or a C-style cast. As such, it is expected to instantiate a plug-in in C++, and return
518  * C pointers back to the instance structures with a different base address.
519  */
521 {
523 };
524 
525 /**
526  * \brief Define a generic instance base, either in C or in C++.
527  *
528  * \warning These are NOT equivalent! In C, it is expected you can directly cast from your instance to an
529  * ak_wwise_plugin_base_instance. In C++, since the base classes have a virtual table, the pointer to the C members is
530  * shifted in memory.
531  */
532 #define AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE : public ak_wwise_plugin_cpp_base_instance
533 #else
534 #define AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE
535 #endif
536 
537 #ifdef __cplusplus
538 /**
539  * \brief Define a generic instance base, either in C or in C++.
540  *
541  */
542 
543 #define AK_WWISE_PLUGIN_INTERFACE_EXTEND_PREVIOUS(interface, interface_prev) \
544  struct interface : public interface_prev {};
545 #else
546 #define AK_WWISE_PLUGIN_INTERFACE_EXTEND_PREVIOUS(interface, interface_prev) \
547  struct interface { struct interface_prev; };
548 #endif
549 
550 /**
551  * \brief Plug-in backend instance.
552  *
553  * A backend contains all the logic for the Authoring part of the plug-in. It is uniquely instantiated for each plug-in instance
554  * in a project.
555  */
557 
558 /**
559  * \brief Plug-in frontend instance.
560  *
561  * A frontend contains the visual part of the Authoring plug-in. It is optional, for example, it is never instantiated when
562  * connecting through WwiseConsole. As such, there should never be any processing or "intelligence" done in a frontend part.
563  *
564  * For example, the frontend should not affect licensing, soundbank generation, audio processing, property handling (such as
565  * validating ranges for property sets), media handling, media conversion, custom data loading, ...
566  *
567  * \aknote Porting note: In legacy plug-ins, there is only one instance of the Authoring plug-in that contains both
568  * the backend and the frontend. This has changed for multiple reasons: to be able to instantiate a plug-in backend without any
569  * frontend, or alternatively, to instantiate multiple copies of a frontend for a unique backend. \endaknote
570  */
572 
573 #ifdef __cplusplus
574 /**
575  * \brief Define an instance type as a backend.
576  *
577  * In C++, this derives the backend instance from the ak_wwise_plugin_backend_instance in a separate action so that RTTI can help
578  * pinpoint the types and the compiler ensures the type correctness.
579  *
580  * In C, this is a typedef, as we cannot derive. The compiler also doesn't need to lookup addresses for complex structures, so this
581  * is merely an equivalency.
582  *
583  * \sa
584  * - \ref ak_wwise_plugin_backend_instance for a backend discussion.
585  * - \ref ak_wwise_plugin_frontend_instance for a frontend discussion.
586  * - \ref ak_wwise_plugin_cpp_base_instance for disrepancies between the C and C++ model.
587  */
588 #define AK_WWISE_PLUGIN_DERIVE_FROM_BACKEND_INSTANCE(x) \
589  struct x : public ak_wwise_plugin_backend_instance {}
590 
591 /**
592  * \brief Define an instance type as a frontend.
593  *
594  * In C++, this derives the frontend instance from the ak_wwise_plugin_frontend_instance in a separate action so that RTTI can help
595  * pinpoint the types and the compiler ensures the type correctness.
596  *
597  * In C, this is a typedef, as we cannot derive. The compiler also doesn't need to lookup addresses for complex structures, so this
598  * is merely an equivalency.
599  *
600  * \sa
601  * - \ref ak_wwise_plugin_backend_instance for a backend discussion.
602  * - \ref ak_wwise_plugin_frontend_instance for a frontend discussion.
603  * - \ref ak_wwise_plugin_cpp_base_instance for disrepancies between the C and C++ model.
604  */
605 #define AK_WWISE_PLUGIN_DERIVE_FROM_FRONTEND_INSTANCE(x) \
606  struct x : public ak_wwise_plugin_frontend_instance {}
607 #else
608 #define AK_WWISE_PLUGIN_DERIVE_FROM_BACKEND_INSTANCE(x) \
609  typedef x ak_wwise_plugin_backend_instance
610 #define AK_WWISE_PLUGIN_DERIVE_FROM_FRONTEND_INSTANCE(x) \
611  typedef x ak_wwise_plugin_frontend_instance
612 #endif
613 
614 /**
615  * \brief Base host-provided instance type for ak_wwise_plugin_host_v1.
616  *
617  * \sa
618  * - ak_wwise_plugin_host_v1 C interface.
619  * - AK::Wwise::Plugin::V1::Host C++ class.
620  */
622 
623 /**
624  * \brief Base host-provided instance type for ak_wwise_plugin_host_v2.
625  *
626  * \sa
627  * - ak_wwise_plugin_host_v2 C interface.
628  * - AK::Wwise::Plugin::V2::Host C++ class.
629  */
631  ak_wwise_plugin_host_instance_v2,
633 );
634 
635 /**
636  * \brief Base host-provided instance type for ak_wwise_plugin_host_conversion_helpers_v1.
637  *
638  * \sa
639  * - ak_wwise_plugin_host_conversion_helpers_v1 C interface.
640  * - AK::Wwise::Plugin::V1::ConversionHelpers C++ class.
641  */
643 
644 /**
645  * \brief Base host-provided instance type for ak_wwise_plugin_host_data_writer_v1.
646  *
647  * \sa
648  * - ak_wwise_plugin_host_data_writer_v1 C interface.
649  * - AK::Wwise::Plugin::V1::DataWriter C++ class.
650  */
652 
653 /**
654  * \brief Base host-provided instance type for ak_wwise_plugin_host_object_media_v1.
655  *
656  * \sa
657  * - ak_wwise_plugin_host_object_media_v1 C interface.
658  * - AK::Wwise::Plugin::V1::ObjectMedia C++ class.
659  */
661 
662 /**
663  * \brief Base host-provided instance type for ak_wwise_plugin_host_object_store_v1.
664  *
665  * \sa
666  * - ak_wwise_plugin_host_object_store_v1 C interface.
667  * - AK::Wwise::Plugin::V1::ObjectStore C++ class.
668  */
670 
671 /**
672  * \brief Base host-provided instance type for ak_wwise_plugin_host_property_set_v1.
673  *
674  * Is also compatible with ak_wwise_plugin_host_property_set_v2.
675  *
676  * \sa
677  * - ak_wwise_plugin_host_property_set_v1 C interface.
678  * - AK::Wwise::Plugin::V1::PropertySet C++ class.
679  * - ak_wwise_plugin_host_property_set_v2 C interface.
680  * - AK::Wwise::Plugin::V2::PropertySet C++ class.
681  */
683 
684 /**
685  * \brief Base host-provided instance type for ak_wwise_plugin_host_undo_manager_v1.
686  *
687  * \sa
688  * - ak_wwise_plugin_host_undo_manager_v1 C interface.
689  * - AK::Wwise::Plugin::V1::UndoManager C++ class.
690  */
692 
693 /**
694  * \brief Base host-provided instance type for reading XML files through ak_wwise_plugin_host_xml_v1.
695  *
696  * \sa
697  * - ak_wwise_plugin_host_xml_v1 C interface.
698  * - AK::Wwise::Plugin::V1::XmlReader C++ class.
699  */
701 
702 /**
703  * \brief Base host-provided instance type for writing XML files through ak_wwise_plugin_host_xml_v1.
704  *
705  * \sa
706  * - ak_wwise_plugin_host_xml_v1 C interface.
707  * - AK::Wwise::Plugin::V1::XmlWriter C++ class.
708  */
710 
711 
712 struct ak_wwise_plugin_analysis_task_v1;
713 /**
714  * \brief Base instance type for providing analysis task services through ak_wwise_plugin_analysis_task_v1.
715  *
716  * \sa
717  * - ak_wwise_plugin_analysis_task_v1 C interface.
718  * - AK::Wwise::Plugin::V1::AnalysisTask C++ class.
719  */
721 
723 /**
724  * \brief Base instance type for providing audio plug-in backend services through ak_wwise_plugin_audio_plugin_v1.
725  *
726  * \sa
727  * - ak_wwise_plugin_audio_plugin_v1 C interface.
728  * - AK::Wwise::Plugin::V1::AudioPlugin C++ class.
729  */
731 
732 struct ak_wwise_plugin_conversion_v1;
733 /**
734  * \brief Base instance type for providing a conversion plug-in through ak_wwise_plugin_conversion_v1.
735  *
736  * \sa
737  * - ak_wwise_plugin_conversion_v1 C interface.
738  * - AK::Wwise::Plugin::V1::Conversion C++ class.
739  */
741 
743 /**
744  * \brief Base instance type for providing custom data loading and saving through ak_wwise_plugin_custom_data_v1.
745  *
746  * \sa
747  * - ak_wwise_plugin_custom_data_v1 C interface.
748  * - AK::Wwise::Plugin::V1::CustomData C++ class.
749  */
751 
753 /**
754  * \brief Base instance type for providing display names to properties through ak_wwise_plugin_property_display_name_v1.
755  *
756  * \sa
757  * - ak_wwise_plugin_property_display_name_v1 C interface.
758  * - AK::Wwise::Plugin::V1::PropertyDisplayName C++ class.
759  */
761 
762 struct ak_wwise_plugin_feedback_aware_v1;
763 /**
764  * \brief Base instance type for providing property-based feedback through ak_wwise_plugin_feedback_aware_v1.
765  *
766  * \sa
767  * - ak_wwise_plugin_feedback_aware_v1 C interface.
768  * - AK::Wwise::Plugin::V1::FeedbackAware C++ class.
769  */
771 
772 struct ak_wwise_plugin_gui_conversion_windows_v1;
773 /**
774  * \brief Base instance type for providing a Windows frontend for a conversion plug-in through ak_wwise_plugin_gui_conversion_windows_v1.
775  *
776  * \sa
777  * - ak_wwise_plugin_gui_conversion_windows_v1 C interface.
778  * - AK::Wwise::Plugin::V1::GUIConversionWindows C++ class.
779  * - ak_wwise_plugin_conversion_v1 Conversion backend's C interface.
780  * - AK::Wwise::Plugin::V1::Conversion Conversion frontend's C++ class.
781  */
783 
785 /**
786  * \brief Base instance type for providing a Windows frontend for an audio plug-in through ak_wwise_plugin_gui_windows_v1.
787  *
788  * \sa
789  * - ak_wwise_plugin_gui_windows_v1 C interface.
790  * - AK::Wwise::Plugin::V1::GUIWindows C++ class.
791  * - ak_wwise_plugin_audio_plugin_v1 Audio plug-in backend's C interface.
792  * - AK::Wwise::Plugin::V1::AudioPlugin Audio plug-in frontend's C++ class.
793  */
795 
797 /**
798  * \brief Base host-provided instance to retrieve the related backend instance, as shown in the frontend.
799  *
800  * \sa
801  * - ak_wwise_plugin_link_backend_v1 C interface.
802  * - AK::Wwise::Plugin::V1::LinkBackend C++ class.
803  */
805 
807 /**
808  * \brief Base host-provided instance to retrieve the related frontend instances related to the current backend.
809  *
810  * \sa
811  * - ak_wwise_plugin_link_frontend_v1 C interface.
812  * - AK::Wwise::Plugin::V1::LinkFrontend C++ class.
813  */
815 
817 /**
818  * \brief Base instance type for providing custom media conversion through ak_wwise_plugin_media_converter_v1.
819  *
820  * \sa
821  * - ak_wwise_plugin_media_converter_v1 C interface.
822  * - AK::Wwise::Plugin::V1::MediaConverter C++ class.
823  */
825 
826 struct ak_wwise_plugin_notifications_host_v1;
827 /**
828  * \brief Base instance type for receiving notifications on host changes events.
829  *
830  * \sa
831  * - ak_wwise_plugin_notifications_host_v1 C interface.
832  * - AK::Wwise::Plugin::V1::Notifications::Host_ C++ class.
833  * - ak_wwise_plugin_host_v1 Related C host interface.
834  * - AK::Wwise::Plugin::V1::Host Related C++ host class.
835  */
837 
839 /**
840  * \brief Base instance type for receiving Sound Engine's monitoring data.
841  *
842  * \sa
843  * - ak_wwise_plugin_notifications_monitor_v1 C interface.
844  * - AK::Wwise::Plugin::V1::Notifications::Monitor C++ class.
845  * - AK::Wwise::Plugin::MonitorData
846  */
848 
850 /**
851  * \brief Base instance type for receiving notifications on related object media's changes.
852  *
853  * \sa
854  * - ak_wwise_plugin_notifications_object_media_v1 C interface.
855  * - AK::Wwise::Plugin::V1::Notifications::ObjectMedia_ C++ class.
856  * - ak_wwise_plugin_host_object_media_v1 Related C host interface.
857  * - AK::Wwise::Plugin::V1::ObjectMedia Related C++ host class.
858  */
860 
862 /**
863  * \brief Base instance type for receiving notifications on related Object Store's changes.
864  *
865  * \sa
866  * - ak_wwise_plugin_notifications_object_store_v1 C interface.
867  * - AK::Wwise::Plugin::V1::Notifications::ObjectStore_ C++ class.
868  * - ak_wwise_plugin_host_object_store_v1 Related C host interface.
869  * - AK::Wwise::Plugin::V1::ObjectStore Related C++ host class.
870  */
872 
873 struct ak_wwise_plugin_notifications_property_set_v1;
874 /**
875  * \brief Base instance type for receiving notifications on property set's changes.
876  *
877  * \sa
878  * - ak_wwise_plugin_notifications_property_set_v1 C interface.
879  * - AK::Wwise::Plugin::V1::Notifications::PropertySet_ C++ class.
880  * - ak_wwise_plugin_host_property_set_v1 Related C host interface.
881  * - AK::Wwise::Plugin::V1::PropertySet Related C++ host class.
882  */
884 
886 /**
887  * \brief Base instance type for providing source-specific information, through ak_wwise_plugin_source_v1.
888  *
889  * \sa
890  * - ak_wwise_plugin_source_v1 C interface.
891  * - AK::Wwise::Plugin::V1::Source C++ class.
892  */
894 
896 /**
897  * \brief Base instance type for providing custom undo operations through ak_wwise_plugin_undo_event_v1.
898  *
899  * \sa
900  * - ak_wwise_plugin_undo_event_v1 C interface.
901  * - AK::Wwise::Plugin::V1::UndoEvent C++ class.
902  * - ak_wwise_plugin_host_undo_manager_v1 Host's C manager interface.
903  * - AK::Wwise::Plugin::V1::UndoManager Host's C++ manager class.
904  */
906 
908 /**
909  * \brief Base instance type for providing licensing information, through ak_wwise_plugin_license_v1.
910  *
911  * \sa
912  * - ak_wwise_plugin_license_v1 C interface.
913  * - AK::Wwise::Plugin::V1::License C++ class.
914  */
916 
917 
918 /**
919  * \brief Base instance type for providing a message shown the first time an instance is created through ak_wwise_plugin_first_time_creation_message_v1.
920  *
921  * \sa
922  * - ak_wwise_plugin_first_time_creation_message_v1 C interface.
923  * - AK::Wwise::Plugin::V1::FirstTimeCreationMessage C++ class.
924  */
926 
927 /**
928  * \brief Base instance type for providing a device list for your custom sink through ak_wwise_plugin_sink_devices_v1.
929  *
930  * \sa
931  * - ak_wwise_plugin_sink_devices_v1 C interface.
932  * - AK::Wwise::Plugin::V1::SinkDevices C++ class.
933  */
935 
938 
941 
943 
945 {
946  const char* templateName;
947 };
948 
949 #undef AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE
950 
951 /**
952  * \brief A definition of an undo event, with a specific interface and instance.
953  *
954  * Allows to bind an event from any source: Authoring or any plug-in. Allows to have multiple separate interfaces.
955  *
956  * - ak_wwise_plugin_undo_event_v1 C interface for an undo event.
957  * - ak_wwise_plugin_undo_event_instance_v1 C instance for an undo event.
958  * - AK::Wwise::Plugin::V1::UndoEvent C++ class for an undo event.
959  * - ak_wwise_plugin_host_undo_manager_v1 C interface for the undo manager.
960  * - AK::Wwise::Plugin::V1::UndoManager C++ class for the undo manager.
961  */
963 {
964  struct ak_wwise_plugin_undo_event_v1* m_interface; ///< The interface to execute that undo event's commands.
965  struct ak_wwise_plugin_undo_event_instance_v1* m_instance; ///< The specific instance usued for that particular undo event.
966 };
967 
968 typedef int ak_wwise_plugin_undo_group_id; ///< Unique identifier for a particular undo group. Useful to reopen an unapplied closed group session.
969 
970 /**
971  * \brief Action to apply once this undo group is closed.
972  *
973  * The goal of an undo group is to keep a list of actions being executed that can be undone (for example, a
974  * property set modification). Once the operations are all done, this indicates what should be done with the internal
975  * operations.
976  *
977  * - \ref AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY : The usual operation is to open an undo group, and then close
978  * and apply the group to the undo stack. This provides a valid Undo/Redo label, as well as a description of all
979  * the operations that need to be done.
980  * - \ref AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY_FIRST_EVENT_NAME
981  * and AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY_LAST_EVENT_NAME are convenience operations, where the Undo
982  * operation title is retrieved from either the first or the last event's name, instead of hard-coding it ourselves.
983  * - \ref AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CANCEL cancels the undo operations. It happens when an abnormal
984  * termination occurs, such as an error, or the user cancelling a lengthy operation. Since the operation states
985  * aren't known, you are responsible to handle the stored undo yourself, and manually revert all operations first
986  * before closing the action. An example of this operation is doing a slider drag event, where the user presses
987  * the Escape key instead of doing a Mouse Up. Effectively, all the inner operations will simply be cancelled by storing
988  * the initial value before doing the cancel operation on close.
989  * - \ref AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CLOSE temporarily closes the undo state, leaving it possible to reopen
990  * it later. This is useful during lengthy processes, such as a user dragging a slider. You are expected to
991  * temporarily close the undo group when going out of scope, and reopening it when receiving a new system mouse drag
992  * event in this particular example.
993  */
994 typedef enum {
995  AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CLOSE, ///< Close this group session (going out of scope), but do not apply it yet.
996  AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY, ///< Close this group session permanently, and apply its operations to the englobing group.
997  AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY_FIRST_EVENT_NAME, ///< Same than AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY, but copies the name of the first inner undo event as the name.
998  AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY_LAST_EVENT_NAME, ///< Same than AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY, but copies the name of the last inner undo event as the name.
999  AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CANCEL ///< Close this group session permanently, and cancel all its internal operations. Undo operations are not applied.
1001 
1002 /**
1003  * \brief Bitfield values of brace types, used to delay or avoid certain actions normally triggered as a result
1004  * of a property set mutation.
1005  *
1006  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_NO_NOTIFY : Do not notify of changes
1007  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_NO_UNDO_EVENTS : Do not create undo events
1008  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_SET_VALUE : Collapse set values notifications once the brace is closed
1009  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_REORDER_CHILDREN : Children are being reordered
1010  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_DISABLE_PROPERTY_CONSTRAINTS : Disable property constraints
1011  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_NO_DIRTY : Inhibit the project's dirty state
1012  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_CREATE_PROPERTY_ON_SET_VALUE : Create a new property when an unknown property is set
1013  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_CHANGE_TO_EXISTING_VALUE_TYPE : Allow a property type change if the provided type differs from its current type
1014  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_LOADING : Indicates the object is being loaded
1015  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_UNLOADING : Indicates the object is being unloaded
1016  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_DELETING : Indicates the object is being deleted
1017  * - \ref AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_SET_OBJECT_LIST : Collapse the final set object list once the last brace is closed
1018  *
1019  * \sa
1020  * - AK::Wwise::Plugin::PropertySet::OpenBraces
1021  * - AK::Wwise::Plugin::PropertySet::CloseBraces
1022 */
1023 typedef enum
1024 {
1038 
1039 /// \brief Bitfield composed of values defined in \c ak_wwise_plugin_property_set_braces_values
1041 
1042 /**
1043  * @}
1044  */
1045 
1046 #ifdef __cplusplus
1047 namespace AK::Wwise::Plugin
1048 {
1049  using CBaseInterface = ak_wwise_plugin_base_interface; ///< \copydoc ak_wwise_plugin_base_interface
1050  using CInterfacePtr = ak_wwise_plugin_interface_ptr;
1051  using CInterfaceArrayItem = ak_wwise_plugin_interface_array_item; ///< \copydoc ak_wwise_plugin_interface_array_item
1052  using CPluginInfo = ak_wwise_plugin_info; ///< \copydoc ak_wwise_plugin_info
1053  using CPluginContainer = ak_wwise_plugin_container; ///< \copydoc ak_wwise_plugin_container
1055 
1056  using BaseInterface = CBaseInterface; ///< \copydoc ak_wwise_plugin_base_interface
1058  using InterfaceArrayItem = CInterfaceArrayItem; ///< \copydoc ak_wwise_plugin_interface_array_item
1059  using PluginInfo = CPluginInfo; ///< \copydoc ak_wwise_plugin_info
1060  using PluginContainer = CPluginContainer; ///< \copydoc ak_wwise_plugin_container
1061  using Widget = CWidget;
1062 }
1063 #endif
virtual bool SetValueUInt16(const char *in_pszPropertyName, uint16_t in_varProperty)=0
uint32_t decodedFileSize
File size of file when decoded to PCM format, If offline decoding is supported by the codec....
Definition: PluginDef.h:475
virtual void ErrorMessage(const char *in_rErrorText, Severity in_eSeverity=Severity_Warning)=0
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_NO_DIRTY
Definition: PluginDef.h:1030
Base instance type for providing custom undo operations through ak_wwise_plugin_undo_event_v1.
Definition: PluginDef.h:905
virtual bool GetValueReal64(const char *in_pszPropertyName, double &out_varProperty) const =0
@ AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CLOSE
Close this group session (going out of scope), but do not apply it yet.
Definition: PluginDef.h:995
void ak_wwise_plugin_widget
Definition: PluginDef.h:507
int32_t GetInt32(const char *in_pszPropertyName) const
Definition: PluginDef.h:273
Base host-provided instance type for ak_wwise_plugin_host_undo_manager_v1.
Definition: PluginDef.h:691
virtual bool GetValueBool(const char *in_pszPropertyName, bool &out_varProperty) const =0
Frontend plug-in API for Audio plug-ins.
Definition: Frontend.h:46
virtual void WriteString(const char *in_szString, int in_iStringLength)=0
Generic base for all plug-in instances. In C++, this is derived. In C, they are equivalent.
Definition: PluginDef.h:502
Definition of data structures for AkAudioObject.
uint16_t GetUInt16(const char *in_pszPropertyName) const
Definition: PluginDef.h:318
virtual bool SetValueReal32(const char *in_pszPropertyName, float in_varProperty)=0
const char * pszProp
The property name.
Definition: PluginDef.h:128
Plug-in frontend instance.
Definition: PluginDef.h:571
virtual bool GetValueInt16(const char *in_pszPropertyName, int16_t &out_varProperty) const =0
virtual bool GetValueInt8(const char *in_pszPropertyName, int8_t &out_varProperty) const =0
API to convert used object medias to a format usable by the plug-in's Sound Engine part.
@ LicenseStatus_Expired
A license is found, but is expired.
Definition: PluginDef.h:69
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_LOADING
Definition: PluginDef.h:1033
const void * data
Pointer to start of file data.
Definition: PluginDef.h:482
@ AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY
Close this group session permanently, and apply its operations to the englobing group.
Definition: PluginDef.h:996
virtual bool SetValueInt8(const char *in_pszPropertyName, int8_t in_varProperty)=0
ak_wwise_plugin_interface_ptr CInterfacePtr
Definition: PluginDef.h:1050
Base host-provided instance type for ak_wwise_plugin_host_object_media_v1.
Definition: PluginDef.h:660
double GetReal64(const char *in_pszPropertyName) const
Definition: PluginDef.h:336
ak_wwise_plugin_interface_array_item CInterfaceArrayItem
A single instantiatable plug-in interface.
Definition: PluginDef.h:1051
virtual bool SetValueUInt64(const char *in_pszPropertyName, uint64_t in_varProperty)=0
int8_t GetInt8(const char *in_pszPropertyName) const
Definition: PluginDef.h:291
Base instance type for providing custom media conversion through ak_wwise_plugin_media_converter_v1.
Definition: PluginDef.h:824
uint32_t sampleRate
Number of samples per second.
Definition: PluginDef.h:473
uint8_t GetUInt8(const char *in_pszPropertyName) const
Definition: PluginDef.h:327
Base instance type for providing custom data loading and saving through ak_wwise_plugin_custom_data_v...
Definition: PluginDef.h:750
Base instance type for providing a message shown the first time an instance is created through ak_wwi...
Definition: PluginDef.h:925
ak_wwise_plugin_container CPluginContainer
Root interface allowing a logical unit (variable, library) to contain more than one interface.
Definition: PluginDef.h:1053
API to create a custom undo event in a plug-in.
uint32_t ak_wwise_plugin_property_set_braces
Bitfield composed of values defined in ak_wwise_plugin_property_set_braces_values.
Definition: PluginDef.h:1040
virtual bool GetValueUInt8(const char *in_pszPropertyName, uint8_t &out_varProperty) const =0
virtual void NotifyProgress(uint32_t in_dwProgress)=0
Notify of the advancement of the task.
virtual bool SetValueInt64(const char *in_pszPropertyName, int64_t in_varProperty)=0
NotifyInnerObjectOperation
Type of operation for the NotifyInnerObjectAddedRemoved function.
Definition: PluginDef.h:83
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_NO_NOTIFY
Definition: PluginDef.h:1025
virtual bool ClearValue(const char *in_pszPropertyName)=0
uint32_t dataSize
Actual size of data, taking duration into account (for prefetch)
Definition: PluginDef.h:471
struct ak_wwise_plugin_undo_event_v1 * m_interface
The interface to execute that undo event's commands.
Definition: PluginDef.h:964
#define AK_WWISE_PLUGIN_DERIVE_FROM_BACKEND_INSTANCE(x)
Define an instance type as a backend.
Definition: PluginDef.h:588
uint64_t GetUInt64(const char *in_pszPropertyName) const
Definition: PluginDef.h:300
Base host-provided instance type for ak_wwise_plugin_host_data_writer_v1.
Definition: PluginDef.h:651
Base instance type for providing audio plug-in backend services through ak_wwise_plugin_audio_plugin_...
Definition: PluginDef.h:730
#define AK_WWISE_PLUGIN_INTERFACE_EXTEND_PREVIOUS(interface, interface_prev)
Define a generic instance base, either in C or in C++.
Definition: PluginDef.h:543
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_REORDER_CHILDREN
Definition: PluginDef.h:1028
Windows frontend plug-in API for Audio plug-ins.
Definition: GUIWindows.h:92
LicenseType
License type.
Definition: PluginDef.h:59
virtual bool GetValueUInt32(const char *in_pszPropertyName, uint32_t &out_varProperty) const =0
virtual bool GetValueUInt16(const char *in_pszPropertyName, uint16_t &out_varProperty) const =0
Root interface allowing a logical unit (variable, library) to contain more than one interface.
API specific for source plug-in.
Definition: Source.h:46
uint32_t GetUInt32(const char *in_pszPropertyName) const
Definition: PluginDef.h:309
Base host-provided instance type for ak_wwise_plugin_host_v1.
Definition: PluginDef.h:621
virtual bool SetValueInt32(const char *in_pszPropertyName, int32_t in_varProperty)=0
AK::Wwise::Plugin::IWriteString * error
Definition: PluginDef.h:452
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_CHANGE_TO_EXISTING_VALUE_TYPE
Definition: PluginDef.h:1032
virtual bool GetValue(const char *in_szPropertyName, AK::WwiseAuthoringAPI::AkVariantBase &out_rValue) const =0
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_DELETING
Definition: PluginDef.h:1035
int16_t GetInt16(const char *in_pszPropertyName) const
Definition: PluginDef.h:282
Generic base for all plug-in instances in C++.
Definition: PluginDef.h:521
@ Severity_Error
impacting the integrity of the current operation
Definition: PluginDef.h:113
Base instance type for providing analysis task services through ak_wwise_plugin_analysis_task_v1.
Definition: PluginDef.h:720
Base host-provided instance type for ak_wwise_plugin_host_conversion_helpers_v1.
Definition: PluginDef.h:642
API for Sound Engine's Monitor Data notification.
Definition: Notifications.h:48
CInterfacePtr InterfacePtr
Definition: PluginDef.h:1057
int ak_wwise_plugin_undo_group_id
Unique identifier for a particular undo group. Useful to reopen an unapplied closed group session.
Definition: PluginDef.h:968
ak_wwise_plugin_base_interface CBaseInterface
Interface description and base class for every Wwise Authoring plug-in interface.
Definition: PluginDef.h:1049
#define AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE
Define a generic instance base, either in C or in C++.
Definition: PluginDef.h:532
virtual void SetCurrentOperationName(const char *in_szOperationName)=0
virtual bool SetValueString(const char *in_pszPropertyName, const char *in_varProperty)=0
#define AKVERIFY(x)
Definition: AkAssert.h:69
ak_wwise_plugin_undo_group_close_action
Action to apply once this undo group is closed.
Definition: PluginDef.h:994
virtual bool GetValueString(const char *in_pszPropertyName, const char *&out_varProperty) const =0
float GetReal32(const char *in_pszPropertyName) const
Definition: PluginDef.h:345
virtual bool IsCancelled() const =0
Check if the user has cancelled the task.
@ LicenseStatus_Unlicensed
No license found.
Definition: PluginDef.h:68
Base instance type for providing display names to properties through ak_wwise_plugin_property_display...
Definition: PluginDef.h:760
Plug-in backend instance.
Definition: PluginDef.h:556
@ Severity_FatalError
impacting the completion of the current operation
Definition: PluginDef.h:114
Base instance type for providing a device list for your custom sink through ak_wwise_plugin_sink_devi...
Definition: PluginDef.h:934
Base instance type for providing source-specific information, through ak_wwise_plugin_source_v1.
Definition: PluginDef.h:893
Base instance type for receiving notifications on host changes events.
Definition: PluginDef.h:836
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_DISABLE_PROPERTY_CONSTRAINTS
Definition: PluginDef.h:1029
ConversionResult
Conversion error code.
Definition: PluginDef.h:147
Base instance type for providing licensing information, through ak_wwise_plugin_license_v1.
Definition: PluginDef.h:915
ak_wwise_plugin_widget CWidget
Definition: PluginDef.h:1054
Base instance type for receiving notifications on related Object Store's changes.
Definition: PluginDef.h:871
Interfaces used to set and get the properties from a plug in.
Definition: PluginDef.h:186
@ LicenseStatus_Valid
A license is found and is valid.
Definition: PluginDef.h:70
@ AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY_LAST_EVENT_NAME
Same than AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY, but copies the name of the last inner undo e...
Definition: PluginDef.h:998
virtual bool GetValueUInt64(const char *in_pszPropertyName, uint64_t &out_varProperty) const =0
virtual int GetType(const char *in_pszPropertyName) const =0
virtual ~ak_wwise_plugin_cpp_base_instance()
Definition: PluginDef.h:522
virtual bool SetValueUInt32(const char *in_pszPropertyName, uint32_t in_varProperty)=0
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_SET_VALUE
Definition: PluginDef.h:1027
const char * GetString(const char *in_pszPropertyName) const
Definition: PluginDef.h:255
@ Severity_Warning
potentially impacting the integrity of the current operation
Definition: PluginDef.h:112
Interface able to receive notifications for custom inner property sets.
Base instance type for receiving Sound Engine's monitoring data.
Definition: PluginDef.h:847
Base instance type for providing a conversion plug-in through ak_wwise_plugin_conversion_v1.
Definition: PluginDef.h:740
virtual bool SetValueReal64(const char *in_pszPropertyName, double in_varProperty)=0
@ AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CANCEL
Close this group session permanently, and cancel all its internal operations. Undo operations are not...
Definition: PluginDef.h:999
Severity
Log message severity.
Definition: PluginDef.h:109
IReadWriteProperties * pluginProperties
Definition: PluginDef.h:457
const IReadOnlyProperties * sourceProperties
Definition: PluginDef.h:456
ak_wwise_plugin_property_set_braces_values
Bitfield values of brace types, used to delay or avoid certain actions normally triggered as a result...
Definition: PluginDef.h:1024
Wwise API for general Audio Plug-in's backend.
Definition: AudioPlugin.h:52
AudioFileChannel
Import channel configuration options.
Definition: PluginDef.h:97
Backend API to specify display names for properties.
virtual bool SetValue(const char *in_szPropertyName, const AK::WwiseAuthoringAPI::AkVariantBase &in_rValue)=0
virtual bool GetValueInt32(const char *in_pszPropertyName, int32_t &out_varProperty) const =0
uint32_t duration
Actual duration of data, or -1 for entire file.
Definition: PluginDef.h:472
Interface description and base class for every Wwise Authoring plug-in interface.
@ Severity_Success
operation was executed without errors or will not produce errors
Definition: PluginDef.h:110
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_NO_UNDO_EVENTS
Definition: PluginDef.h:1026
Base host-provided instance type for reading XML files through ak_wwise_plugin_host_xml_v1.
Definition: PluginDef.h:700
Base host-provided instance type for ak_wwise_plugin_host_property_set_v1.
Definition: PluginDef.h:682
A definition of an undo event, with a specific interface and instance.
Definition: PluginDef.h:963
bool GetBool(const char *in_pszPropertyName) const
Definition: PluginDef.h:354
Base instance type for providing a Windows frontend for a conversion plug-in through ak_wwise_plugin_...
Definition: PluginDef.h:782
virtual void SetRange(uint32_t in_dwMinValue, uint32_t in_dwMaxValue)=0
Should be called at the beginning of the operation to set the min and max value.
#define AK_WWISE_PLUGIN_DERIVE_FROM_FRONTEND_INSTANCE(x)
Define an instance type as a frontend.
Definition: PluginDef.h:605
@ LicenseType_Academic
The license is for academic.
Definition: PluginDef.h:62
Base host-provided instance type for ak_wwise_plugin_host_object_store_v1.
Definition: PluginDef.h:669
ak_wwise_plugin_info CPluginInfo
Definition: PluginDef.h:1052
virtual bool SetValueUInt8(const char *in_pszPropertyName, uint8_t in_varProperty)=0
@ Severity_Message
not impacting the integrity of the current operation
Definition: PluginDef.h:111
@ AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY_FIRST_EVENT_NAME
Same than AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY, but copies the name of the first inner undo ...
Definition: PluginDef.h:997
int64_t GetInt64(const char *in_pszPropertyName) const
Definition: PluginDef.h:264
A single instantiatable plug-in interface.
AkChannelConfig channelConfig
Channel configuration.
Definition: PluginDef.h:474
Base instance type for providing property-based feedback through ak_wwise_plugin_feedback_aware_v1.
Definition: PluginDef.h:770
AK::Wwise::Plugin::IProgress * progress
Definition: PluginDef.h:451
Wwise Authoring Plug-ins - Helper tools, potentially defined elsewhere.
Base instance type for receiving notifications on related object media's changes.
Definition: PluginDef.h:859
@ LicenseStatus_Incompatible
The plugin was made for an older version of Wwise.
Definition: PluginDef.h:72
Base instance type for receiving notifications on property set's changes.
Definition: PluginDef.h:883
LicenseStatus
License status.
Definition: PluginDef.h:67
Base host-provided instance type for writing XML files through ak_wwise_plugin_host_xml_v1.
Definition: PluginDef.h:709
Backend API to specify licensing requirements.
Definition: License.h:43
Backend API to load and save custom data in XML format.
Definition: CustomData.h:54
uint32_t uiID
The dialog control resource ID.
Definition: PluginDef.h:127
@ LicenseType_Purchased
The license was purchased.
Definition: PluginDef.h:61
virtual bool GetValueInt64(const char *in_pszPropertyName, int64_t &out_varProperty) const =0
virtual bool SetValueInt16(const char *in_pszPropertyName, int16_t in_varProperty)=0
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_UNLOADING
Definition: PluginDef.h:1034
Base instance type for providing a Windows frontend for an audio plug-in through ak_wwise_plugin_gui_...
Definition: PluginDef.h:794
virtual bool GetValueReal32(const char *in_pszPropertyName, float &out_varProperty) const =0
@ LicenseType_Trial
Used for both Trial and Evaluation License handling.
Definition: PluginDef.h:60
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_CREATE_PROPERTY_ON_SET_VALUE
Definition: PluginDef.h:1031
struct ak_wwise_plugin_undo_event_instance_v1 * m_instance
The specific instance usued for that particular undo event.
Definition: PluginDef.h:965
@ AK_WWISE_PLUGIN_PROPERTY_SET_BRACES_SET_OBJECT_LIST
Definition: PluginDef.h:1036
uint8_t abyHash[16]
Converted file hash (as present in the HASH chunk).
Definition: PluginDef.h:476
virtual bool SetValueBool(const char *in_pszPropertyName, bool in_varProperty)=0

Was this page helpful?

Need Support?

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

Visit our Support page

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

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

Get started with Wwise