X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fimplementations%2FPHCommandHandler.h;h=38ebfe596d1993491604283afdcf4494f95c43b8;hb=d18ea27bd89c0244bef7077df2fbe0a687cf5f5e;hp=85338b46d695422b60c714fcf8b48ccb530b3859;hpb=ecc633c51b6c69bebaff4932e90245665ca06373;p=deb_libcec.git diff --git a/src/lib/implementations/PHCommandHandler.h b/src/lib/implementations/PHCommandHandler.h index 85338b4..38ebfe5 100644 --- a/src/lib/implementations/PHCommandHandler.h +++ b/src/lib/implementations/PHCommandHandler.h @@ -32,22 +32,47 @@ */ #include "CECCommandHandler.h" +#include "lib/platform/threads/threads.h" namespace CEC { + class CPHCommandHandler; + + class CImageViewOnCheck : public PLATFORM::CThread + { + public: + CImageViewOnCheck(CPHCommandHandler* handler): + m_handler(handler) {} + virtual ~CImageViewOnCheck(void); + + void* Process(void); + + private: + CPHCommandHandler* m_handler; + PLATFORM::CEvent m_event; + }; + class CPHCommandHandler : public CCECCommandHandler { + friend class CImageViewOnCheck; public: CPHCommandHandler(CCECBusDevice *busDevice, int32_t iTransmitTimeout = CEC_DEFAULT_TRANSMIT_TIMEOUT, int32_t iTransmitWait = CEC_DEFAULT_TRANSMIT_WAIT, int8_t iTransmitRetries = CEC_DEFAULT_TRANSMIT_RETRIES, int64_t iActiveSourcePending = 0); - virtual ~CPHCommandHandler(void) {}; + virtual ~CPHCommandHandler(void); + + bool InitHandler(void); protected: + virtual bool ActivateSource(bool bTransmitDelayedCommandsOnly = false); virtual int HandleUserControlPressed(const cec_command& command); virtual int HandleUserControlRelease(const cec_command& command); - uint8_t m_iLastKeyCode; + virtual bool TransmitVendorID(const cec_logical_address iInitiator, const cec_logical_address iDestination, uint64_t iVendorId, bool bIsReply); + virtual int HandleDeviceVendorId(const cec_command& command); + virtual int HandleVendorRemoteButtonUp(const cec_command & command) { return HandleUserControlRelease(command); } + uint8_t m_iLastKeyCode; + CImageViewOnCheck* m_imageViewOnCheck; }; };