cec: fixed possible segfault when switching the command handler after a vendor id...
[deb_libcec.git] / src / lib / implementations / CECCommandHandler.h
index 6be4b707baced9e99af593e81fe7c3122ad8946b..8fb9446f8bfac6f1c7050b52537c056270f52cb1 100644 (file)
  */
 
 #include <cectypes.h>
+#include <vector>
 
 namespace CEC
 {
+  class CCECProcessor;
   class CCECBusDevice;
 
   class CCECCommandHandler
@@ -47,6 +49,8 @@ namespace CEC
     virtual cec_vendor_id GetVendorId(void) { return CEC_VENDOR_UNKNOWN; };
 
   protected:
+    virtual bool HandleActiveSource(const cec_command &command);
+    virtual bool HandleDeckControl(const cec_command &command);
     virtual bool HandleDeviceCecVersion(const cec_command &command);
     virtual bool HandleDeviceVendorCommandWithId(const cec_command &command);
     virtual bool HandleDeviceVendorId(const cec_command &command);
@@ -57,17 +61,36 @@ namespace CEC
     virtual bool HandleGiveDeviceVendorId(const cec_command &command);
     virtual bool HandleGiveOSDName(const cec_command &command);
     virtual bool HandleGivePhysicalAddress(const cec_command &command);
+    virtual bool HandleGiveSystemAudioModeStatus(const cec_command &command);
+    virtual bool HandleImageViewOn(const cec_command &command);
     virtual bool HandleMenuRequest(const cec_command &command);
+    virtual bool HandleReportAudioStatus(const cec_command &command);
+    virtual bool HandleReportPhysicalAddress(const cec_command &command);
     virtual bool HandleReportPowerStatus(const cec_command &command);
     virtual bool HandleRequestActiveSource(const cec_command &command);
     virtual bool HandleRoutingChange(const cec_command &command);
+    virtual bool HandleRoutingInformation(const cec_command &command);
     virtual bool HandleSetMenuLanguage(const cec_command &command);
+    virtual bool HandleSetOSDName(const cec_command &command);
     virtual bool HandleSetStreamPath(const cec_command &command);
+    virtual bool HandleSystemAudioModeRequest(const cec_command &command);
+    virtual bool HandleStandby(const cec_command &command);
+    virtual bool HandleSystemAudioModeStatus(const cec_command &command);
+    virtual bool HandleSetSystemAudioMode(const cec_command &command);
+    virtual bool HandleTextViewOn(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);
 
+    virtual unsigned int GetMyDevices(std::vector<CCECBusDevice *> &devices) const;
     virtual CCECBusDevice *GetDevice(cec_logical_address iLogicalAddress) const;
+    virtual CCECBusDevice *GetDeviceByPhysicalAddress(uint16_t iPhysicalAddress) const;
+    virtual CCECBusDevice *GetDeviceByType(cec_device_type type) const;
+
+    virtual void SetVendorId(const cec_command &command);
+    virtual void SetPhysicalAddress(cec_logical_address iAddress, uint16_t iNewAddress);
+
+    CCECProcessor *m_processor;
     CCECBusDevice *m_busDevice;
   };
 };