00001 00002 // 00003 // Copyright (c) 2006 Audiokinetic Inc. / All Rights Reserved 00004 // 00006 00007 // AkiOSSoundEngine.h 00008 00011 00012 #ifndef _AK_IOS_SOUND_ENGINE_H_ 00013 #define _AK_IOS_SOUND_ENGINE_H_ 00014 00015 #include <AK/SoundEngine/Common/AkTypes.h> 00016 #include <AK/Tools/Common/AkPlatformFuncs.h> 00017 00018 #include <AudioToolbox/AudioToolbox.h> 00019 00030 enum AkAudioSessionCategory 00031 { 00032 AkAudioSessionCategoryAmbient, 00033 AkAudioSessionCategorySoloAmbient, 00034 AkAudioSessionCategoryPlayAndRecord 00035 }; 00036 00043 enum AkAudioSessionCategoryOptions 00044 { 00045 AkAudioSessionCategoryOptionMixWithOthers = 1, 00046 AkAudioSessionCategoryOptionDuckOthers = 2, 00047 AkAudioSessionCategoryOptionAllowBluetooth = 4, 00048 AkAudioSessionCategoryOptionDefaultToSpeaker = 8 00049 }; 00050 00056 enum AkAudioSessionMode 00057 { 00058 AkAudioSessionModeDefault, 00059 AkAudioSessionModeVoiceChat, 00060 AkAudioSessionModeGameChat, 00061 AkAudioSessionModeVideoRecording, 00062 AkAudioSessionModeMeasurement, 00063 AkAudioSessionModeMoviePlayback, 00064 AkAudioSessionModeVideoChat 00065 }; 00066 00072 enum AkAudioSessionSetActiveOptions 00073 { 00074 AkAudioSessionSetActiveOptionNotifyOthersOnDeactivation = 1 00075 }; 00076 00085 struct AkAudioSessionProperties 00086 { 00087 AkAudioSessionCategory eCategory; 00088 AkAudioSessionCategoryOptions eCategoryOptions; 00089 AkAudioSessionMode eMode; 00090 AkAudioSessionSetActiveOptions eSetActivateOptions; 00091 }; 00092 00093 00097 enum AkAudioAPI 00098 { 00099 AkAPI_Default = 1 << 0, 00100 AkAPI_Dummy = 1 << 2, 00101 }; 00102 00104 enum AkAudioOutputType 00105 { 00106 AkOutput_Dummy = 1 << 2, 00107 AkOutput_MergeToMain = 1 << 3, 00108 AkOutput_Main = 1 << 4, 00109 AkOutput_NumOutputs = 1 << 5, 00110 }; 00111 00112 namespace AK 00113 { 00114 namespace SoundEngine 00115 { 00116 namespace iOS 00117 { 00124 typedef AKRESULT ( * AudioInputCallbackFunc )( 00125 AudioBufferList* io_Data, 00126 00127 00128 void* in_pCookie 00129 ); 00130 00148 typedef AKRESULT ( * AudioInterruptionCallbackFunc )( 00149 bool in_bEnterInterruption, 00150 00151 00152 void* in_pCookie 00153 ); 00154 } 00155 } 00156 } 00157 00162 struct AkAudioCallbacks 00163 { 00164 AK::SoundEngine::iOS::AudioInputCallbackFunc inputCallback; 00165 void* inputCallbackCookie; 00166 AK::SoundEngine::iOS::AudioInterruptionCallbackFunc interruptionCallback; 00167 void* interruptionCallbackCookie; 00168 }; 00169 00175 struct AkPlatformInitSettings 00176 { 00177 // Threading model. 00178 AkThreadProperties threadLEngine; 00179 AkThreadProperties threadBankManager; 00180 AkThreadProperties threadMonitor; 00181 00182 // Memory. 00183 AkReal32 fLEngineDefaultPoolRatioThreshold; 00184 00185 AkUInt32 uLEngineDefaultPoolSize; 00186 AkUInt32 uSampleRate; 00187 // Voices. 00188 AkUInt16 uNumRefillsInVoice; 00189 AkAudioSessionProperties audioSession; 00190 AkAudioCallbacks audioCallbacks; 00191 }; 00192 00193 00194 #endif //_AK_IOS_SOUND_ENGINE_H_
Questions? Problems? Need more info? Contact us, and we can help!
Visit our Support pageRegister your project and we'll help you get started with no strings attached!
Get started with Wwise