00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00009 00010 #ifndef _AK_WWISE_UTILITIES_H 00011 #define _AK_WWISE_UTILITIES_H 00012 00013 #include <AK/SoundEngine/Common/AkTypes.h> 00014 00016 // Populate Table macros 00018 00029 #define AK_BEGIN_POPULATE_TABLE(theName) AK::Wwise::PopulateTableItem theName[] = { 00030 00043 #define AK_POP_ITEM(theID, theProp) {theID, theProp }, 00044 00051 #define AK_END_POPULATE_TABLE() AK_POP_ITEM(0, NULL) }; 00052 00054 // Utilities 00056 00057 // Audiokinetic namespace 00058 namespace AK 00059 { 00060 // Audiokinetic Wwise namespace 00061 namespace Wwise 00062 { 00064 enum AudioFileChannel 00065 { 00066 Channel_mono = 0, 00067 Channel_stereo = 1, 00068 Channel_mono_drop = 2, 00069 Channel_stereo_drop = 3, 00070 Channel_as_input = 4, 00071 Channel_mono_drop_right = 5, 00072 Channel_stereo_balance = 6, 00073 }; 00074 00076 enum LicenseType 00077 { 00078 LicenseType_Trial = 1, 00079 LicenseType_Purchased, 00080 LicenseType_Academic 00081 }; 00082 00084 enum LicenseStatus 00085 { 00086 LicenseStatus_Unlicensed, 00087 LicenseStatus_Expired, 00088 LicenseStatus_Valid 00089 }; 00090 00092 enum Severity 00093 { 00094 Severity_Success = -1, 00095 Severity_Message, 00096 Severity_Warning, 00097 Severity_Error, 00098 Severity_FatalError, 00099 00100 }; 00101 00104 class IWriteString 00105 { 00106 public: 00107 virtual void WriteString( LPCWSTR in_szString, 00108 int in_iStringLength ) = 0; 00109 }; 00110 00112 class IReadOnlyProperties 00113 { 00114 public: 00115 virtual bool GetValue( LPCWSTR in_szPropertyName, 00116 VARIANT& out_rValue ) const = 0; 00117 }; 00118 00119 class IReadWriteProperties : public IReadOnlyProperties 00120 { 00121 public: 00122 virtual bool SetValue( LPCWSTR in_szPropertyName, 00123 const VARIANT& in_rValue ) = 0; 00124 }; 00125 00126 class IProgress 00127 { 00128 public: 00132 virtual void SetCurrentOperationName( LPCWSTR in_szOperationName ) = 0; 00133 00135 virtual void SetRange( DWORD in_dwMinValue, DWORD in_dwMaxValue ) = 0; 00136 00138 virtual void NotifyProgress( DWORD in_dwProgress ) = 0; 00139 00141 virtual bool IsCancelled() = 0; 00142 00145 virtual void ErrorMessage( const CString& in_rErrorText, Severity in_eSeverity = Severity_Warning ) = 0; 00146 }; 00147 00149 class IDoubleProgress : public IProgress 00150 { 00151 public: 00155 virtual void SetSecondOperationName( LPCWSTR in_szOperationName ) = 0; 00156 00159 virtual void SetSecondRange( DWORD in_dwMinValue, DWORD in_dwMaxValue ) = 0; 00160 00162 virtual void NotifySecondProgress( DWORD in_dwProgress ) = 0; 00163 }; 00164 00173 struct PopulateTableItem 00174 { 00175 UINT uiID; 00176 LPCWSTR pszProp; 00177 }; 00178 00183 class IPluginBase 00184 { 00185 public: 00191 virtual void Destroy() = 0; 00192 }; 00193 00195 enum ConversionResult 00196 { 00197 ConversionSuccess = 0, 00198 ConversionWarning = 1, 00199 ConversionFailed = 2, 00200 }; 00201 00212 class IWriteData 00213 { 00214 public: 00219 virtual bool WriteData( 00220 LPCVOID in_pData, 00221 UINT32 in_cBytes, 00222 UINT32 & out_cWritten 00223 ) = 0; 00224 00240 virtual bool WritePascalString( 00241 LPCWSTR in_szString, 00242 UINT32 in_uiStringLength 00243 ) = 0; 00244 00255 virtual bool WriteUtf16String( 00256 LPCWSTR in_szString 00257 ) = 0; 00258 00261 virtual bool WriteUtf8String( 00262 const char * in_szString 00263 ) = 0; 00264 00267 virtual bool WriteBool( 00268 bool in_bBool 00269 ) = 0; 00270 00273 virtual bool WriteByte( 00274 BYTE in_bByte 00275 ) = 0; 00276 00279 virtual bool WriteInt16( 00280 UINT16 in_uiInt16 00281 ) = 0; 00282 00285 virtual bool WriteInt32( 00286 UINT32 in_uiInt32 00287 ) = 0; 00288 00291 virtual bool WriteInt64( 00292 UINT64 in_uiInt64 00293 ) = 0; 00294 00297 virtual bool WriteReal32( 00298 float in_fReal32 00299 ) = 0; 00300 00303 virtual bool WriteReal64( 00304 double in_dblReal64 00305 ) = 0; 00306 }; 00307 } 00308 } 00309 00310 #endif // _WWISE_UTILITIES_H
프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.
Wwise를 시작해 보세요