Table des matières

include/AK/SoundEngine/Platforms/Windows/AkWinSoundEngine.h

Go to the documentation of this file.
00001 
00002 //
00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved
00004 //
00006 
00007 // AkWinSoundEngine.h
00008 
00011 
00012 #ifndef _AK_WIN_SOUND_ENGINE_H_
00013 #define _AK_WIN_SOUND_ENGINE_H_
00014 
00015 #include <AK/SoundEngine/Common/AkTypes.h>
00016 #include <AK/Tools/Common/AkPlatformFuncs.h>
00017 
00020 enum AkSoundQuality
00021 {
00022     AkSoundQuality_High,    
00023     AkSoundQuality_Low,     
00024 };
00025 
00030 enum AkAudioAPI
00031 {
00032     AkAPI_XAudio2 = 1 << 0,                             
00033     AkAPI_DirectSound = 1 << 1,                         
00034     AkAPI_Wasapi = 1 << 2,                              
00035     AkAPI_Default = AkAPI_Wasapi | AkAPI_XAudio2 | AkAPI_DirectSound,   
00036     AkAPI_Dummy = 1 << 3,                               
00037 };
00038 
00040 enum AkAudioOutputType
00041 {
00042     AkOutput_Dummy = 1 << 3,        
00043     AkOutput_MergeToMain = 1 << 4,  
00044     AkOutput_Main = 1 << 5,         
00045     AkOutput_Secondary = 1 << 6,    
00046     AkOutput_NumOutputs = 1 << 7,   
00047 };
00048 
00053 
00054 struct IXAudio2;
00055 struct AkPlatformInitSettings
00056 {
00057     // Direct sound.
00058     HWND                hWnd;                   
00059 
00060 
00061 
00062 
00063                                     
00064 
00065     // Threading model.
00066     AkThreadProperties  threadLEngine;          
00067     AkThreadProperties  threadBankManager;      
00068     AkThreadProperties  threadMonitor;          
00069 
00070     // Memory.
00071     AkUInt32            uLEngineDefaultPoolSize;
00072     AkReal32            fLEngineDefaultPoolRatioThreshold;  
00073 
00074     // Voices.
00075     AkUInt16            uNumRefillsInVoice;     
00076     AkSoundQuality      eAudioQuality;          
00077     
00078     bool                bGlobalFocus;           
00079 
00080 
00081     IXAudio2*           pXAudio2;               
00082 
00083     AkUInt32            idAudioDevice;          
00084 
00085 };
00086 
00087 struct IDirectSound8;
00088 struct IXAudio2;
00089 struct IMMDevice;
00090 struct IUnknown;
00091 
00092 namespace AK
00093 {
00097     AK_EXTERNAPIFUNC( IUnknown *, GetWwiseXAudio2Interface)();
00098 
00101     AK_EXTERNAPIFUNC( IDirectSound8 *, GetDirectSoundInstance )();
00102 
00106     AK_EXTERNAPIFUNC( AkUInt32, GetDeviceID ) (IMMDevice* in_pDevice);
00107 
00113     AK_EXTERNAPIFUNC( AkUInt32, GetDeviceIDFromName )(wchar_t* in_szToken);
00114 
00120     AK_EXTERNAPIFUNC(const wchar_t*, GetWindowsDeviceName) (
00121         AkInt32 index,          
00122         AkUInt32 &out_uDeviceID 
00123         );
00124 };
00125 
00126 #endif //_AK_WIN_SOUND_ENGINE_H_