Wwise SDK 2022.1.4
_host_object_store_8h_source
Version
menu_open
link
HostObjectStore.h
Go to the documentation of this file.
40 * The Object Store contains named lists, and those named lists each contains a vector of inner property sets.
42 * For example, you can create a list named "Property curve points" and have 12 inner property sets with coordinates,
45 * Inner property sets can be created from any inner types, as defined in the plug-in's XML definition file
46 * <code>InnerTypes</code> section. Your lists should contain recognizable types, as there is no way to poll the
47 * type of the created object. This system was created with a one-list-one-type design pattern; however, there is
50 * You can define as many named lists as required. You should consider creating different inner property sets or
53 * You can create new inner property set with \ref CreatePropertySet, and insert it in a list's index with
56 * You can also subscribe to notifications through ak_wwise_plugin_notifications_object_store_v1 in order to be
60 * In order to manage property sets, you must make sure to use \ref AK::Wwise::Plugin::RequestPropertySet in
66 * since we are talking about property sets, the naming has been standardized to "inner property set".
98 * <code>in_uiIndex</code> position, so it will be stored in the project data. Existing object positions
101 * Named lists are created automatically, there is no limitation for naming. However, you should use the
121 * \param[in] in_pszListName Name of the affected list. That list will be created or appended depending
123 * \param[in] in_uiIndex Inner property set index in the list. If higher than or equal to the current
126 * \param[in] in_pPropertySet The inner property set to include in the list's index. This property set
139 * This is useful if you still need the object internally, or if you want to move that object to another
144 * The function \ref DeletePropertySet must be used if you still keep that reference without being
152 * \param[in] in_pPropertySet The inner property set to remove from any list's index. The object is not
173 * \param[in] in_pszListName Name of the polled list. If the list doesn't exist, the function will
175 * \param[in] in_uiIndex Inner property set index in the list. If higher than or equal to the current
191 * \param[in] in_pszListName Name of the polled list. If the list doesn't exist, the function will
203 * An inner property set must be defined as a particular <code>InnerType</code> in the plug-in's XML
216 * \param[in] in_pszType The requested InnerType, as defined in the plug-in's XML definition file.
227 * It will also remove the object from its list if the object has been inserted. As such, you are not
261 * If you do not provide a buffer big enough to write the full string, the function will fail and
269 * \param[in] in_uiBufferSize Size of the provided buffer. If the buffer is not big enough for the
287 * In order to manage property sets, you must make sure to use \ref AK::Wwise::Plugin::RequestPropertySet in
365 AK_WWISE_PLUGIN_BASE_INTERFACE_FROM_ID(AK_WWISE_PLUGIN_INTERFACE_TYPE_NOTIFICATIONS_OBJECT_STORE, 1)
366 #define AK_WWISE_PLUGIN_NOTIFICATIONS_OBJECT_STORE_V1_CTOR(/* ak_wwise_plugin_info* */ in_pluginInfo, /* void* */ in_data) \
368 .m_baseInterface = AK_WWISE_PLUGIN_BASE_INTERFACE_CTOR(AK_WWISE_PLUGIN_NOTIFICATIONS_OBJECT_STORE_V1_ID(), in_pluginInfo, in_data) \
394 };
404 };
411 * <code>in_uiIndex</code> position, so it will be stored in the project data. Existing object positions
414 * Named lists are created automatically, there is no limitation for naming. However, you should use the
433 * \param[in] in_pszListName Name of the affected list. That list will be created or appended depending
435 * \param[in] in_uiIndex Inner property set index in the list. If higher than or equal to the current
438 * \param[in] in_propertySet The inner property set to include in the list's index. This property set
453 * This is useful if you still need the object internally, or if you want to move that object to another
458 * The function \ref DeletePropertySet must be used if you still keep that reference without being
465 * \param[in] in_propertySet The inner property set to remove from any list's index. The object is not
487 * \param[in] in_pszListName Name of the polled list. If the list doesn't exist, the function will
489 * \param[in] in_uiIndex Inner property set index in the list. If higher than or equal to the current
498 return static_cast<PropertySet*>(g_cinterface->GetPropertySet(this, in_pszListName, in_uiIndex));
506 * \param[in] in_pszListName Name of the polled list. If the list doesn't exist, the function will
520 * An inner property set must be defined as a particular <code>InnerType</code> in the plug-in's XML
532 * \param[in] in_pszType The requested InnerType, as defined in the plug-in's XML definition file.
545 * It will also remove the object from its list if the object has been inserted. As such, you are not
581 * If you do not provide a buffer big enough to write the full string, the function will fail and
588 * \param[in] in_uiBufferSize Size of the provided buffer. If the buffer is not big enough for the
625 };
635 };
731 * Deriving your plug-in class from RequestObjectStore will automatically request both ObjectStore and
732 * Notifications::ObjectStore_ interfaces. From this point, you will be able to derive from the virtual
733 * functions, as defined in Notifications::ObjectStore_, and access the host-provided functions in the
755 AK_WWISE_PLUGIN_SPECIALIZE_HOST_INTERFACE(ObjectStore, objectStore,, public Notifications::ObjectStore);
Custom inner property set interface.
Definition: HostObjectStore.h:79
ak_wwise_plugin_notifications_object_store_v1 CObjectStore_
Definition: HostObjectStore.h:605
CObjectStore_::Instance * GetInstancePointer()
Definition: HostObjectStore.h:674
@ k_interfaceType
The interface type, as requested by this plug-in.
Definition: HostObjectStore.h:393
unsigned int GetPropertySetCount(const char *in_pszListName) const
Gets the number of inserted indexes inside the specified list.
Definition: HostObjectStore.h:510
Interface()
Definition: HostObjectStore.h:643
static GluedInterface * g_cinterface
The unique instance of the CInterface interface. Defined at nullptr first, overridden by the Host onc...
Definition: PluginInfoGenerator.h:89
decltype(BaseInterface::m_version) InterfaceVersion
PluginInfoGenerator: Type for the m_version value in BaseInterface.
Definition: PluginInfoGenerator.h:50
unsigned int GetListName(unsigned int in_uiListIndex, char *out_pszListName, unsigned int in_uiBufferSize) const
Gets the name of the list at the specified position.
Definition: HostObjectStore.h:593
Custom inner property set interface.
Definition: HostObjectStore.h:381
unsigned int(* GetListName)(const struct ak_wwise_plugin_host_object_store_instance_v1 *in_this, unsigned int in_uiListIndex, char *out_pszListName, unsigned int in_uiBufferSize)
Gets the name of the list at the specified position.
Definition: HostObjectStore.h:274
ak_wwise_plugin_host_object_store_v1 CHostObjectStore
Definition: HostObjectStore.h:377
V1::Notifications::ObjectStore_ ObjectStore
Latest version of the C++ ObjectStore notification interface.
Definition: HostObjectStore.h:752
Wwise Authoring Plug-ins - Plug-in API for property sets.
@ k_interfaceVersion
The interface version, as provided by this plug-in.
Definition: HostObjectStore.h:634
NotifyInnerObjectOperation
Type of operation for the NotifyInnerObjectAddedRemoved function.
Definition: PluginDef.h:77
ObjectStore_()
Definition: HostObjectStore.h:681
virtual void NotifyInnerObjectAddedRemoved(PropertySet &in_PSet, unsigned int in_uiIndex, NotifyInnerObjectOperation in_eOperation)
Called when an inner property set has changed.
Definition: HostObjectStore.h:720
@ AK_WWISE_PLUGIN_INTERFACE_TYPE_HOST_OBJECT_STORE
2021.1 Object Store host service. ak_wwise_plugin_host_object_store_v1
Definition: PluginBaseInterface.h:79
unsigned int(* GetPropertySetCount)(const struct ak_wwise_plugin_host_object_store_instance_v1 *in_this, const char *in_pszListName)
Gets the number of inserted indexes inside the specified list.
Definition: HostObjectStore.h:195
void InsertPropertySet(const char *in_pszListName, unsigned int in_uiIndex, const PropertySet &in_propertySet)
Inserts an inner property set into the specified list at the specified position.
Definition: HostObjectStore.h:441
ak_wwise_plugin_notifications_object_store_v1()
Definition: HostObjectStore.h:308
virtual void NotifyInnerObjectPropertyChanged(PropertySet &in_PSet, const GUID &in_guidPlatform, const char *in_pszPropertyName)
Called when an inner property set's data has changed.
Definition: HostObjectStore.h:701
bool RemovePropertySet(const PropertySet &in_propertySet)
Removes an inner property set from any list, without deleting the object itself.
Definition: HostObjectStore.h:469
void(* NotifyInnerObjectAddedRemoved)(struct ak_wwise_plugin_notifications_object_store_instance_v1 *in_this, struct ak_wwise_plugin_host_property_set_instance_v1 *in_pPSet, unsigned int in_uiIndex, AK::Wwise::Plugin::NotifyInnerObjectOperation in_eOperation)
Called when an inner property set has changed.
Definition: HostObjectStore.h:348
RequestedHostInterface< ObjectStore > RequestObjectStore
Requests an ObjectStore interface, provided as m_objectStore variable.
Definition: HostObjectStore.h:736
PluginInfoGenerator: Associates an existing C Interface with a variable that can be used....
Definition: PluginInfoGenerator.h:104
void DeletePropertySet(PropertySet *in_pPropertySet)
Frees the inner property set.
Definition: HostObjectStore.h:557
Interface able to receive notifications for custom inner property sets.
Definition: HostObjectStore.h:609
ak_wwise_plugin_notifications_object_store_instance_v1 Instance
Base instance type for receiving notifications on related Object Store's changes.
Definition: HostObjectStore.h:306
struct ak_wwise_plugin_host_property_set_instance_v1 *(* GetPropertySet)(const struct ak_wwise_plugin_host_object_store_instance_v1 *in_this, const char *in_pszListName, unsigned int in_uiIndex)
Gets an inner property set inside the specified list at the specified position.
Definition: HostObjectStore.h:179
PropertySet * CreatePropertySet(const char *in_pszType)
Creates a new inner property set.
Definition: HostObjectStore.h:535
Base instance type for receiving notifications on related Object Store's changes.
Definition: PluginDef.h:834
struct ak_wwise_plugin_host_property_set_instance_v1 *(* CreatePropertySet)(struct ak_wwise_plugin_host_object_store_instance_v1 *in_this, const char *in_pszType)
Creates a new inner property set.
Definition: HostObjectStore.h:219
std::underlying_type< InterfaceType >::type InterfaceTypeValue
PluginInfoGenerator: Underlying storage type for the m_interface value in BaseInterface.
Definition: PluginInfoGenerator.h:49
@ k_interfaceVersion
The interface version, as requested by this plug-in.
Definition: HostObjectStore.h:403
Interface able to receive notifications for custom inner property sets.
Definition: HostObjectStore.h:299
void(* NotifyInnerObjectPropertyChanged)(struct ak_wwise_plugin_notifications_object_store_instance_v1 *in_this, struct ak_wwise_plugin_host_property_set_instance_v1 *in_pPSet, const GUID *in_guidPlatform, const char *in_pszPropertyName)
Called when an inner property set's data has changed.
Definition: HostObjectStore.h:327
ak_wwise_plugin_host_object_store_v1()
Definition: HostObjectStore.h:88
Interface used to interact with property sets.
Definition: HostPropertySet.h:1052
AK_WWISE_PLUGIN_SPECIALIZE_INTERFACE_VERSION(AudioPlugin)
PropertySet * GetPropertySet(const char *in_pszListName, unsigned int in_uiIndex) const
Gets an inner property set inside the specified list at the specified position.
Definition: HostObjectStore.h:493
bool(* RemovePropertySet)(struct ak_wwise_plugin_host_object_store_instance_v1 *in_this, const struct ak_wwise_plugin_host_property_set_instance_v1 *in_pPropertySet)
Removes an inner property set from any list, without deleting the object itself.
Definition: HostObjectStore.h:156
Interface description and base class for every Wwise Authoring plug-in interface.
Definition: PluginBaseInterface.h:120
The C interface, fulfilled by your plug-in.
Definition: HostObjectStore.h:641
unsigned int(* GetListCount)(const struct ak_wwise_plugin_host_object_store_instance_v1 *in_this)
Returns the number of inner property set lists to be used with GetListName.
Definition: HostObjectStore.h:251
@ k_interfaceType
The interface type, as provided by this plug-in.
Definition: HostObjectStore.h:624
virtual ~ObjectStore_()
Definition: HostObjectStore.h:686
unsigned int GetListCount() const
Returns the number of inner property set lists to be used with GetListName.
Definition: HostObjectStore.h:569
Base host-provided instance type for ak_wwise_plugin_host_property_set_v1.
Definition: PluginDef.h:645
Base host-provided instance type for ak_wwise_plugin_host_object_store_v1.
Definition: PluginDef.h:636
void(* InsertPropertySet)(struct ak_wwise_plugin_host_object_store_instance_v1 *in_this, const char *in_pszListName, unsigned int in_uiIndex, const struct ak_wwise_plugin_host_property_set_instance_v1 *in_pPropertySet)
Inserts an inner property set into the specified list at the specified position.
Definition: HostObjectStore.h:129
@ AK_WWISE_PLUGIN_INTERFACE_TYPE_NOTIFICATIONS_OBJECT_STORE
2021.1 Object Store modification notification. ak_wwise_plugin_notifications_object_store_v1
Definition: PluginBaseInterface.h:66
#define AK_WWISE_PLUGIN_SPECIALIZE_HOST_INTERFACE(in_name, in_varname,...)
PluginInfoGenerator: Creates a C++ host specialization for interface class specified in in_name,...
Definition: PluginInfoGenerator.h:237
void(* DeletePropertySet)(struct ak_wwise_plugin_host_object_store_instance_v1 *in_this, struct ak_wwise_plugin_host_property_set_instance_v1 *in_pPropertySet)
Frees the inner property set.
Definition: HostObjectStore.h:240
AK_WWISE_PLUGIN_SPECIALIZE_INTERFACE_CLASS(AudioPlugin)
Definition: PluginHelpers.h:45
Definition: AudioPlugin.h:111
const CObjectStore_::Instance * GetInstancePointer() const
Definition: HostObjectStore.h:677
InterfacePtr GetInterfacePointer()
Definition: HostObjectStore.h:670
Was this page helpful?
Need Support?
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageTell 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