目次

include/AK/SoundEngine/Platforms/iOS/AkiOSSoundEngine.h

説明を見る。
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_