cec: added HandleSystemAudioStatus()
authorLars Op den Kamp <lars@opdenkamp.eu>
Fri, 25 Nov 2011 10:19:05 +0000 (11:19 +0100)
committerLars Op den Kamp <lars@opdenkamp.eu>
Fri, 25 Nov 2011 10:19:05 +0000 (11:19 +0100)
src/lib/implementations/CECCommandHandler.cpp
src/lib/implementations/CECCommandHandler.h

index 037825acb1d4078c6369efcf2c04295841be6471..333b71b1ab12817d6927ff1ffbc4eae252717fd2 100644 (file)
@@ -132,6 +132,9 @@ bool CCECCommandHandler::HandleCommand(const cec_command &command)
   case CEC_OPCODE_REPORT_AUDIO_STATUS:
     HandleReportAudioStatus(command);
     break;
+  case CEC_OPCODE_SYSTEM_AUDIO_MODE_STATUS:
+    HandleSystemAudioStatus(command);
+    break;
   case CEC_OPCODE_SET_OSD_NAME:
     HandleSetOSDName(command);
     break;
@@ -460,6 +463,18 @@ bool CCECCommandHandler::HandleStandby(const cec_command &command)
   return true;
 }
 
+bool CCECCommandHandler::HandleSystemAudioStatus(const cec_command &command)
+{
+  CCECBusDevice *device = GetDevice(command.initiator);
+  if (device && device->GetType() == CEC_DEVICE_TYPE_AUDIO_SYSTEM)
+  {
+    ((CCECAudioSystem *)device)->SetSystemAudioMode(command);
+    return true;
+  }
+
+  return false;
+}
+
 bool CCECCommandHandler::HandleGiveSystemAudioModeStatus(const cec_command &command)
 {
   if (m_busDevice->MyLogicalAddressContains(command.destination))
index 8b31d2cf7155327af957dd1d1cdb87c18a285989..7dea0c090ca23b1ad3763e025eb0c6532d1b85f1 100644 (file)
@@ -83,6 +83,7 @@ namespace CEC
     virtual bool HandleSetStreamPath(const cec_command &command);
     virtual bool HandleSetSystemAudioModeRequest(const cec_command &command);
     virtual bool HandleStandby(const cec_command &command);
+    virtual bool HandleSystemAudioStatus(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);