X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fdevices%2FCECBusDevice.h;h=687186f50678eeba50d087b2e9489bc1430f1efa;hb=c36dd10675100ca44b11421ed977c7b987a478fb;hp=5428ec1c8ddbf7f35ed415f5fd159bc742f9bb25;hpb=ebb6ddb38f42d6185faf3c30be8ccfeee1889ee2;p=deb_libcec.git diff --git a/src/lib/devices/CECBusDevice.h b/src/lib/devices/CECBusDevice.h index 5428ec1..687186f 100644 --- a/src/lib/devices/CECBusDevice.h +++ b/src/lib/devices/CECBusDevice.h @@ -40,12 +40,10 @@ namespace CEC { class CCECProcessor; class CCECCommandHandler; - class CSLCommandHandler; class CCECBusDevice { friend class CCECProcessor; - friend class CSLCommandHandler; public: CCECBusDevice(CCECProcessor *processor, cec_logical_address address, uint16_t iPhysicalAddress = 0); @@ -65,18 +63,19 @@ namespace CEC virtual cec_logical_address GetMyLogicalAddress(void) const; virtual uint16_t GetMyPhysicalAddress(void) const; virtual CStdString GetOSDName(bool bUpdate = false); - virtual uint16_t GetPhysicalAddress(bool bUpdate = false); + virtual uint16_t GetPhysicalAddress(bool bSuppressUpdate = true); virtual cec_power_status GetPowerStatus(bool bUpdate = false); virtual CCECProcessor * GetProcessor(void) const { return m_processor; } virtual cec_device_type GetType(void) const { return m_type; } virtual cec_vendor_id GetVendorId(bool bUpdate = false); virtual const char * GetVendorName(bool bUpdate = false); virtual bool MyLogicalAddressContains(cec_logical_address address) const; - virtual cec_bus_device_status GetStatus(bool bForcePoll = false); + virtual cec_bus_device_status GetStatus(bool bForcePoll = false, bool bSuppressPoll = false); virtual bool IsActiveSource(void) const { return m_bActiveSource; } - virtual bool IsUnsupportedFeature(cec_opcode opcode) const; + virtual bool IsUnsupportedFeature(cec_opcode opcode); virtual void SetUnsupportedFeature(cec_opcode opcode); - virtual void HandlePoll(cec_logical_address initiator); + virtual void HandlePoll(cec_logical_address destination); + virtual void HandlePollFrom(cec_logical_address initiator); virtual bool HandleReceiveFailed(void); virtual void SetInactiveSource(void); @@ -86,7 +85,7 @@ namespace CEC virtual void SetDeviceStatus(const cec_bus_device_status newStatus); virtual void SetPhysicalAddress(uint16_t iNewAddress); - virtual void SetStreamPath(uint16_t iNewAddress, uint16_t iOldAddress = 0); + virtual void SetStreamPath(uint16_t iNewAddress, uint16_t iOldAddress = CEC_INVALID_PHYSICAL_ADDRESS); virtual void SetCecVersion(const cec_version newVersion); virtual void SetMenuLanguage(const cec_menu_language &menuLanguage); virtual void SetOSDName(CStdString strName); @@ -102,24 +101,30 @@ namespace CEC virtual bool TransmitOSDName(cec_logical_address dest); virtual bool TransmitOSDString(cec_logical_address dest, cec_display_control duration, const char *strMessage); virtual bool TransmitPhysicalAddress(void); + virtual bool TransmitSetMenuLanguage(cec_logical_address dest); virtual bool TransmitPowerState(cec_logical_address dest); virtual bool TransmitPoll(cec_logical_address dest); virtual bool TransmitVendorID(cec_logical_address dest, bool bSendAbort = true); virtual bool TransmitKeypress(cec_user_control_code key, bool bWait = true); virtual bool TransmitKeyRelease(bool bWait = true); + bool ReplaceHandler(bool bActivateSource = true); + virtual bool TransmitPendingActiveSourceCommands(void); + + virtual bool RequestActiveSource(bool bWaitForResponse = true); + protected: + void ResetDeviceStatus(void); void CheckVendorIdRequested(void); - bool ReplaceHandler(bool bActivateSource = true); void MarkBusy(void); void MarkReady(void); - bool RequestCecVersion(void); - bool RequestMenuLanguage(void); - bool RequestPowerStatus(void); - bool RequestVendorId(void); - bool RequestPhysicalAddress(void); - bool RequestOSDName(void); + bool RequestCecVersion(bool bWaitForResponse = true); + bool RequestMenuLanguage(bool bWaitForResponse = true); + bool RequestPowerStatus(bool bWaitForResponse = true); + bool RequestVendorId(bool bWaitForResponse = true); + bool RequestPhysicalAddress(bool bWaitForResponse = true); + bool RequestOSDName(bool bWaitForResponse = true); bool NeedsPoll(void);