m_processor->TransmitAbort(dest, CEC_OPCODE_GIVE_AUDIO_STATUS);
return false;
}
+
+bool CCECAudioSystem::TransmitSystemAudioModeStatus(cec_logical_address dest)
+{
+ // TODO
+ CStdString strLog;
+ strLog.Format("<< %x -> %x: system audio mode status feature abort", m_iLogicalAddress, dest);
+ AddLog(CEC_LOG_NOTICE, strLog);
+
+ m_processor->TransmitAbort(dest, CEC_OPCODE_GIVE_SYSTEM_AUDIO_MODE_STATUS);
+ return false;
+}
virtual ~CCECAudioSystem(void) {};
virtual bool TransmitAudioStatus(cec_logical_address dest);
+ virtual bool TransmitSystemAudioModeStatus(cec_logical_address dest);
};
}
case CEC_OPCODE_GIVE_AUDIO_STATUS:
HandleGiveAudioStatus(command);
break;
+ case CEC_OPCODE_GIVE_SYSTEM_AUDIO_MODE_STATUS:
+ HandleGiveSystemAudioModeStatus(command);
+ break;
default:
UnhandledCommand(command);
m_busDevice->GetProcessor()->AddCommand(command);
return true;
}
+bool CCECCommandHandler::HandleGiveSystemAudioModeStatus(const cec_command &command)
+{
+ CCECBusDevice *device = GetDevice(command.destination);
+ if (device && device->GetType() == CEC_DEVICE_TYPE_AUDIO_SYSTEM)
+ return ((CCECAudioSystem *) device)->TransmitSystemAudioModeStatus(command.initiator);
+
+ return false;
+}
+
bool CCECCommandHandler::HandleUserControlPressed(const cec_command &command)
{
if (command.parameters.size > 0)
virtual bool HandleRoutingChange(const cec_command &command);
virtual bool HandleSetMenuLanguage(const cec_command &command);
virtual bool HandleSetStreamPath(const cec_command &command);
+ virtual bool HandleGiveSystemAudioModeStatus(const cec_command &command);
virtual bool HandleUserControlPressed(const cec_command &command);
virtual bool HandleUserControlRelease(const cec_command &command);
virtual void UnhandledCommand(const cec_command &command);