+ bool Start(const char *strPort, uint16_t iBaudRate = CEC_SERIAL_DEFAULT_BAUDRATE, uint32_t iTimeoutMs = CEC_DEFAULT_CONNECT_TIMEOUT);
+ void *Process(void);
+ void Close(void);
+
+ bool OnCommandReceived(const cec_command &command);
+
+ bool IsMonitoring(void) const { return m_bMonitor; }
+ CCECBusDevice * GetDeviceByPhysicalAddress(uint16_t iPhysicalAddress, bool bSuppressUpdate = true);
+ CCECBusDevice * GetDeviceByType(cec_device_type type) const;
+ CCECBusDevice * GetPrimaryDevice(void) const;
+ cec_version GetDeviceCecVersion(cec_logical_address iAddress);
+ bool GetDeviceMenuLanguage(cec_logical_address iAddress, cec_menu_language *language);
+ CStdString GetDeviceName(void) const;
+ cec_osd_name GetDeviceOSDName(cec_logical_address iAddress);
+ uint64_t GetDeviceVendorId(cec_logical_address iAddress);
+ cec_power_status GetDevicePowerStatus(cec_logical_address iAddress);
+ cec_logical_address GetLogicalAddress(void) const { return m_configuration.logicalAddresses.primary; }
+ cec_logical_addresses GetLogicalAddresses(void) const { return m_configuration.logicalAddresses; }
+ cec_logical_addresses GetActiveDevices(void);
+ uint16_t GetDevicePhysicalAddress(cec_logical_address iAddress);
+ bool HasLogicalAddress(cec_logical_address address) const { return m_configuration.logicalAddresses.IsSet(address); }
+ bool IsPresentDevice(cec_logical_address address);
+ bool IsPresentDeviceType(cec_device_type type);
+ uint16_t GetPhysicalAddress(void) const;
+ uint64_t GetLastTransmission(void) const { return m_iLastTransmission; }
+ cec_logical_address GetActiveSource(bool bRequestActiveSource = true);
+ bool IsActiveSource(cec_logical_address iAddress);
+ bool IsInitialised(void);
+ bool SetStreamPath(uint16_t iPhysicalAddress);
+ cec_client_version GetClientVersion(void) const { return (cec_client_version)m_configuration.clientVersion; };
+ bool StandbyDevices(cec_logical_address address = CECDEVICE_BROADCAST);
+ bool PowerOnDevices(cec_logical_address address = CECDEVICE_BROADCAST);