cec: more cleanups in CUSBCECAdapterCommunication, and re-added SetLineTimeout()...
[deb_libcec.git] / src / lib / adapter / USBCECAdapterCommunication.h
index 513900d5be28d8584d3e7431002913c2d6ec977b..71b8ea87a176a016f18bd989aebb79e0260c84f4 100644 (file)
@@ -69,7 +69,7 @@ namespace CEC
     CUSBCECAdapterCommunication(CCECProcessor *processor, const char *strPort, uint16_t iBaudRate = 38400);
     virtual ~CUSBCECAdapterCommunication();
 
-    virtual bool Open(IAdapterCommunicationCallback *cb, uint32_t iTimeoutMs = 10000);
+    virtual bool Open(IAdapterCommunicationCallback *cb, uint32_t iTimeoutMs = 10000, bool bSkipChecks = false);
     virtual void Close(void);
     virtual bool IsOpen(void);
     virtual CStdString GetError(void) const;
@@ -83,12 +83,23 @@ namespace CEC
     virtual bool PingAdapter(void);
     virtual uint16_t GetFirmwareVersion(void);
     virtual bool SetControlledMode(bool controlled);
-    virtual bool PersistConfiguration(libcec_configuration * UNUSED(configuration)) { return false; } // TODO
+    virtual bool PersistConfiguration(libcec_configuration *configuration);
     virtual CStdString GetPortName(void);
     virtual uint16_t GetPhysicalAddress(void) { return 0; }
 
     void *Process(void);
   private:
+    bool SendCommand(cec_adapter_messagecode msgCode, CCECAdapterMessage &params, bool bExpectAck = true, bool bIsTransmission = false, bool bSendDirectly = true);
+
+    bool SetAutoEnabled(bool enabled);
+    bool SetDeviceType(cec_device_type type);
+    bool SetDefaultLogicalAddress(cec_logical_address address);
+    bool SetLogicalAddressMask(uint16_t iMask);
+    bool SetPhysicalAddress(uint16_t iPhysicalAddress);
+    bool SetCECVersion(cec_version version);
+    bool SetOSDName(const char *strOSDName);
+    bool WriteEEPROM(void);
+
     bool SetAckMaskInternal(uint16_t iMask, bool bWriteDirectly = false);
 
     bool CheckAdapter(uint32_t iTimeoutMs = 10000);