cAudio  2.3.0
3d Audio Engine
 All Classes Namespaces Functions Variables Enumerations Pages
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cAudio::cAudioCapture Class Reference
Inheritance diagram for cAudio::cAudioCapture:
Inheritance graph
[legend]
Collaboration diagram for cAudio::cAudioCapture:
Collaboration graph
[legend]

Public Types

enum  Events {
  ON_INIT, ON_UPDATE, ON_RELEASE, ON_BEGINCAPTURE,
  ON_ENDCAPTURE, ON_USERREQUESTEDBUFFER
}
 

Public Member Functions

virtual bool initialize (const char *deviceName=0x0, unsigned int frequency=22050, AudioFormats format=EAF_16BIT_MONO, unsigned int internalBufferSize=8192)
 Initializes the capture device to the selected settings. More...
 
virtual bool isReady ()
 Returns true if the capture device is ready to be used. False may indicate an error with the current settings.
 
virtual void updateCaptureBuffer (bool force=false)
 Grabs samples from the OpenAL buffer into the capture buffer if the OpenAL buffer has reached half full. Should be run once every audio frame, unless threading is enabled. More...
 
virtual void shutdown ()
 Shuts down the capture device, clearing the internal buffer and setting the audio capture into an uninitialized state. You must call initialize() again in order to reuse this object.
 
virtual bool isUpdateThreadRunning ()
 Returns if the thread used to update all Audio Capture Objects is running. More...
 
virtual const char * getDeviceName ()
 Returns the name of the audio device being used to capture audio.
 
virtual unsigned int getFrequency ()
 Returns the frequency that the captured audio will be at.
 
virtual AudioFormats getFormat ()
 Returns the format of the captured audio.
 
virtual unsigned int getInternalBufferSize ()
 Returns the internal OpenAL buffer size in bytes. More...
 
virtual unsigned int getSampleSize ()
 Returns the size of a "sample" of audio data. Useful for making sure you grab audio data at sample boundaries. More...
 
virtual bool setDevice (const char *deviceName)
 Sets the audio device . Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer. More...
 
virtual bool setFrequency (unsigned int frequency)
 Sets the frequency that the captured audio will be at. Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer. More...
 
virtual bool setFormat (AudioFormats format)
 Sets the format that the captured audio will be at. Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer. More...
 
virtual bool setInternalBufferSize (unsigned int internalBufferSize)
 Sets the internal buffer size that OpenAL will use to store captured audio between calls to getCapturedAudio() in bytes. Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer. More...
 
virtual bool beginCapture ()
 Starts capturing audio data to an internal buffer. Will clear any old data in the buffer. More...
 
virtual void stopCapture ()
 Stops capturing audio data to an internal buffer.
 
virtual unsigned int getCapturedAudio (void *outputBuffer, unsigned int outputBufferSize)
 Allows access to the audio data in the internal capture buffer. More...
 
virtual AudioCaptureBuffergetCapturedAudioBuffer ()
 this method is the same as getCapturedAudio but it returns an managed CaptureBuffer
 
virtual unsigned int getCurrentCapturedAudioSize ()
 Returns the current size of the internal audio buffer in bytes.
 
void getAvailableDevices ()
 
virtual void registerEventHandler (ICaptureEventHandler *handler)
 Registers a new event handler to this manager. More...
 
virtual void unRegisterEventHandler (ICaptureEventHandler *handler)
 Removes the specified event handler from this manager. More...
 
virtual void unRegisterAllEventHandlers ()
 Removes all event handlers attached to this manager.
 
- Public Member Functions inherited from cAudio::cMemoryOverride
void * operator new (size_t size, const char *file, int line, const char *function)
 
void * operator new (size_t size)
 
void * operator new (size_t size, void *pointer)
 
void * operator new[] (size_t size, const char *file, int line, const char *function)
 
void * operator new[] (size_t size)
 
void operator delete (void *pointer)
 
void operator delete (void *pointer, void *)
 
void operator delete (void *pointer, const char *, int, const char *)
 
void operator delete[] (void *pointer)
 
void operator delete[] (void *pointer, const char *, int, const char *)
 

Protected Member Functions

virtual void run ()
 
bool initOpenALDevice ()
 
void shutdownOpenALDevice ()
 
bool checkError ()
 
ALenum convertAudioFormatEnum (AudioFormats format)
 
void signalEvent (Events sevent)
 

Protected Attributes

cAudioMutex Mutex
 
IThreadAudioThread
 Our update thread.
 
unsigned int Frequency
 
AudioFormats Format
 
unsigned int InternalBufferSize
 
int SampleSize
 
cAudioVector< char >::Type CaptureBuffer
 
cAudioList
< ICaptureEventHandler * >
::Type 
eventHandlerList
 
bool Ready
 
bool Capturing
 
cAudioString DeviceName
 
ALCdevice * CaptureDevice
 

Detailed Description

Definition at line 17 of file cAudioCapture.h.

Member Function Documentation

bool cAudio::cAudioCapture::beginCapture ( )
virtual

Starts capturing audio data to an internal buffer. Will clear any old data in the buffer.

Returns
True if capture was successfully started.

Implements cAudio::IAudioCapture.

Definition at line 116 of file cAudioCapture.cpp.

Here is the call graph for this function:

unsigned int cAudio::cAudioCapture::getCapturedAudio ( void *  outputBuffer,
unsigned int  outputBufferSize 
)
virtual

Allows access to the audio data in the internal capture buffer.

Can be called at any time to retrieve recorded audio.  It is recommended that you call it every so often with long recordings to prevent the internal buffer from growing too large.

Once successfully retrieved, the captured audio will be deleted from the internal buffer.

Parameters
outputBuffer,:Pointer to an output array to copy audio data to.
outputBufferSize,:Size of the output array in bytes.
Returns
Size in bytes of the data actually copied to the output buffer.

Implements cAudio::IAudioCapture.

Definition at line 157 of file cAudioCapture.cpp.

Here is the call graph for this function:

virtual unsigned int cAudio::cAudioCapture::getInternalBufferSize ( )
inlinevirtual

Returns the internal OpenAL buffer size in bytes.

Returns
Size of the buffer in bytes.

Implements cAudio::IAudioCapture.

Definition at line 45 of file cAudioCapture.h.

virtual unsigned int cAudio::cAudioCapture::getSampleSize ( )
inlinevirtual

Returns the size of a "sample" of audio data. Useful for making sure you grab audio data at sample boundaries.

Returns
Size of a sample in bytes.

Implements cAudio::IAudioCapture.

Definition at line 46 of file cAudioCapture.h.

bool cAudio::cAudioCapture::initialize ( const char *  deviceName = 0x0,
unsigned int  frequency = 22050,
AudioFormats  format = EAF_16BIT_MONO,
unsigned int  internalBufferSize = 8192 
)
virtual

Initializes the capture device to the selected settings.

Note that calling this will cause the capture device to be reinitialized.  Calling while in use will clear the internal audio buffer.
Parameters
deviceName,:Name of the audio device to capture audio from, pass NULL to specify the default one.
frequency,:Frequency that the captured audio will be captured at in hertz.
format,:Format of the captured audio.
internalBufferSize,:Size of the internal OpenAL buffer used to store the captured audio between calls to getCapturedAudio() in bytes.
Returns
True on success, False if the capture device failed to initialize.

Implements cAudio::IAudioCapture.

Definition at line 223 of file cAudioCapture.cpp.

Here is the caller graph for this function:

virtual bool cAudio::cAudioCapture::isUpdateThreadRunning ( )
inlinevirtual

Returns if the thread used to update all Audio Capture Objects is running.

Note: Will always return false if threading is disabled.

The library automatically shuts down the thread if no Audio Capture objects exist and will restart the thread on creation of a new object.

Returns
True if the thread is currently running, false otherwise.

Implements cAudio::IAudioCapture.

Definition at line 37 of file cAudioCapture.h.

void cAudio::cAudioCapture::registerEventHandler ( ICaptureEventHandler handler)
virtual

Registers a new event handler to this manager.

Parameters
handler,:Pointer to an event handler to attach.

Implements cAudio::IAudioCapture.

Definition at line 286 of file cAudioCapture.cpp.

bool cAudio::cAudioCapture::setDevice ( const char *  deviceName)
virtual

Sets the audio device . Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer.

Parameters
deviceName,:Name of the audio device to capture audio from, pass NULL to specify the default one.
Returns
True on success, False if the capture device failed to initialize.

Implements cAudio::IAudioCapture.

Definition at line 214 of file cAudioCapture.cpp.

bool cAudio::cAudioCapture::setFormat ( AudioFormats  format)
virtual

Sets the format that the captured audio will be at. Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer.

Parameters
format,:Format of the captured audio.
Returns
True on success, False if the capture device failed to initialize.

Implements cAudio::IAudioCapture.

Definition at line 188 of file cAudioCapture.cpp.

bool cAudio::cAudioCapture::setFrequency ( unsigned int  frequency)
virtual

Sets the frequency that the captured audio will be at. Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer.

Parameters
frequency,:Frequency that the captured audio will be captured at in hertz.
Returns
True on success, False if the capture device failed to initialize.

Implements cAudio::IAudioCapture.

Definition at line 180 of file cAudioCapture.cpp.

bool cAudio::cAudioCapture::setInternalBufferSize ( unsigned int  internalBufferSize)
virtual

Sets the internal buffer size that OpenAL will use to store captured audio between calls to getCapturedAudio() in bytes. Will cause the capture device to be reinitialized. Calling while in use will clear the internal audio buffer.

Parameters
internalBufferSize,:Size of the internal OpenAL buffer in bytes.
Returns
True on success, False if the capture device failed to initialize.

Implements cAudio::IAudioCapture.

Definition at line 205 of file cAudioCapture.cpp.

void cAudio::cAudioCapture::unRegisterEventHandler ( ICaptureEventHandler handler)
virtual

Removes the specified event handler from this manager.

Parameters
handler,:Pointer to an event handler to remove.

Implements cAudio::IAudioCapture.

Definition at line 294 of file cAudioCapture.cpp.

void cAudio::cAudioCapture::updateCaptureBuffer ( bool  force = false)
virtual

Grabs samples from the OpenAL buffer into the capture buffer if the OpenAL buffer has reached half full. Should be run once every audio frame, unless threading is enabled.

Parameters
force,:Force capturing data from the buffer, even if the buffer is not half full.

Implements cAudio::IAudioCapture.

Definition at line 90 of file cAudioCapture.cpp.

Here is the call graph for this function:


The documentation for this class was generated from the following files: