IAudioManager.h

00001 // Copyright (c) 2008-2010 Raynaldo (Wildicv) Rivera, Joshua (Dark_Kilauea) Jones
00002 // This file is part of the "cAudio Engine"
00003 // For conditions of distribution and use, see copyright notice in cAudio.h
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 
 All Classes Namespaces Functions Variables Enumerations

Generated on Sat Feb 20 22:55:08 2010 for cAudio by  doxygen 1.6.2