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