cec: transmit the menu state when activating the panasonic handler
[deb_libcec.git] / src / lib / implementations / VLCommandHandler.cpp
index d1c7605e3d83574b1f172b47fd6cd3cf35c2e9f0..8153792d083fc18ebccedeb5964faa44bf94b028 100644 (file)
 
 #include "VLCommandHandler.h"
 #include "../devices/CECBusDevice.h"
-#include "../util/StdString.h"
+#include "../CECProcessor.h"
 
 using namespace CEC;
 
 CVLCommandHandler::CVLCommandHandler(CCECBusDevice *busDevice) :
     CCECCommandHandler(busDevice)
 {
+  m_vendorId = CEC_VENDOR_PANASONIC;
+  m_bOPTSendDeckStatusUpdateOnActiveSource = false;
 }
 
-bool CVLCommandHandler::HandleSetStreamPath(const cec_command &command)
+bool CVLCommandHandler::InitHandler(void)
 {
-  if (command.parameters.size >= 2)
+  CCECBusDevice *primary = m_processor->GetPrimaryDevice();
+  if (primary->GetType() == CEC_DEVICE_TYPE_RECORDING_DEVICE)
   {
-    int streamaddr = ((uint16_t)command.parameters[0] << 8) | ((uint16_t)command.parameters[1]);
-    CStdString strLog;
-    strLog.Format(">> %i requests stream path from physical address %04x", command.initiator, streamaddr);
-    m_busDevice->AddLog(CEC_LOG_DEBUG, strLog.c_str());
-    if (streamaddr == m_busDevice->GetMyPhysicalAddress())
-    {
-      CCECBusDevice *device = GetDevice(command.destination);
-      if (device)
-      {
-        return device->TransmitActiveSource() &&
-               device->TransmitActiveView() &&
-               device->TransmitMenuState(command.initiator);
-      }
-      return false;
-    }
+    return m_processor->ChangeDeviceType(CEC_DEVICE_TYPE_RECORDING_DEVICE, CEC_DEVICE_TYPE_PLAYBACK_DEVICE);
   }
-  return true;
+  m_busDevice->TransmitMenuState(CECDEVICE_TV);
+  return CCECCommandHandler::InitHandler();
 }