IAudioManager.h
00001
00002
00003
00004
00005 #ifndef IAUDIOMANAGER_H
00006 #define IAUDIOMANAGER_H
00007
00008 #include "IListener.h"
00009 #include "cAudioDefines.h"
00010 #include "EAudioFormats.h"
00011 #include "IAudioEffects.h"
00012 #include "IDataSourceFactory.h"
00013 #include "IManagerEventHandler.h"
00014 #include <string>
00015
00016 namespace cAudio
00017 {
00018 class IAudioSource;
00019 class IAudioDecoderFactory;
00020
00022 class IAudioManager
00023 {
00024 public:
00025 IAudioManager() { }
00026 virtual ~IAudioManager() { }
00027
00029
00034 virtual bool initialize(const char* deviceName = 0x0, int outputFrequency = -1, int eaxEffectSlots = 4) = 0;
00035
00037 virtual void shutDown() = 0;
00038
00040 virtual void update() = 0;
00041
00043
00046 virtual IAudioSource* getSoundByName(const char* name) = 0;
00047
00049 virtual void releaseAllSources() = 0;
00050
00052
00053 virtual void release(IAudioSource* source) = 0;
00054
00056
00058 virtual const char* getAvailableDeviceName(unsigned int index) = 0;
00059
00061
00062 virtual unsigned int getAvailableDeviceCount() = 0;
00063
00065
00066 virtual const char* getDefaultDeviceName() = 0;
00067
00069
00075 virtual IAudioSource* create(const char* name, const char* filename, bool stream = false) = 0;
00076
00078
00085 virtual IAudioSource* createFromMemory(const char* name, const char* data, size_t length, const char* extension) = 0;
00086
00088
00096 virtual IAudioSource* createFromRaw(const char* name, const char* data, size_t length, unsigned int frequency, AudioFormats format) = 0;
00097
00099
00103 virtual bool registerAudioDecoder(IAudioDecoderFactory* factory, const char* extension) = 0;
00104
00106
00108 virtual void unRegisterAudioDecoder(const char* extension) = 0;
00109
00111
00114 virtual bool isAudioDecoderRegistered(const char* extension) = 0;
00115
00117
00120 virtual IAudioDecoderFactory* getAudioDecoderFactory(const char* extension) = 0;
00121
00123
00124 virtual void unRegisterAllAudioDecoders() = 0;
00125
00127
00132 virtual bool registerDataSource(IDataSourceFactory* factory, const char* name, int priority) = 0;
00133
00135
00137 virtual void unRegisterDataSource(const char* name) = 0;
00138
00140
00143 virtual bool isDataSourceRegistered(const char* name) = 0;
00144
00146
00149 virtual IDataSourceFactory* getDataSourceFactory(const char* name) = 0;
00150
00152
00153 virtual void unRegisterAllDataSources() = 0;
00154
00156
00158 virtual void registerEventHandler(IManagerEventHandler* handler) = 0;
00159
00161
00163 virtual void unRegisterEventHandler(IManagerEventHandler* handler) = 0;
00164
00166
00167 virtual void unRegisterAllEventHandlers() = 0;
00168
00170 virtual IListener* getListener() = 0;
00171
00172 #ifdef CAUDIO_EFX_ENABLED
00174 virtual IAudioEffects* getEffects() = 0;
00175 #endif
00176
00177 protected:
00178 private:
00179 };
00180
00182
00187 CAUDIO_API IAudioManager* createAudioManager(bool initializeDefault = true);
00188
00190
00193 CAUDIO_API void destroyAudioManager(IAudioManager* manager);
00194
00196
00200 CAUDIO_API bool isAudioManagerThreadRunning();
00201 }
00202 #endif