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