X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECProcessor.h;h=309365b8c9eb334e94f579ad09cb4acab4203905;hb=261288360ea57d755b2a76ebec04e4f53dd14c1c;hp=8e5349accccc86f97b3f51e98d985b0e6ee27787;hpb=7c63a480cbe63c5c6725b9558ae21acbe427ccc2;p=deb_libcec.git diff --git a/src/lib/CECProcessor.h b/src/lib/CECProcessor.h index 8e5349a..309365b 100644 --- a/src/lib/CECProcessor.h +++ b/src/lib/CECProcessor.h @@ -49,11 +49,11 @@ namespace CEC class CCECProcessor : public CThread { public: - CCECProcessor(CLibCEC *controller, CAdapterCommunication *serComm, const char *strDeviceName, cec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS); - CCECProcessor(CLibCEC *controller, CAdapterCommunication *serComm, const char *strDeviceName, const cec_device_type_list &types); + CCECProcessor(CLibCEC *controller, const char *strDeviceName, cec_logical_address iLogicalAddress = CECDEVICE_PLAYBACKDEVICE1, uint16_t iPhysicalAddress = CEC_DEFAULT_PHYSICAL_ADDRESS); + CCECProcessor(CLibCEC *controller, const char *strDeviceName, const cec_device_type_list &types); virtual ~CCECProcessor(void); - virtual bool Start(void); + virtual bool Start(const char *strPort, uint16_t iBaudRate = 38400, uint32_t iTimeoutMs = 10000); virtual void *Process(void); virtual bool IsMonitoring(void) const { return m_bMonitor; } @@ -78,7 +78,7 @@ namespace CEC virtual bool SetActiveSource(cec_logical_address iAddress); virtual bool SetDeckControlMode(cec_deck_control_mode mode, bool bSendUpdate = true); virtual bool SetDeckInfo(cec_deck_info info, bool bSendUpdate = true); - virtual bool SetHDMIPort(uint8_t iPort, bool bForce = false); + virtual bool SetHDMIPort(cec_logical_address iBaseDevice, uint8_t iPort, bool bForce = false); virtual bool TransmitInactiveSource(void); virtual bool SetLogicalAddress(cec_logical_address iLogicalAddress); virtual bool SetMenuState(cec_menu_state state, bool bSendUpdate = true); @@ -91,6 +91,20 @@ namespace CEC 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 bool EnablePhysicalAddressDetection(void) { return false; }; + + bool SetLineTimeout(uint8_t iTimeout); + + 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 bool Transmit(const cec_command &data); virtual bool Transmit(CCECAdapterMessage *output); @@ -105,6 +119,9 @@ namespace CEC virtual bool FindLogicalAddresses(void); virtual bool SetAckMask(uint16_t iMask); + virtual bool StartBootloader(void); + virtual bool PingAdapter(void); + CCECBusDevice *m_busDevices[16]; private: @@ -117,14 +134,16 @@ namespace CEC bool FindLogicalAddressAudioSystem(void); void LogOutput(const cec_command &data); - bool WaitForTransmitSucceeded(uint8_t iLength, uint32_t iTimeout = 1000); + bool WaitForTransmitSucceeded(CCECAdapterMessage *message); bool ParseMessage(const CCECAdapterMessage &msg); void ParseCommand(cec_command &command); bool m_bStarted; uint8_t m_iHDMIPort; + cec_logical_address m_iBaseDevice; cec_command m_currentframe; cec_logical_addresses m_logicalAddresses; + cec_logical_address m_lastInitiator; std::string m_strDeviceName; cec_device_type_list m_types; CMutex m_mutex;