cec: added a hook in libcec for physical address autodetection
[deb_libcec.git] / src / lib / LibCEC.h
index 2f80720a2ec4970eae1923fcf15e7578fdc688bd..e1b991bcb69c2265aa54641d8b6c273b828b55e0 100644 (file)
@@ -47,6 +47,7 @@ namespace CEC
      * ICECAdapter implementation
      */
     //@{
+      CLibCEC(const char *strDeviceName, cec_device_type_list types);
       CLibCEC(const char *strDeviceName, cec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
       virtual ~CLibCEC(void);
 
@@ -56,26 +57,61 @@ namespace CEC
       virtual bool PingAdapter(void);
       virtual bool StartBootloader(void);
 
-      virtual int8_t GetMinVersion(void);
-      virtual int8_t GetLibVersion(void);
+      virtual int8_t GetMinLibVersion(void) const{ return CEC_MIN_LIB_VERSION; };
+      virtual int8_t GetLibVersionMajor(void) const { return CEC_LIB_VERSION_MAJOR; };
+      virtual int8_t GetLibVersionMinor(void) const { return CEC_LIB_VERSION_MINOR; };
 
       virtual bool GetNextLogMessage(cec_log_message *message);
       virtual bool GetNextKeypress(cec_keypress *key);
       virtual bool GetNextCommand(cec_command *command);
 
-      virtual bool Transmit(const cec_command &data, bool bWaitForAck = true);
+      virtual bool Transmit(const cec_command &data);
       virtual bool SetLogicalAddress(cec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1);
       virtual bool SetPhysicalAddress(uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS);
 
       virtual bool PowerOnDevices(cec_logical_address address = CECDEVICE_TV);
       virtual bool StandbyDevices(cec_logical_address address = CECDEVICE_BROADCAST);
       virtual bool SetActiveView(void);
+      virtual bool SetActiveSource(cec_device_type type = CEC_DEVICE_TYPE_RESERVED);
+      virtual bool SetDeckControlMode(cec_deck_control_mode mode, bool bSendUpdate = true);
+      virtual bool SetDeckInfo(cec_deck_info info, bool bSendUpdate = true);
       virtual bool SetInactiveView(void);
+      virtual bool SetMenuState(cec_menu_state state, bool bSendUpdate = true);
+      virtual bool SetOSDString(cec_logical_address iLogicalAddress, cec_display_control duration, const char *strMessage);
+      virtual bool SwitchMonitoring(bool bEnable);
+      virtual cec_version GetDeviceCecVersion(cec_logical_address iAddress);
+      virtual bool GetDeviceMenuLanguage(cec_logical_address iAddress, cec_menu_language *language);
+      virtual uint64_t GetDeviceVendorId(cec_logical_address iAddress);
+      virtual cec_power_status GetDevicePowerStatus(cec_logical_address iAddress);
+      virtual bool PollDevice(cec_logical_address iAddress);
+      virtual cec_logical_addresses GetActiveDevices(void);
+      virtual bool IsActiveDevice(cec_logical_address iAddress);
+      virtual bool IsActiveDeviceType(cec_device_type type);
+      virtual bool SetHDMIPort(cec_logical_address iBaseDevice, uint8_t iPort = CEC_DEFAULT_HDMI_PORT);
+      virtual uint8_t VolumeUp(bool bWait = true);
+      virtual uint8_t VolumeDown(bool bWait = true);
+      virtual uint8_t MuteAudio(bool bWait = true);
+      virtual bool SendKeypress(cec_logical_address iDestination, cec_user_control_code key, bool bWait = false);
+      virtual bool SendKeyRelease(cec_logical_address iDestination, bool bWait = false);
+      virtual cec_osd_name GetOSDName(cec_logical_address iAddress);
+      virtual bool EnablePhysicalAddressDetection(void);
+
+      const char *ToString(const cec_menu_state state);
+      const char *ToString(const cec_version version);
+      const char *ToString(const cec_power_status status);
+      const char *ToString(const cec_logical_address address);
+      const char *ToString(const cec_deck_control_mode mode);
+      const char *ToString(const cec_deck_info status);
+      const char *ToString(const cec_opcode opcode);
+      const char *ToString(const cec_system_audio_status mode);
+      const char *ToString(const cec_audio_status status);
+      const char *ToString(const cec_vendor_id vendor);
     //@}
 
       virtual void AddLog(cec_log_level level, const std::string &strMessage);
       virtual void AddKey(void);
-      virtual void AddCommand(cec_command &command);
+      virtual void AddKey(cec_keypress &key);
+      virtual void AddCommand(const cec_command &command);
       virtual void CheckKeypressTimeout(void);
       virtual void SetCurrentButton(cec_user_control_code iButtonCode);