sipxmedialib
Version 3.3
|
Container for device specific input CoreAudio driver. More...
#include <MpidCoreAudio.h>
Public Member Functions | |
Creators | |
MpidCoreAudio (const UtlString &name, MpInputDeviceManager &deviceManager) | |
Default constructor. More... | |
~MpidCoreAudio () | |
Destructor. More... | |
Manipulators | |
OsStatus | enableDevice (unsigned samplesPerFrame, unsigned samplesPerSec, MpFrameTime currentFrameTime) |
Initialize device driver and state. More... | |
OsStatus | disableDevice () |
Uninitialize device driver. More... | |
Inquiry | |
UtlBoolean | isDeviceValid () |
Inquire if the device is valid. More... | |
Public Member Functions inherited from MpInputDeviceDriver | |
MpInputDeviceDriver (const UtlString &name, MpInputDeviceManager &deviceManager) | |
Default constructor. More... | |
virtual | ~MpInputDeviceDriver () |
Destructor. More... | |
virtual OsStatus | setDeviceId (MpInputDeviceHandle deviceId) |
Set device ID associated with this device in parent input device manager. More... | |
virtual OsStatus | clearDeviceId () |
Clear the device ID associated with this device. More... | |
virtual MpInputDeviceHandle | getDeviceId () const |
Get device ID associated with this device in parent input device manager. More... | |
uint32_t | getSamplesPerSec () const |
Get the sample rate of this device driver, if enabled. More... | |
uint32_t | getSamplesPerFrame () const |
Get the samples per frame of this device driver, if enabled. More... | |
MpFrameTime | getFramePeriod () |
Calculate the number of milliseconds that a frame occupies in time. More... | |
MpFrameTime | getCurrentFrameTime () const |
Get timestamp for the next frame to be pushed to input device manager. More... | |
const UtlString & | getDeviceName () const |
Get device name. More... | |
virtual UtlBoolean | isEnabled () |
Inquire if this driver is enabled. More... | |
Protected Member Functions | |
void | pushFrame () |
Push audio frame to InputDeviceManager. More... | |
void | skipFrame () |
Add frame time to mCurrentFrameTime . More... | |
bool | setAudioUnitFormat (const AudioStreamBasicDescription &ds) |
bool | initResempler (const AudioStreamBasicDescription &ds) |
bool | setBuffers () |
Static Protected Member Functions | |
static void | propertyListener (void *inRefCon, AudioUnit ci, AudioUnitPropertyID inID, AudioUnitScope inScope, AudioUnitElement inElement) |
static OSStatus | renderProc (void *inRefCon, AudioUnitRenderActionFlags *inActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumFrames, AudioBufferList *ioData) |
static OSStatus | ACproc (AudioConverterRef inAudioConverter, UInt32 *ioDataPackets, AudioBufferList *ioData, AudioStreamPacketDescription **inUserData, void *inUData) |
Protected Attributes | |
AudioUnit | mInputUnit |
AudioUnit input handle. More... | |
AudioConverterRef | mConverter |
Sample rate converter. More... | |
CoreAudioHardware | mDevice |
CoreAudio hardware device handle. More... | |
double | mInputSampleRate |
Device smaple rate. More... | |
MpAudioSample * | mAudioFrame |
Wave buffer for silence. More... | |
void * | mTempBuffer |
Buffer for temporary storage. More... | |
void * | mTempBufferHalf |
Pointer to the center of the temp buffer. More... | |
unsigned | mTempBufferHalfSize |
Half size of buffer. More... | |
unsigned | mInputFrameSize |
Device input frame size. More... | |
Protected Attributes inherited from MpInputDeviceDriver | |
MpInputDeviceManager * | mpInputDeviceManager |
this device driver. More... | |
UtlBoolean | mIsEnabled |
Whether this device driver is enabled or not. More... | |
MpInputDeviceHandle | mDeviceId |
this device, as supplied by the InputDeviceManager. More... | |
unsigned | mSamplesPerFrame |
number of samples. More... | |
unsigned | mSamplesPerSec |
of samples per second. More... | |
MpFrameTime | mCurrentFrameTime |
pushed to input device manager. More... | |
Private Member Functions | |
MpidCoreAudio (const MpidCoreAudio &rMpInputDeviceDriver) | |
Copy constructor (not implemented for this class). More... | |
MpidCoreAudio & | operator= (const MpidCoreAudio &rhs) |
Assignment operator (not implemented for this class). More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from MpInputDeviceDriver | |
static MpFrameTime | getFramePeriod (unsigned samplesPerFrame, unsigned samplesPerSec) |
Calculate the number of milliseconds that a frame occupies in time. More... | |
Container for device specific input CoreAudio driver.
MpidCoreAudio | ( | const UtlString & | name, |
MpInputDeviceManager & | deviceManager | ||
) |
Default constructor.
name | - (in) unique device driver name (e.g. "/dev/dsp", "YAMAHA AC-XG WDM Audio", etc.). |
deviceManager | - (in) MpInputDeviceManager this device is to push frames to via pushFrame method. |
~MpidCoreAudio | ( | ) |
Destructor.
|
private |
Copy constructor (not implemented for this class).
|
virtual |
Initialize device driver and state.
This method enables the device driver.
this SHOULD NOT be used to mute/unmute a device. Disabling and enabling a device results in state and buffer queues being cleared.
samplesPerFrame | - the number of samples in a frame of media |
samplesPerSec | - sample rate for media frame in samples per second |
currentFrameTime | - time in milliseconds for beginning of frame relative to the MpInputDeviceManager reference time |
Implements MpInputDeviceDriver.
|
virtual |
Uninitialize device driver.
This method disables the device driver and should release any platform device resources so that the device might be used else where.
this SHOULD NOT be used to mute/unmute a device. Disabling and enabling a device results in state and buffer queues being cleared.
Implements MpInputDeviceDriver.
|
virtual |
Inquire if the device is valid.
Implements MpInputDeviceDriver.
|
protected |
Push audio frame to InputDeviceManager.
|
protected |
Add frame time to mCurrentFrameTime
.
|
protected |
|
protected |
|
protected |
|
staticprotected |
|
staticprotected |
|
staticprotected |
|
private |
Assignment operator (not implemented for this class).
|
protected |
AudioUnit input handle.
|
protected |
Sample rate converter.
|
protected |
CoreAudio hardware device handle.
|
protected |
Device smaple rate.
|
protected |
Wave buffer for silence.
|
protected |
Buffer for temporary storage.
|
protected |
Pointer to the center of the temp buffer.
|
protected |
Half size of buffer.
|
protected |
Device input frame size.