IAudioCapture.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 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 
 All Classes Namespaces Functions Variables Enumerations

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