Version
menu_open
Wwise SDK 2023.1.4
HostObjectMedia.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 - API for retrieving and handling data files, as used in the plug-in.
29  * \file AK/Wwise/Plugin/HostObjectMedia.h
30  */
31 
32 #pragma once
33 
34 #include "PluginInfoGenerator.h"
35 
37 
38 /**
39  * Plug-in object media interface. Can be used to normalize media file handling inside the project.
40  */
42 #ifdef __cplusplus
44 #endif
45 {
46 #ifndef __cplusplus
47  ak_wwise_plugin_base_interface m_baseInterface;
48 #endif
49 
50 #ifdef __cplusplus
51  /// Base host-provided instance type for ak_wwise_plugin_host_object_media_v1.
53 
56  {}
57 #endif
58 
59  /**
60  * \brief Requests to set the specified file as a data input file.
61  *
62  * This will copy the file in the project under the file name specified in in_pszFilePathToImport, and
63  * create or replace a Media Source at the given index.
64  *
65  * \aknote
66  * You must add up indexes sequentially. If you have 0-14 indexes, adding a new one at 40 will create it at 15.
67  * If you want to have empty spaces for indexes, add empty media sources with a nullptr in_pszFilePathToImport
68  * sequentially. Pass <code>(unsigned int)-1</code> as the in_Index to insert at the end of the list.
69  * \endaknote
70  *
71  * \akwarning
72  * You should not put the same file in two different indexes.
73  * \endakwarning
74  *
75  * \param[in] in_this Current instance of this interface.
76  * \param[in] in_pszFilePathToImport (Optional) File path. Can be nullptr if the plug-in generates this file, or
77  * if the file is not yet available.
78  * \param[in] in_Index Media source index. If higher than or equal to the current media source count, will
79  * add a new index.
80  * \param[in] in_bReplace True to replace a file under the same name. False will succeed if the file already exists.
81  * \return true if succeeded.
82  */
85  const AkOSChar * in_pszFilePathToImport,
86  unsigned int in_Index,
87  bool in_bReplace
88  );
89 
90  /**
91  * \brief Requests to remove the specified index file as data input file.
92  *
93  * This will not renumber the supplemental index, it will merely remove the file from that index, if existing.
94  *
95  * \param[in] in_this Current instance of this interface.
96  * \param[in] in_Index Media source index to remove.
97  */
100  unsigned int in_Index
101  );
102 
103  /**
104  * \brief Retrieve the number of media source indexes.
105  *
106  * \param[in] in_this Current instance of this interface.
107  * \return Count of media sources.
108  */
109  unsigned int(*GetMediaSourceCount)(
111  );
112 
113  /**
114  * \brief Retrieve the file name of the source plug-in data at the specified index, as provided in SetMediaSource.
115  *
116  * Used to allow the plug-in to display this information. This is the file name, and doesn't include any path.
117  *
118  * \akwarning
119  * If you do not provide a buffer big enough to write the full string, the function will fail and return
120  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
121  * max path size.
122  * \endakwarning
123  *
124  * \param[in] in_this Current instance of this interface.
125  * \param[out] out_pszFileName Buffer that will contain the file name.
126  * \param[in] in_uiBufferSize Size of the provided string buffer.
127  * \param[in] in_Index Media source index to query.
128  * \return Number of characters written to the buffer. 0 means no file, or failure.
129  */
130  unsigned int(*GetMediaSourceFileName)(
131  const struct ak_wwise_plugin_host_object_media_instance_v1* in_this,
132  AkOSChar * out_pszFileName,
133  unsigned int in_uiBufferSize,
134  unsigned int in_Index
135  );
136 
137  /**
138  * \brief Retrieve the full file path of the source plug-in data at the specified index.
139  *
140  * This is the path name of the data file, as kept in the project directory.
141  *
142  * \akwarning
143  * If you do not provide a buffer big enough to write the full string, the function will fail and return
144  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
145  * max path size.
146  * \endakwarning
147  *
148  * \param[in] in_this Current instance of this interface.
149  * \param[out] out_pszFilePath Buffer that will contain the original file path.
150  * \param[in] in_uiBufferSize Size of the provided string buffer.
151  * \param[in] in_Index Media source index to query.
152  * \return Number of characters written to the buffer. 0 means no file, or failure.
153  */
155  const struct ak_wwise_plugin_host_object_media_instance_v1* in_this,
156  AkOSChar * out_pszFilePath,
157  unsigned int in_uiBufferSize,
158  unsigned int in_Index
159  );
160 
161  /**
162  * \brief Retrieve the full file path of the converted plug-in data at the specified index.
163  *
164  * \akwarning
165  * If you do not provide a buffer big enough to write the full string, the function will fail and return
166  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
167  * max path size.
168  * \endakwarning
169  *
170  * \param[in] in_this Current instance of this interface.
171  * \param[out] out_pszFilePath Buffer that will contain the converted file path.
172  * \param[in] in_uiBufferSize Size of the provided string buffer.
173  * \param[in] in_guidPlatform GUID of the platform to query.
174  * \param[in] in_Index Media source index to query.
175  * \return Number of characters written to the buffer. 0 means no file, or failure.
176  */
178  const struct ak_wwise_plugin_host_object_media_instance_v1* in_this,
179  AkOSChar * out_pszFilePath,
180  unsigned int in_uiBufferSize,
181  const GUID* in_guidPlatform,
182  unsigned int in_Index
183  );
184 
185  /**
186  * \brief Request Wwise to perform any required conversion on the data.
187  *
188  * \sa
189  * - \ref AK::Wwise::Plugin::MediaConverter.
190  *
191  * \param[in] in_this Current instance of this interface.
192  * \param[in] in_Index Media source index to invalidate.
193  */
196  unsigned int in_Index
197  );
198 
199  /**
200  * \brief Obtain the Original directory for the plug-in.
201  *
202  * \akwarning
203  * If you do not provide a buffer big enough to write the full string, the function will fail and return
204  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
205  * max path size.
206  * \endakwarning
207  *
208  * \param[in] in_this Current instance of this interface.
209  * \param[out] out_pszDirectory Buffer that will contain the path.
210  * \param[in] in_uiBufferSize Size of the provided string buffer.
211  * \return Number of characters written to the buffer. 0 means a failure.
212  */
213  unsigned int(*GetOriginalDirectory)(
214  const struct ak_wwise_plugin_host_object_media_instance_v1* in_this,
215  AkOSChar * out_pszDirectory,
216  unsigned int in_uiBufferSize
217  );
218 
219  /**
220  * \brief Obtain the Converted directory for the plug-in and platform.
221  *
222  * \akwarning
223  * If you do not provide a buffer big enough to write the full string, the function will fail and return
224  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
225  * max path size.
226  * \endakwarning
227  *
228  * \param[in] in_this Current instance of this interface.
229  * \param[out] out_pszDirectory Buffer that will contain the path.
230  * \param[in] in_uiBufferSize Size of the provided string buffer.
231  * \param[in] in_guidPlatform GUID of the platform to query.
232  * \return Number of characters written to the buffer. 0 means a failure.
233  */
234  unsigned int(*GetConvertedDirectory)(
235  const struct ak_wwise_plugin_host_object_media_instance_v1* in_this,
236  AkOSChar * out_pszDirectory,
237  unsigned int in_uiBufferSize,
238  const GUID* in_guidPlatform
239  );
240 };
241 
242 
244 #ifdef __cplusplus
246 #endif
247 {
248 #ifndef __cplusplus
249  ak_wwise_plugin_base_interface m_baseInterface;
250 #endif
251 
252 #ifdef __cplusplus
253  /// Base instance type for receiving notifications on related object media's changes.
255 
258  {}
259 #endif
260 
261  /**
262  * \brief This function is called by Wwise when any of the plug-in media changes.
263  *
264  * It is called when plugin media is added, removed or changes. This function is also called during undo or redo operations.
265  *
266  * \sa
267  * - \ref effectplugin_media_managing
268  *
269  * \param[in] in_this Current instance of this interface.
270  */
272 };
273 
274 
275 #define AK_WWISE_PLUGIN_HOST_OBJECT_MEDIA_V1_ID() \
276  AK_WWISE_PLUGIN_BASE_INTERFACE_FROM_ID(AK_WWISE_PLUGIN_INTERFACE_TYPE_HOST_OBJECT_MEDIA, 1)
277 #define AK_WWISE_PLUGIN_HOST_OBJECT_MEDIA_V1_CTOR() \
278 { \
279  .m_baseInterface = AK_WWISE_PLUGIN_HOST_OBJECT_MEDIA_V1_ID() \
280 }
281 
282 #define AK_WWISE_PLUGIN_NOTIFICATIONS_OBJECT_MEDIA_V1_ID() \
283  AK_WWISE_PLUGIN_BASE_INTERFACE_FROM_ID(AK_WWISE_PLUGIN_INTERFACE_TYPE_NOTIFICATIONS_OBJECT_MEDIA, 1)
284 #define AK_WWISE_PLUGIN_NOTIFICATIONS_OBJECT_MEDIA_V1_CTOR(/* ak_wwise_plugin_info* */ in_pluginInfo, /* void* */ in_data) \
285 { \
286  .m_baseInterface = AK_WWISE_PLUGIN_BASE_INTERFACE_CTOR(AK_WWISE_PLUGIN_NOTIFICATIONS_OBJECT_MEDIA_V1_ID(), in_pluginInfo, in_data) \
287 }
288 
289 
290 #ifdef __cplusplus
291 namespace AK::Wwise::Plugin
292 {
293  namespace V1
294  {
296 
297  /// \copydoc ak_wwise_plugin_host_object_media_v1
298  class ObjectMedia : public CBaseInstanceGlue<CHostObjectMedia>
299  {
300  public:
302 
303  /**
304  * \brief The interface type, as requested by this plug-in.
305  */
306  enum : InterfaceTypeValue
307  {
308  /**
309  * \brief The interface type, as requested by this plug-in.
310  */
312  };
313  /**
314  * \brief The interface version, as requested by this plug-in.
315  */
316  enum : InterfaceVersion
317  {
318  /**
319  * \brief The interface version, as requested by this plug-in.
320  */
322  };
323 
324  /**
325  * \brief Requests to set the specified file as a data input file.
326  *
327  * This will copy the file in the project under the file name specified in in_pszFilePathToImport, and
328  * create or replace a Media Source at the given index.
329  *
330  * \aknote
331  * You must add up indexes sequentially. If you have 0-14 indexes, adding a new one at 40 will create it at 15.
332  * If you want to have empty spaces for indexes, add empty media sources with a nullptr in_pszFilePathToImport
333  * sequentially. Pass <code>(unsigned int)-1</code> as the in_Index to insert at the end of the list.
334  * \endaknote
335  *
336  * \akwarning
337  * You should not put the same file in two different indexes.
338  * \endakwarning
339  *
340  * \param[in] in_pszFilePathToImport (Optional) File path. Can be nullptr if the plug-in generates this file, or
341  * if the file is not yet available.
342  * \param[in] in_Index Media source index. If higher than or equal to the current media source count, will
343  * add a new index.
344  * \param[in] in_bReplace True to replace a file under the same name. False will succeed if the file already exists.
345  * \return true if succeeded.
346  */
347  inline bool SetMediaSource(
348  const AkOSChar * in_pszFilePathToImport,
349  unsigned int in_Index,
350  bool in_bReplace
351  )
352  {
353  return MKBOOL(g_cinterface->SetMediaSource(this, in_pszFilePathToImport, in_Index, in_bReplace));
354  }
355 
356  /**
357  * \brief Requests to remove the specified index file as data input file.
358  *
359  * This will not renumber the supplemental index, it will merely remove the file from that index, if existing.
360  *
361  * \param[in] in_Index Media source index to remove.
362  */
363  inline void RemoveMediaSource(
364  unsigned int in_Index
365  )
366  {
367  g_cinterface->RemoveMediaSource(this, in_Index);
368  }
369 
370  /**
371  * \brief Retrieve the number of media source indexes.
372  *
373  * \return Count of media sources.
374  */
375  inline unsigned int GetMediaSourceCount() const
376  {
377  return g_cinterface->GetMediaSourceCount(this);
378  }
379 
380  /**
381  * \brief Retrieve the file name of the source plug-in data at the specified index, as provided in SetMediaSource.
382  *
383  * Used to allow the plug-in to display this information. This is the file name, and doesn't include any path.
384  *
385  * \akwarning
386  * If you do not provide a buffer big enough to write the full string, the function will fail and return
387  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
388  * max path size.
389  * \endakwarning
390  *
391  * \param[out] out_pszFileName Buffer that will contain the file name.
392  * \param[in] in_uiBufferSize Size of the provided string buffer.
393  * \param[in] in_Index Media source index to query.
394  * \return Number of characters written to the buffer. 0 means no file, or failure.
395  */
396  inline unsigned int GetMediaSourceFileName(
397  AkOSChar * out_pszFileName,
398  unsigned int in_uiBufferSize,
399  unsigned int in_Index
400  ) const
401  {
402  return g_cinterface->GetMediaSourceFileName(this, out_pszFileName, in_uiBufferSize, in_Index);
403  }
404 
405  /**
406  * \brief Retrieve the full file path of the source plug-in data at the specified index.
407  *
408  * This is the path name of the data file, as kept in the project directory.
409  *
410  * \akwarning
411  * If you do not provide a buffer big enough to write the full string, the function will fail and return
412  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
413  * max path size.
414  * \endakwarning
415  *
416  * \param[out] out_pszFilePath Buffer that will contain the original file path.
417  * \param[in] in_uiBufferSize Size of the provided string buffer.
418  * \param[in] in_Index Media source index to query.
419  * \return Number of characters written to the buffer. 0 means no file, or failure.
420  */
421  inline unsigned int GetMediaSourceOriginalFilePath(
422  AkOSChar * out_pszFilePath,
423  unsigned int in_uiBufferSize,
424  unsigned int in_Index
425  ) const
426  {
427  return g_cinterface->GetMediaSourceOriginalFilePath(this, out_pszFilePath, in_uiBufferSize, in_Index);
428  }
429 
430  /**
431  * \brief Retrieve the full file path of the converted plug-in data at the specified index.
432  *
433  * \akwarning
434  * If you do not provide a buffer big enough to write the full string, the function will fail and return
435  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
436  * max path size.
437  * \endakwarning
438  *
439  * \param[out] out_pszFilePath Buffer that will contain the converted file path.
440  * \param[in] in_uiBufferSize Size of the provided string buffer.
441  * \param[in] in_guidPlatform GUID of the platform to query.
442  * \param[in] in_Index Media source index to query.
443  * \return Number of characters written to the buffer. 0 means no file, or failure.
444  */
445  inline unsigned int GetMediaSourceConvertedFilePath(
446  AkOSChar * out_pszFilePath,
447  unsigned int in_uiBufferSize,
448  const GUID& in_guidPlatform,
449  unsigned int in_Index
450  ) const
451  {
452  return g_cinterface->GetMediaSourceConvertedFilePath(this, out_pszFilePath, in_uiBufferSize, &in_guidPlatform, in_Index);
453  }
454 
455  /**
456  * \brief Request Wwise to perform any required conversion on the data.
457  *
458  * \sa
459  * - \ref AK::Wwise::Plugin::MediaConverter.
460  *
461  * \param[in] in_Index Media source index to invalidate.
462  */
464  unsigned int in_Index
465  )
466  {
467  return g_cinterface->InvalidateMediaSource(this, in_Index);
468  }
469 
470  /**
471  * \brief Obtain the Original directory for the plug-in.
472  *
473  * \akwarning
474  * If you do not provide a buffer big enough to write the full string, the function will fail and return
475  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
476  * max path size.
477  * \endakwarning
478  *
479  * \param[out] out_pszDirectory Buffer that will contain the path.
480  * \param[in] in_uiBufferSize Size of the provided string buffer.
481  * \return Number of characters written to the buffer. 0 means a failure.
482  */
483  inline unsigned int GetOriginalDirectory(
484  AkOSChar * out_pszDirectory,
485  unsigned int in_uiBufferSize
486  ) const
487  {
488  return g_cinterface->GetOriginalDirectory(this, out_pszDirectory, in_uiBufferSize);
489  }
490 
491  /**
492  * \brief Obtain the Converted directory for the plug-in and platform.
493  *
494  * \akwarning
495  * If you do not provide a buffer big enough to write the full string, the function will fail and return
496  * 0. Make sure to use a buffer big enough to write the entire string, such as your platform's
497  * max path size.
498  * \endakwarning
499  *
500  * \param[out] out_pszDirectory Buffer that will contain the path.
501  * \param[in] in_uiBufferSize Size of the provided string buffer.
502  * \param[in] in_guidPlatform GUID of the platform to query.
503  * \return Number of characters written to the buffer. 0 means a failure.
504  */
505  inline unsigned int GetConvertedDirectory(
506  AkOSChar * out_pszDirectory,
507  unsigned int in_uiBufferSize,
508  const GUID& in_guidPlatform
509  ) const
510  {
511  return g_cinterface->GetConvertedDirectory(this, out_pszDirectory, in_uiBufferSize, &in_guidPlatform);
512  }
513  };
514 
515  namespace Notifications
516  {
518 
519  /// \copydoc ak_wwise_plugin_notifications_object_media_v1
521  {
522  public:
523  /**
524  * \copydoc CObjectMedia_::Instance
525  */
527 
528  /**
529  * \brief The interface type, as provided by this plug-in.
530  */
531  enum : InterfaceTypeValue
532  {
533  /**
534  * \brief The interface type, as provided by this plug-in.
535  */
537  };
538  /**
539  * \brief The interface version, as provided by this plug-in.
540  */
541  enum : InterfaceVersion
542  {
543  /**
544  * \brief The interface version, as provided by this plug-in.
545  */
547  };
548 
549  /**
550  * \brief The C interface, fulfilled by your plug-in.
551  */
552  struct Interface : public CObjectMedia_
553  {
556  {
559  {
560  static_cast<Instance*>(in_this)->NotifyPluginMediaChanged();
561  };
562  }
563  };
564 
566  static Interface g_interface;
567  return &g_interface;
568  }
570  return this;
571  }
573  return this;
574  }
575 
578  {
579  }
580 
581  virtual ~ObjectMedia_() {}
582 
583  /**
584  * \brief This function is called by Wwise when any of the plug-in media changes.
585  *
586  * It is called when plugin media is added, removed or changes. This function is also called during undo or redo operations.
587  *
588  * \sa
589  * - \ref effectplugin_media_managing
590  */
591  virtual void NotifyPluginMediaChanged() {}
592  };
593  } // of namespace Notifications
594 
595  /**
596  * \brief Requests a ObjectMedia interface, provided as m_objectMedia variable.
597  *
598  * Deriving your plug-in class from RequestObjectMedia will automatically request both ObjectMedia and
599  * Notifications::ObjectMedia_ interfaces. From this point, you will be able to derive from the virtual
600  * functions as defined in Notifications::ObjectMedia_, and access the host-provided functions in the
601  * \c m_objectMedia variable.
602  */
604 
605  } // of namespace V1
606 
607  /// Latest version of the C ObjectMedia interface.
609  /// Latest version of the C++ ObjectMedia interface.
611  /// Latest version of the requested C++ ObjectMedia interface.
613 
614  namespace Notifications
615  {
616  /// Latest version of the C ObjectMedia notification interface.
618  /// Latest version of the C++ ObjectMedia notification interface.
620  }
621 
627 } // of namespace AK::Wwise::Plugin
628 
629 #endif
void RemoveMediaSource(unsigned int in_Index)
Requests to remove the specified index file as data input file.
The C interface, fulfilled by your plug-in.
unsigned int GetMediaSourceConvertedFilePath(AkOSChar *out_pszFilePath, unsigned int in_uiBufferSize, const GUID &in_guidPlatform, unsigned int in_Index) const
Retrieve the full file path of the converted plug-in data at the specified index.
@ k_interfaceVersion
The interface version, as provided by this plug-in.
void(* NotifyPluginMediaChanged)(struct ak_wwise_plugin_notifications_object_media_instance_v1 *in_this)
This function is called by Wwise when any of the plug-in media changes.
unsigned int GetConvertedDirectory(AkOSChar *out_pszDirectory, unsigned int in_uiBufferSize, const GUID &in_guidPlatform) const
Obtain the Converted directory for the plug-in and platform.
unsigned int(* GetMediaSourceFileName)(const struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, AkOSChar *out_pszFileName, unsigned int in_uiBufferSize, unsigned int in_Index)
Retrieve the file name of the source plug-in data at the specified index, as provided in SetMediaSour...
Base host-provided instance type for ak_wwise_plugin_host_object_media_v1.
Definition: PluginDef.h:642
static GluedInterface * g_cinterface
The unique instance of the CInterface interface. Defined at nullptr first, overridden by the Host onc...
void(* RemoveMediaSource)(struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, unsigned int in_Index)
Requests to remove the specified index file as data input file.
decltype(BaseInterface::m_version) InterfaceVersion
PluginInfoGenerator: Type for the m_version value in BaseInterface.
void InvalidateMediaSource(unsigned int in_Index)
Request Wwise to perform any required conversion on the data.
unsigned int GetOriginalDirectory(AkOSChar *out_pszDirectory, unsigned int in_uiBufferSize) const
Obtain the Original directory for the plug-in.
bool(* SetMediaSource)(struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, const AkOSChar *in_pszFilePathToImport, unsigned int in_Index, bool in_bReplace)
Requests to set the specified file as a data input file.
char AkOSChar
Generic character string.
Definition: AkTypes.h:60
ak_wwise_plugin_notifications_object_media_instance_v1 Instance
Base instance type for receiving notifications on related object media's changes.
@ k_interfaceVersion
The interface version, as requested by this plug-in.
unsigned int GetMediaSourceCount() const
Retrieve the number of media source indexes.
unsigned int(* GetMediaSourceOriginalFilePath)(const struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, AkOSChar *out_pszFilePath, unsigned int in_uiBufferSize, unsigned int in_Index)
Retrieve the full file path of the source plug-in data at the specified index.
Wwise Authoring Plug-ins - C++ class helper to automatically determine the plug-in interfaces used in...
PluginInfoGenerator: Associates an existing C Interface with a variable that can be used....
CInterfacePtr InterfacePtr
Definition: PluginDef.h:995
unsigned int(* GetOriginalDirectory)(const struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, AkOSChar *out_pszDirectory, unsigned int in_uiBufferSize)
Obtain the Original directory for the plug-in.
unsigned int(* GetConvertedDirectory)(const struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, AkOSChar *out_pszDirectory, unsigned int in_uiBufferSize, const GUID *in_guidPlatform)
Obtain the Converted directory for the plug-in and platform.
bool SetMediaSource(const AkOSChar *in_pszFilePathToImport, unsigned int in_Index, bool in_bReplace)
Requests to set the specified file as a data input file.
RequestedHostInterface< ObjectMedia > RequestObjectMedia
Requests a ObjectMedia interface, provided as m_objectMedia variable.
@ AK_WWISE_PLUGIN_INTERFACE_TYPE_HOST_OBJECT_MEDIA
2021.1 Object Media host service. ak_wwise_plugin_host_object_media_v1
ak_wwise_plugin_notifications_object_media_v1 CObjectMedia_
ak_wwise_plugin_host_object_media_v1 CHostObjectMedia
virtual void NotifyPluginMediaChanged()
This function is called by Wwise when any of the plug-in media changes.
std::underlying_type< InterfaceType >::type InterfaceTypeValue
PluginInfoGenerator: Underlying storage type for the m_interface value in BaseInterface.
AK_WWISE_PLUGIN_SPECIALIZE_INTERFACE_VERSION(AudioPlugin)
Interface description and base class for every Wwise Authoring plug-in interface.
@ k_interfaceType
The interface type, as provided by this plug-in.
unsigned int(* GetMediaSourceConvertedFilePath)(const struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, AkOSChar *out_pszFilePath, unsigned int in_uiBufferSize, const GUID *in_guidPlatform, unsigned int in_Index)
Retrieve the full file path of the converted plug-in data at the specified index.
@ k_interfaceType
The interface type, as requested by this plug-in.
const CObjectMedia_::Instance * GetInstancePointer() const
#define MKBOOL(cond)
Definition: PluginHelpers.h:74
Base instance type for receiving notifications on related object media's changes.
Definition: PluginDef.h:837
unsigned int(* GetMediaSourceCount)(const struct ak_wwise_plugin_host_object_media_instance_v1 *in_this)
Retrieve the number of media source indexes.
void(* InvalidateMediaSource)(struct ak_wwise_plugin_host_object_media_instance_v1 *in_this, unsigned int in_Index)
Request Wwise to perform any required conversion on the data.
#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::ObjectMedia_ ObjectMedia
Latest version of the C++ ObjectMedia notification interface.
unsigned int GetMediaSourceFileName(AkOSChar *out_pszFileName, unsigned int in_uiBufferSize, unsigned int in_Index) const
Retrieve the file name of the source plug-in data at the specified index, as provided in SetMediaSour...
AK_WWISE_PLUGIN_SPECIALIZE_INTERFACE_CLASS(AudioPlugin)
@ AK_WWISE_PLUGIN_INTERFACE_TYPE_NOTIFICATIONS_OBJECT_MEDIA
2021.1 Object Media modification notification. ak_wwise_plugin_notifications_object_media_v1
unsigned int GetMediaSourceOriginalFilePath(AkOSChar *out_pszFilePath, unsigned int in_uiBufferSize, unsigned int in_Index) const
Retrieve the full file path of the source plug-in data at the specified index.

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