Version
Wwise SDK 2021.1.8
|
PluginDef.h
Go to the documentation of this file.
64 };
74 };
81 };
138 };
167 virtual void ErrorMessage(const char * in_rErrorText, Severity in_eSeverity = Severity_Warning) = 0;
468 uint32_t decodedFileSize; ///< File size of file when decoded to PCM format, *If* offline decoding is supported by the codec. Otherwise has value NO_OFFLINE_DECODING (-1)
487 typedef struct ak_wwise_plugin_base_interface* ak_wwise_plugin_interface_ptr; ///< Pointer to a generic base from a plug-in interface.
490 * \brief Generic base for all plug-in instances. In C++, this is derived. In C, they are equivalent.
496 typedef struct ak_wwise_plugin_base_instance* ak_wwise_plugin_instance_ptr; ///< Pointer to a generic base for a plug-in instances.
506 * \warning This differs from the ak_wwise_plugin_base_instance, as C++ classes have a virtual table as their first member.
507 * It's important to make the distinction between the two by specifically doing a static_cast between the C version and the C++ version,
508 * 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
519 * \warning These are NOT equivalent! In C, it is expected you can directly cast from your instance to an
520 * ak_wwise_plugin_base_instance. In C++, since the base classes have a virtual table, the pointer to the C members is
531 * A backend contains all the logic for the Authoring part of the plug-in. It is uniquely instantiated for each plug-in instance
539 * A frontend contains the visual part of the Authoring plug-in. It is optional, for example, it is never instantiated when
540 * connecting through WwiseConsole. As such, there should never be any processing or "intelligence" done in a frontend part.
542 * For example, the frontend should not affect licensing, soundbank generation, audio processing, property handling (such as
543 * validating ranges for property sets), media handling, media conversion, custom data loading, ...
545 * \aknote Porting note: In legacy plug-ins, there is only one instance of the Authoring plug-in that contains both
546 * the backend and the frontend. This has changed for multiple reasons: to be able to instantiate a plug-in backend without any
547 * frontend, or alternatively, to instantiate multiple copies of a frontend for a unique backend. \endaknote
555 * In C++, this derives the backend instance from the ak_wwise_plugin_backend_instance in a separate action so that RTTI can help
558 * In C, this is a typedef, as we cannot derive. The compiler also doesn't need to lookup addresses for complex structures, so this
572 * In C++, this derives the frontend instance from the ak_wwise_plugin_frontend_instance in a separate action so that RTTI can help
575 * In C, this is a typedef, as we cannot derive. The compiler also doesn't need to lookup addresses for complex structures, so this
608 struct ak_wwise_plugin_host_conversion_helpers_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
617 struct ak_wwise_plugin_host_data_writer_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
626 struct ak_wwise_plugin_host_object_media_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
635 struct ak_wwise_plugin_host_object_store_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
644 struct ak_wwise_plugin_host_property_set_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
653 struct ak_wwise_plugin_host_undo_manager_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
656 * \brief Base host-provided instance type for reading XML files through ak_wwise_plugin_host_xml_v1.
662 struct ak_wwise_plugin_host_xml_reader_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
665 * \brief Base host-provided instance type for writing XML files through ak_wwise_plugin_host_xml_v1.
671 struct ak_wwise_plugin_host_xml_writer_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
676 * \brief Base instance type for providing analysis task services through ak_wwise_plugin_analysis_task_v1.
686 * \brief Base instance type for providing audio plug-in backend services through ak_wwise_plugin_audio_plugin_v1.
696 * \brief Base instance type for providing a conversion plug-in through ak_wwise_plugin_conversion_v1.
706 * \brief Base instance type for providing custom data loading and saving through ak_wwise_plugin_custom_data_v1.
716 * \brief Base instance type for providing display names to properties through ak_wwise_plugin_property_display_name_v1.
722 struct ak_wwise_plugin_property_display_name_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
726 * \brief Base instance type for providing property-based feedback through ak_wwise_plugin_feedback_aware_v1.
736 * \brief Base instance type for providing a Windows frontend for a conversion plug-in through ak_wwise_plugin_gui_conversion_windows_v1.
744 AK_WWISE_PLUGIN_DERIVE_FROM_FRONTEND_INSTANCE(ak_wwise_plugin_gui_conversion_windows_instance_v1);
748 * \brief Base instance type for providing a Windows frontend for an audio plug-in through ak_wwise_plugin_gui_windows_v1.
760 * \brief Base host-provided instance to retrieve the related backend instance, as shown in the frontend.
770 * \brief Base host-provided instance to retrieve the related frontend instances related to the current backend.
780 * \brief Base instance type for providing custom media conversion through ak_wwise_plugin_media_converter_v1.
786 struct ak_wwise_plugin_media_converter_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
798 struct ak_wwise_plugin_notifications_host_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
809 struct ak_wwise_plugin_notifications_monitor_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
821 struct ak_wwise_plugin_notifications_object_media_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
833 struct ak_wwise_plugin_notifications_object_store_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
845 struct ak_wwise_plugin_notifications_property_set_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
849 * \brief Base instance type for providing source-specific information, through ak_wwise_plugin_source_v1.
859 * \brief Base instance type for providing custom undo operations through ak_wwise_plugin_undo_event_v1.
871 * \brief Base instance type for providing licensing information, through ak_wwise_plugin_license_v1.
881 * \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.
887 struct ak_wwise_plugin_first_time_creation_message_instance_v1 AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE {};
890 * \brief Base instance type for providing a device list for your custom sink through ak_wwise_plugin_sink_devices_v1.
906 * Allows to bind an event from any source: Authoring or any plug-in. Allows to have multiple separate interfaces.
916 struct ak_wwise_plugin_undo_event_v1* m_interface; ///< The interface to execute that undo event's commands.
917 struct ak_wwise_plugin_undo_event_instance_v1* m_instance; ///< The specific instance usued for that particular undo event.
920 typedef int ak_wwise_plugin_undo_group_id; ///< Unique identifier for a particular undo group. Useful to reopen an unapplied closed group session.
925 * The goal of an undo group is to keep a list of actions being executed that can be undone (for example, a
926 * property set modification). Once the operations are all done, this indicates what should be done with the internal
929 * - \ref AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY : The usual operation is to open an undo group, and then close
930 * and apply the group to the undo stack. This provides a valid Undo/Redo label, as well as a description of all
933 * and AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY_LAST_EVENT_NAME are convenience operations, where the Undo
934 * operation title is retrieved from either the first or the last event's name, instead of hard-coding it ourselves.
935 * - \ref AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CANCEL cancels the undo operations. It happens when an abnormal
936 * termination occurs, such as an error, or the user cancelling a lengthy operation. Since the operation states
937 * aren't known, you are responsible to handle the stored undo yourself, and manually revert all operations first
938 * before closing the action. An example of this operation is doing a slider drag event, where the user presses
939 * the Escape key instead of doing a Mouse Up. Effectively, all the inner operations will simply be cancelled by storing
941 * - \ref AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CLOSE temporarily closes the undo state, leaving it possible to reopen
942 * it later. This is useful during lengthy processes, such as a user dragging a slider. You are expected to
943 * temporarily close the undo group when going out of scope, and reopening it when receiving a new system mouse drag
947 AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CLOSE, ///< Close this group session (going out of scope), but do not apply it yet.
948 AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY, ///< Close this group session permanently, and apply its operations to the englobing group.
949 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.
950 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.
951 AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_CANCEL ///< Close this group session permanently, and cancel all its internal operations. Undo operations are not applied.
961 using CBaseInterface = ak_wwise_plugin_base_interface; ///< \copydoc ak_wwise_plugin_base_interface
963 using CInterfaceArrayItem = ak_wwise_plugin_interface_array_item; ///< \copydoc ak_wwise_plugin_interface_array_item
969 using InterfaceArrayItem = CInterfaceArrayItem; ///< \copydoc ak_wwise_plugin_interface_array_item
virtual bool SetValueUInt16(const char *in_pszPropertyName, uint16_t in_varProperty)=0
virtual void ErrorMessage(const char *in_rErrorText, Severity in_eSeverity=Severity_Warning)=0
Base instance type for providing custom undo operations through ak_wwise_plugin_undo_event_v1.
Definition: PluginDef.h:867
virtual bool GetValueReal64(const char *in_pszPropertyName, double &out_varProperty) const =0
API to receive host's update notifications.
Definition: Host.h:193
@ 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:947
int32_t GetInt32(const char *in_pszPropertyName) const
Definition: PluginDef.h:268
Base host-provided instance type for ak_wwise_plugin_host_undo_manager_v1.
Definition: PluginDef.h:653
virtual bool GetValueBool(const char *in_pszPropertyName, bool &out_varProperty) const =0
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:495
uint16_t GetUInt16(const char *in_pszPropertyName) const
Definition: PluginDef.h:313
virtual bool SetValueReal32(const char *in_pszPropertyName, float in_varProperty)=0
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
const char * destinationFileName
Definition: PluginDef.h:445
API to convert used object medias to a format usable by the plug-in's Sound Engine part.
Definition: MediaConverter.h:45
@ AK_WWISE_PLUGIN_UNDO_GROUP_CLOSE_ACTION_APPLY
Close this group session permanently, and apply its operations to the englobing group.
Definition: PluginDef.h:948
const char * sourceFileName
Definition: PluginDef.h:444
virtual bool SetValueInt8(const char *in_pszPropertyName, int8_t in_varProperty)=0
ak_wwise_plugin_interface_ptr CInterfacePtr
Definition: PluginDef.h:962
Base host-provided instance type for ak_wwise_plugin_host_object_media_v1.
Definition: PluginDef.h:626
double GetReal64(const char *in_pszPropertyName) const
Definition: PluginDef.h:331
ak_wwise_plugin_interface_array_item CInterfaceArrayItem
A single instantiatable plug-in interface.
Definition: PluginDef.h:963
virtual bool SetValueUInt64(const char *in_pszPropertyName, uint64_t in_varProperty)=0
int8_t GetInt8(const char *in_pszPropertyName) const
Definition: PluginDef.h:286
Base instance type for providing custom media conversion through ak_wwise_plugin_media_converter_v1.
Definition: PluginDef.h:786
Definition: AkSpeakerConfig.h:493
uint8_t GetUInt8(const char *in_pszPropertyName) const
Definition: PluginDef.h:322
Base instance type for providing custom data loading and saving through ak_wwise_plugin_custom_data_v...
Definition: PluginDef.h:712
Base instance type for providing a message shown the first time an instance is created through ak_wwi...
Definition: PluginDef.h:887
ak_wwise_plugin_container CPluginContainer
Root interface allowing a logical unit (variable, library) to contain more than one interface.
Definition: PluginDef.h:965
API to create a custom undo event in a plug-in.
Definition: HostUndoManager.h:46
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:78
virtual bool ClearValue(const char *in_pszPropertyName)=0
const GUID * basePlatformID
Definition: PluginDef.h:443
struct ak_wwise_plugin_undo_event_v1 * m_interface
The interface to execute that undo event's commands.
Definition: PluginDef.h:916
#define AK_WWISE_PLUGIN_DERIVE_FROM_BACKEND_INSTANCE(x)
Define an instance type as a backend.
Definition: PluginDef.h:566
uint64_t GetUInt64(const char *in_pszPropertyName) const
Definition: PluginDef.h:295
Definition: PluginDef.h:121
Base host-provided instance type for ak_wwise_plugin_host_data_writer_v1.
Definition: PluginDef.h:617
Base instance type for providing audio plug-in backend services through ak_wwise_plugin_audio_plugin_...
Definition: PluginDef.h:692
Windows frontend plug-in API for Audio plug-ins.
Definition: GUIWindows.h:93
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
uint32_t decodedFileSize
File size of file when decoded to PCM format, If offline decoding is supported by the codec....
Definition: PluginDef.h:468
virtual bool IsCancelled()=0
Check if the user has cancelled the task.
Root interface allowing a logical unit (variable, library) to contain more than one interface.
Definition: PluginContainer.h:52
uint32_t GetUInt32(const char *in_pszPropertyName) const
Definition: PluginDef.h:304
Base host-provided instance to retrieve the related backend instance, as shown in the frontend.
Definition: PluginDef.h:766
Base host-provided instance type for ak_wwise_plugin_host_v1.
Definition: PluginDef.h:599
virtual bool SetValueInt32(const char *in_pszPropertyName, int32_t in_varProperty)=0
AK::Wwise::Plugin::IWriteString * error
Definition: PluginDef.h:447
virtual bool GetValue(const char *in_szPropertyName, AK::WwiseAuthoringAPI::AkVariantBase &out_rValue) const =0
int16_t GetInt16(const char *in_pszPropertyName) const
Definition: PluginDef.h:277
Generic base for all plug-in instances in C++.
Definition: PluginDef.h:512
Base instance type for providing analysis task services through ak_wwise_plugin_analysis_task_v1.
Definition: PluginDef.h:682
Base host-provided instance type for ak_wwise_plugin_host_conversion_helpers_v1.
Definition: PluginDef.h:608
API for Sound Engine's Monitor Data notification.
Definition: Notifications.h:49
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:920
ak_wwise_plugin_base_interface CBaseInterface
Interface description and base class for every Wwise Authoring plug-in interface.
Definition: PluginDef.h:961
#define AK_WWISE_PLUGIN_DERIVE_FROM_INSTANCE_BASE
Define a generic instance base, either in C or in C++.
Definition: PluginDef.h:523
virtual void SetCurrentOperationName(const char *in_szOperationName)=0
virtual bool SetValueString(const char *in_pszPropertyName, const char *in_varProperty)=0
ak_wwise_plugin_undo_group_close_action
Action to apply once this undo group is closed.
Definition: PluginDef.h:946
virtual bool GetValueString(const char *in_pszPropertyName, const char *&out_varProperty) const =0
float GetReal32(const char *in_pszPropertyName) const
Definition: PluginDef.h:340
Definition: PluginDef.h:438
Base instance type for providing display names to properties through ak_wwise_plugin_property_display...
Definition: PluginDef.h:722
Base instance type for providing a device list for your custom sink through ak_wwise_plugin_sink_devi...
Definition: PluginDef.h:896
Base instance type for providing source-specific information, through ak_wwise_plugin_source_v1.
Definition: PluginDef.h:855
Base instance type for receiving notifications on host changes events.
Definition: PluginDef.h:798
Base instance type for providing licensing information, through ak_wwise_plugin_license_v1.
Definition: PluginDef.h:877
Base instance type for receiving notifications on related Object Store's changes.
Definition: PluginDef.h:833
Interfaces used to set and get the properties from a plug in.
Definition: PluginDef.h:181
@ 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:950
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:513
virtual bool SetValueUInt32(const char *in_pszPropertyName, uint32_t in_varProperty)=0
const char * GetString(const char *in_pszPropertyName) const
Definition: PluginDef.h:250
@ Severity_Warning
potentially impacting the integrity of the current operation
Definition: PluginDef.h:107
Interface able to receive notifications for custom inner property sets.
Definition: HostObjectStore.h:300
Base instance type for receiving Sound Engine's monitoring data.
Definition: PluginDef.h:809
Base instance type for providing a conversion plug-in through ak_wwise_plugin_conversion_v1.
Definition: PluginDef.h:702
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:951
IReadWriteProperties * pluginProperties
Definition: PluginDef.h:452
const IReadOnlyProperties * sourceProperties
Definition: PluginDef.h:451
Host API to retrieve a link to the plug-in's frontend interfaces.
Definition: PluginLinks.h:83
Wwise API for general Audio Plug-in's backend.
Definition: AudioPlugin.h:53
Host API to retrieve a link to the plug-in's backend instance.
Definition: PluginLinks.h:46
Backend API to specify display names for properties.
Definition: PropertyDisplayName.h:47
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
Base host-provided instance to retrieve the related frontend instances related to the current backend...
Definition: PluginDef.h:776
Interface description and base class for every Wwise Authoring plug-in interface.
Definition: PluginBaseInterface.h:117
Definition: PluginDef.h:173
@ Severity_Success
operation was executed without errors or will not produce errors
Definition: PluginDef.h:105
Base host-provided instance type for reading XML files through ak_wwise_plugin_host_xml_v1.
Definition: PluginDef.h:662
Base host-provided instance type for ak_wwise_plugin_host_property_set_v1.
Definition: PluginDef.h:644
A definition of an undo event, with a specific interface and instance.
Definition: PluginDef.h:915
bool GetBool(const char *in_pszPropertyName) const
Definition: PluginDef.h:349
Definition: PluginDef.h:432
Base instance type for providing a Windows frontend for a conversion plug-in through ak_wwise_plugin_...
Definition: PluginDef.h:744
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:583
Base host-provided instance type for ak_wwise_plugin_host_object_store_v1.
Definition: PluginDef.h:635
float downmixNormalizationGain
Definition: PluginDef.h:461
virtual bool SetValueUInt8(const char *in_pszPropertyName, uint8_t in_varProperty)=0
Definition: PluginDef.h:472
@ 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:949
int64_t GetInt64(const char *in_pszPropertyName) const
Definition: PluginDef.h:259
A single instantiatable plug-in interface.
Definition: PluginInterfaceArrayItem.h:45
Definition: PluginInfo.h:39
Base instance type for providing property-based feedback through ak_wwise_plugin_feedback_aware_v1.
Definition: PluginDef.h:732
AK::Wwise::Plugin::IProgress * progress
Definition: PluginDef.h:446
Wwise Authoring Plug-ins - Helper tools, potentially defined elsewhere.
Base instance type for receiving notifications on related object media's changes.
Definition: PluginDef.h:821
@ LicenseStatus_Incompatible
The plugin was made for an older version of Wwise.
Definition: PluginDef.h:73
Base instance type for receiving notifications on property set's changes.
Definition: PluginDef.h:845
Definition: PluginDef.h:149
Base host-provided instance type for writing XML files through ak_wwise_plugin_host_xml_v1.
Definition: PluginDef.h:671
Backend API to load and save custom data in XML format.
Definition: CustomData.h:55
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
Definition: PluginDef.h:84
Base instance type for providing a Windows frontend for an audio plug-in through ak_wwise_plugin_gui_...
Definition: PluginDef.h:756
virtual bool GetValueReal32(const char *in_pszPropertyName, float &out_varProperty) const =0
struct ak_wwise_plugin_undo_event_instance_v1 * m_instance
The specific instance usued for that particular undo event.
Definition: PluginDef.h:917
Definition: PluginHelpers.h:46
Definition: AudioPlugin.h:112
virtual bool SetValueBool(const char *in_pszPropertyName, bool in_varProperty)=0
uint32_t analysisDataTypes
Definition: PluginDef.h:455