AudioHardwareObjectInterface.cpp [plain text]
#include "AudioHardwareObjectInterface.h"
#include "AudioHardwareConstants.h"
OSDefineMetaClassAndAbstractStructors(AudioHardwareObjectInterface, IOService);
IOReturn AudioHardwareObjectInterface::setMute(bool mutestate)
{
IOReturn result = kIOReturnSuccess;
IOReturn tempResult;
if ( hasAnalogMute() ) {
tempResult = setMute ( mutestate, kAnalogAudioSelector );
if ( kIOReturnSuccess != tempResult ) {
result = tempResult;
} else {
mAnalogMuteState = mutestate;
}
}
if ( hasDigitalMute() ) { tempResult = setMute ( mutestate, kDigitalAudioSelector );
if ( kIOReturnSuccess != tempResult ) {
result = tempResult;
} else {
mDigitalMuteState = mutestate;
}
}
return result;
}
bool AudioHardwareObjectInterface::setVolume(UInt32 leftVolume, UInt32 rightVolume)
{
bool result = true;
mVolLeft = leftVolume;
mVolRight = rightVolume;
if ( !mAnalogMuteState ) { result = setCodecVolume ( mVolLeft, mVolRight );
}
return result;
}
IOReturn AudioHardwareObjectInterface::setMute (bool muteState, UInt32 streamType) {
IOReturn result = kIOReturnSuccess;
switch ( streamType ) {
case kAnalogAudioSelector:
mAnalogMuteState = muteState;
setCodecMute ( muteState, streamType );
if ( !mAnalogMuteState ) {
setCodecVolume ( mVolLeft, mVolRight );
}
break;
case kDigitalAudioSelector:
mDigitalMuteState = muteState;
setCodecMute ( muteState, streamType );
break;
default:
result = kIOReturnError;
break;
}
return result;
}