X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2FCECProcessor.h;h=e1f6d68517eee2908cc7f1b6906e72db0f29240b;hb=496897540ebcc6fc13b346aa5e08f2148a2770c7;hp=63cf298b89cbfa644882d6b64e25e419c81457d4;hpb=9768d06119e3f2f835e0814624485ec631e31e62;p=deb_libcec.git diff --git a/src/lib/CECProcessor.h b/src/lib/CECProcessor.h index 63cf298..e1f6d68 100644 --- a/src/lib/CECProcessor.h +++ b/src/lib/CECProcessor.h @@ -51,6 +51,18 @@ namespace CEC class CCECTuner; class CCECTV; class CCECClient; + class CCECProcessor; + + class CCECAllocateLogicalAddress : public PLATFORM::CThread + { + public: + CCECAllocateLogicalAddress(CCECProcessor* processor, CCECClient* client); + void* Process(void); + + private: + CCECProcessor* m_processor; + CCECClient* m_client; + }; class CCECProcessor : public PLATFORM::CThread, public IAdapterCommunicationCallback { @@ -69,7 +81,7 @@ namespace CEC CCECClient *GetClient(const cec_logical_address address); bool OnCommandReceived(const cec_command &command); - void HandleLogicalAddressLost(cec_logical_address address); + void HandleLogicalAddressLost(cec_logical_address oldAddress); CCECBusDevice * GetDevice(cec_logical_address address) const; CCECAudioSystem * GetAudioSystem(void) const; @@ -130,6 +142,7 @@ namespace CEC bool IsRunningLatestFirmware(void); void SwitchMonitoring(bool bSwitchTo); + bool AllocateLogicalAddresses(CCECClient* client); private: bool OpenConnection(const char *strPort, uint16_t iBaudRate, uint32_t iTimeoutMs, bool bStartListening = true); void SetCECInitialised(bool bSetTo = true); @@ -156,5 +169,7 @@ namespace CEC CCECDeviceMap * m_busDevices; std::map m_clients; bool m_bMonitor; + CCECAllocateLogicalAddress* m_addrAllocator; + bool m_bStallCommunication; }; };