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 IAUDIOCAPTURE_H 00006 #define IAUDIOCAPTURE_H 00007 00008 #include "EAudioFormats.h" 00009 #include "cAudioDefines.h" 00010 #include "ICaptureEventHandler.h" 00011 00012 namespace cAudio 00013 { 00015 class IAudioCapture 00016 { 00017 public: 00018 IAudioCapture() { } 00019 virtual ~IAudioCapture() { } 00020 00022 00029 virtual bool initialize(const char* deviceName = 0x0, unsigned int frequency = 22050, AudioFormats format = EAF_16BIT_MONO, unsigned int internalBufferSize = 8192) = 0; 00031 virtual bool isSupported() = 0; 00033 virtual bool isReady() = 0; 00035 00036 virtual void updateCaptureBuffer(bool force = false) = 0; 00038 virtual void shutdown() = 0; 00039 00041 00043 virtual const char* getAvailableDeviceName(unsigned int index) = 0; 00045 00046 virtual unsigned int getAvailableDeviceCount() = 0; 00048 00049 virtual const char* getDefaultDeviceName() = 0; 00050 00052 virtual const char* getDeviceName() = 0; 00054 virtual unsigned int getFrequency() = 0; 00056 virtual AudioFormats getFormat() = 0; 00058 00059 virtual unsigned int getInternalBufferSize() = 0; 00061 00062 virtual unsigned int getSampleSize() = 0; 00063 00065 00068 virtual bool setDevice(const char* deviceName) = 0; 00070 00073 virtual bool setFrequency(unsigned int frequency) = 0; 00075 00078 virtual bool setFormat(AudioFormats format) = 0; 00080 00083 virtual bool setInternalBufferSize(unsigned int internalBufferSize) = 0; 00084 00086 00087 virtual bool beginCapture() = 0; 00089 virtual void stopCapture() = 0; 00091 00097 virtual unsigned int getCapturedAudio(void* outputBuffer, unsigned int outputBufferSize) = 0; 00098 00100 virtual unsigned int getCurrentCapturedAudioSize() = 0; 00101 00103 00104 virtual void registerEventHandler(ICaptureEventHandler* handler) = 0; 00106 00107 virtual void unRegisterEventHandler(ICaptureEventHandler* handler) = 0; 00109 virtual void unRegisterAllEventHandlers() = 0; 00110 00111 }; 00112 00114 00119 CAUDIO_API IAudioCapture* createAudioCapture(bool initializeDefault = true); 00120 00122 00125 CAUDIO_API void destroyAudioCapture(IAudioCapture* capture); 00126 00128 00132 CAUDIO_API bool isAudioCaptureThreadRunning(); 00133 }; 00134 00135 #endif
1.6.2