AudioHardwareInput.h [plain text]
#ifndef _AUDIOHARDWAREINPUT_H
#define _AUDIOHARDWAREINPUT_H
#include "AudioHardwareCommon.h"
#include "AudioHardwareUtilities.h"
#include "AudioHardwareMux.h"
class AudioHardwareMux;
typedef struct _s_AudioHardwareInputInfo {
UInt32 sndHWPort;
UInt32 inputPortType;
UInt32 channels;
bool isOnMuX;
AudioHardwareMux *theMuxRef;
}AudioHardwareInputInfo;
enum{
kAudioHardwareInputUnknown = 0,
kAudioHardwareInputNone = 1,
kAudioHardwareInputIntMic = 2,
kAudioHardwareInputExtMic = 3
};
enum {
kNoSource = 'none',
kCDSource = 'cd ',
kExtMicSource = 'emic',
kSoundInSource = 'sinj',
kRCAInSource = 'irca',
kTVFMTunerSource = 'tvfm',
kDAVInSource = 'idav',
kIntMicSource = 'imic',
kMediaBaySource = 'mbay',
kModemSource = 'modm',
kPCCardSource = 'pcm ',
kZoomVideoSource = 'zvpc',
kDVDSource = 'dvda',
kMicrophoneArray = 'mica'
};
class AudioHardwareInput : public IOAudioPort {
OSDeclareDefaultStructors(AudioHardwareInput);
public:
static AudioHardwareInput *create(AudioHardwareInputInfo theInputInfo);
bool deviceSetActive( UInt32 currentDevices );
void forceActivation(UInt32 selector);
void attachAudioPluginRef(AppleOnboardAudio *theAudioPlugin);
UInt32 getInputPortType(void);
void setInputGain(UInt32 leftGain, UInt32 rightGain);
protected:
bool init(AudioHardwareInputInfo theInputInfo);
void free();
void ioLog();
UInt32 sndHWPort; UInt32 inputPortType; UInt32 channels; bool isOnMuX; bool active; AudioHardwareMux *theMuxRef;
AppleOnboardAudio *pluginRef;
UInt32 gainLeft;
UInt32 gainRight;
};
#endif