Wwise SDK 2015.1.9
_audio_plugin_8h_source
Version
menu_open
link
include/AK/Wwise/AudioPlugin.h
Go to the documentation of this file.00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00009 00010 #ifndef _AK_WWISE_AUDIOPLUGIN_H 00011 #define _AK_WWISE_AUDIOPLUGIN_H 00012 00013 #include "Undo.h" 00014 00015 #include <AK/Wwise/Utilities.h> 00016 #include <AK/SoundEngine/Common/AkSoundEngine.h> 00017 #include <AK/Wwise/PlatformID.h> 00018 00019 // Audiokinetic namespace 00020 namespace AK 00021 { 00022 class IXmlTextReader; 00023 class IXmlTextWriter; 00024 00025 // Audiokinetic Wwise namespace 00026 namespace Wwise 00027 { 00028 class IPluginMediaConverter 00029 { 00030 public: 00035 virtual ConversionResult ConvertFile( 00036 const GUID & in_guidPlatform, 00037 const BasePlatformID & in_basePlatform, 00038 LPCWSTR in_szSourceFile, 00039 LPCWSTR in_szDestFile, 00040 AkUInt32 in_uSampleRate, 00041 AkUInt32 in_uBlockLength, 00042 AK::Wwise::IProgress* in_pProgress, 00043 IWriteString* io_pError 00044 ) = 0; 00045 00046 virtual ULONG GetCurrentConversionSettingsHash( 00047 const GUID & in_guidPlatform, 00048 AkUInt32 in_uSampleRate = 0, 00049 AkUInt32 in_uBlockLength = 0 00050 ) = 0; 00051 }; 00052 00062 class IPluginPropertySet 00063 { 00064 public: 00069 virtual bool GetValue( 00070 const GUID & in_guidPlatform, 00071 LPCWSTR in_pszPropertyName, 00072 VARIANT & out_varProperty 00073 ) = 0; 00074 00077 virtual bool SetValue( 00078 const GUID & in_guidPlatform, 00079 LPCWSTR in_pszPropertyName, 00080 const VARIANT & in_varProperty 00081 ) = 0; 00082 00085 virtual bool PropertyHasRTPC( 00086 LPCWSTR in_pszPropertyName 00087 ) = 0; 00088 00094 virtual GUID GetCurrentPlatform() = 0; 00095 00098 virtual BasePlatformID GetCurrentBasePlatform() = 0; 00099 00101 virtual BasePlatformID GetDefaultNativeAuthoringPlaybackPlatform() = 0; 00102 00104 virtual GUID GetAuthoringPlaybackPlatform() = 0; 00105 00111 virtual void NotifyInternalDataChanged(AkPluginParamID in_idData) = 0; 00112 00116 virtual bool CanLogUndos() = 0; 00117 00120 virtual AK::Wwise::IUndoManager * GetUndoManager() = 0; 00121 00123 virtual void GetAssetLicenseStatus( 00124 const GUID & in_guidPlatform, 00125 AkUInt32 in_uAssetID, 00126 AK::Wwise::LicenseType & out_eType, 00127 AK::Wwise::LicenseStatus & out_eStatus, 00128 UINT32 & out_uDaysToExpiry 00129 ) = 0; 00130 }; 00131 00141 class IPluginObjectStore 00142 { 00143 public: 00147 virtual void InsertObject( 00148 LPCWSTR in_pszListName, 00149 unsigned int in_uiIndex, 00150 IPluginPropertySet* in_pPropertySet 00151 ) = 0; 00152 00156 virtual bool RemoveObject( 00157 IPluginPropertySet* in_pPropertySet 00158 ) = 0; 00159 00162 virtual IPluginPropertySet* GetObject( 00163 LPCWSTR in_pszListName, 00164 unsigned int in_uiIndex 00165 ) const = 0; 00166 00169 virtual unsigned int GetObjectCount( 00170 LPCWSTR in_pszListName 00171 ) const = 0; 00172 00176 virtual IPluginPropertySet* CreateObject( 00177 LPCWSTR in_pszType 00178 ) = 0; 00179 00182 virtual void DeleteObject( 00183 IPluginPropertySet* in_pPropertySet 00184 ) = 0; 00185 00188 virtual unsigned int GetListCount() const = 0; 00189 00193 virtual unsigned int GetListName( 00194 unsigned int in_uiListIndex, 00195 LPWSTR out_pszListName, 00196 unsigned int in_uiBufferSize 00197 ) const = 0; 00198 }; 00199 00205 class IPluginObjectMedia 00206 { 00207 public: 00208 00210 virtual bool SetMediaSource( 00211 LPCWSTR in_pszFilePathToImport, 00212 unsigned int in_Index = 0, 00213 bool in_bReplace = false 00214 ) = 0; 00215 00217 virtual void RemoveMediaSource( 00218 unsigned int in_Index = 0 00219 ) = 0; 00220 00223 virtual unsigned int GetMediaSourceCount() const = 0; 00224 00229 virtual unsigned int GetMediaSourceFileName( 00230 LPWSTR out_pszFileName, 00231 unsigned int in_uiBufferSize, 00232 unsigned int in_Index = 0 00233 ) const = 0; 00234 00237 virtual unsigned int GetMediaSourceOriginalFilePath( 00238 LPWSTR out_pszFileName, 00239 unsigned int in_uiBufferSize, 00240 unsigned int in_Index = 0 00241 ) const = 0; 00242 00245 virtual unsigned int GetMediaSourceConvertedFilePath( 00246 LPWSTR out_pszFileName, 00247 unsigned int in_uiBufferSize, 00248 const GUID & in_guidPlatform, 00249 unsigned int in_Index = 0 00250 ) const = 0; 00251 00253 virtual void InvalidateMediaSource( unsigned int in_Index = 0 ) = 0; 00254 00257 virtual unsigned int GetOriginalDirectory( 00258 LPWSTR out_pszDirectory, 00259 unsigned int in_uiBufferSize 00260 ) const = 0; 00261 00264 virtual unsigned int GetConvertedDirectory( 00265 LPWSTR out_pszDirectory, 00266 unsigned int in_uiBufferSize, 00267 const GUID & in_guidPlatform 00268 ) const = 0; 00269 }; 00270 00276 class IAudioPlugin 00277 : public IPluginBase 00278 { 00279 public: 00285 enum eDialog 00286 { 00287 SettingsDialog, 00288 00289 00290 ContentsEditorDialog 00291 00292 }; 00293 00295 enum NotifyInnerObjectOperation 00296 { 00297 InnerObjectAdded, 00298 InnerObjectRemoved 00299 }; 00300 00306 virtual void SetPluginPropertySet( 00307 IPluginPropertySet * in_pPSet 00308 ) = 0; 00309 00316 virtual void SetPluginObjectStore( 00317 IPluginObjectStore * in_pObjectStore 00318 ) = 0; 00319 00330 virtual void SetPluginObjectMedia( 00331 IPluginObjectMedia * in_pObjectMedia 00332 ) = 0; 00333 00337 virtual bool IsPlayable() const = 0; 00338 00343 virtual void InitToDefault() = 0; 00344 00348 virtual void Delete() = 0; 00349 00352 virtual bool Load( IXmlTextReader* in_pReader ) = 0; 00353 00356 virtual bool Save( IXmlTextWriter* in_pWriter ) = 0; 00357 00362 virtual bool CopyInto( 00363 IAudioPlugin* io_pWObject // The object that will receive the custom data of this object. 00364 ) const = 0; 00365 00370 virtual void NotifyCurrentPlatformChanged( 00371 const GUID & in_guidCurrentPlatform 00372 ) = 0; 00373 00380 virtual void NotifyPropertyChanged( 00381 const GUID & in_guidPlatform, 00382 LPCWSTR in_pszPropertyName 00383 ) = 0; 00384 00392 virtual void NotifyInnerObjectPropertyChanged( 00393 IPluginPropertySet* in_pPSet, 00394 const GUID & in_guidPlatform, 00395 LPCWSTR in_pszPropertyName 00396 ) = 0; 00397 00404 virtual void NotifyInnerObjectAddedRemoved( 00405 IPluginPropertySet* in_pPSet, 00406 unsigned int in_uiIndex, 00407 NotifyInnerObjectOperation in_eOperation 00408 ) = 0; 00409 00418 virtual void NotifyPluginMediaChanged() = 0; 00419 00428 virtual bool GetBankParameters( 00429 const GUID & in_guidPlatform, 00430 IWriteData* in_pDataWriter 00431 ) const = 0; 00432 00443 virtual bool GetPluginData( 00444 const GUID & in_guidPlatform, 00445 AkPluginParamID in_idParam, 00446 IWriteData* in_pDataWriter 00447 ) const = 0; 00448 00454 virtual HINSTANCE GetResourceHandle() const = 0; 00455 00462 virtual bool GetDialog( 00463 eDialog in_eDialog, 00464 UINT & out_uiDialogID, 00465 PopulateTableItem *& out_pTable 00466 ) const = 0; 00467 00473 virtual bool WindowProc( 00474 eDialog in_eDialog, 00475 HWND in_hWnd, 00476 UINT in_message, 00477 WPARAM in_wParam, 00478 LPARAM in_lParam, 00479 LRESULT & out_lResult 00480 ) = 0; 00481 00491 virtual bool DisplayNameForProp( 00492 LPCWSTR in_pszPropertyName, 00493 LPWSTR out_pszDisplayName, 00494 UINT in_unCharCount 00495 ) const = 0; 00496 00512 virtual bool DisplayNamesForPropValues( 00513 LPCWSTR in_pszPropertyName, 00514 LPWSTR out_pszValuesName, 00515 UINT in_unCharCount 00516 ) const = 0; 00517 00523 virtual bool Help( 00524 HWND in_hWnd, 00525 eDialog in_eDialog, 00526 LPCWSTR in_szLanguageCode 00527 ) const = 0; 00528 00532 virtual void NotifyMonitorData( 00533 void * in_pData, 00534 unsigned int in_uDataSize, 00535 bool in_bNeedsByteSwap 00536 ) = 0; 00537 00540 virtual IPluginMediaConverter* GetPluginMediaConverterInterface() = 0; 00541 00546 virtual bool GetLicenseStatus( 00547 const GUID & in_guidPlatform, 00548 AK::Wwise::Severity& out_eSeverity, 00549 LPWSTR out_pszMessage, 00550 unsigned int in_uiBufferSize 00551 ) = 0; 00552 }; 00553 00555 class DefaultAudioPluginImplementation : public IAudioPlugin 00556 { 00557 public: 00558 virtual void SetPluginPropertySet( IPluginPropertySet * in_pPSet ){} 00559 virtual void SetPluginObjectStore( IPluginObjectStore * in_pObjectStore ){} 00560 virtual void SetPluginObjectMedia( IPluginObjectMedia * in_pObjectMedia ){} 00561 virtual bool IsPlayable() const { return true; } 00562 virtual void InitToDefault() {} 00563 virtual void Delete() {} 00564 virtual bool Load( IXmlTextReader* in_pReader ) { return false; } 00565 virtual bool Save( IXmlTextWriter* in_pWriter ) { return false; } 00566 virtual bool CopyInto( IAudioPlugin* io_pWObject ) const { return true; } 00567 virtual void NotifyCurrentPlatformChanged( const GUID & in_guidCurrentPlatform ) {} 00568 virtual void NotifyPropertyChanged( const GUID & in_guidPlatform, LPCWSTR in_pszPropertyName ) {} 00569 virtual void NotifyInnerObjectPropertyChanged( IPluginPropertySet* in_pPSet, const GUID & in_guidPlatform, LPCWSTR in_pszPropertyName ) {} 00570 virtual void NotifyInnerObjectAddedRemoved( IPluginPropertySet* in_pPSet, unsigned int in_uiIndex, NotifyInnerObjectOperation in_eOperation ) {} 00571 virtual void NotifyPluginMediaChanged() {} 00572 virtual bool GetBankParameters( const GUID & in_guidPlatform, IWriteData* in_pDataWriter ) const { return false; } 00573 virtual bool GetPluginData( const GUID & in_guidPlatform, AkPluginParamID in_idParam, IWriteData* in_pDataWriter ) const { return false; } 00574 virtual bool WindowProc( eDialog in_eDialog, HWND in_hWnd, UINT in_message, WPARAM in_wParam, LPARAM in_lParam, LRESULT & out_lResult ){ return false; } 00575 virtual bool DisplayNameForProp( LPCWSTR in_pszPropertyName, LPWSTR out_pszDisplayName, UINT in_unCharCount ) const { return false; } 00576 virtual bool DisplayNamesForPropValues( LPCWSTR in_pszPropertyName, LPWSTR out_pszValuesName, UINT in_unCharCount ) const { return false; } 00577 virtual bool Help( HWND in_hWnd, eDialog in_eDialog, LPCWSTR in_szLanguageCode ) const { return false; } 00578 virtual void NotifyMonitorData( void * in_pData, unsigned int in_uDataSize, bool in_bNeedsByteSwap ){} 00579 virtual IPluginMediaConverter* GetPluginMediaConverterInterface() { return NULL; } 00580 virtual bool GetLicenseStatus( const GUID &, AK::Wwise::Severity&, LPWSTR, unsigned int in_uiBufferSize ){ return true; } 00581 }; 00582 } 00583 } 00584 00585 00588 #define WM_AK_PRIVATE_SHOW_HELP_TOPIC 0x4981 00589 00590 #endif // _AK_WWISE_AUDIOPLUGIN_H
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