X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fserialport.h;h=9cc2c9a1439b5530b5380e1d85312b7451c992bf;hb=b5ed9b9ed6bf72799ccb58263856598e8ad6dab3;hp=c7e0e6c5dbc551ee06094a98ab3bc226d5f48eca;hpb=b9187cc6999276ce37a5c9852655fd558ea76b8e;p=deb_libcec.git diff --git a/src/lib/platform/serialport.h b/src/lib/platform/serialport.h index c7e0e6c..9cc2c9a 100644 --- a/src/lib/platform/serialport.h +++ b/src/lib/platform/serialport.h @@ -19,15 +19,14 @@ */ #include "os-dependent.h" -#include "baudrate.h" +#include "../../../include/CECExports.h" #include -#include #include +#include "../platform/threads.h" #ifndef __WINDOWS__ #include #else -#include "../util/threads.h" #include "../util/buffer.h" #endif @@ -43,34 +42,32 @@ namespace CEC CSerialPort(); virtual ~CSerialPort(); - bool Open(std::string name, int baudrate, int databits = 8, int stopbits = 1, int parity = PAR_NONE); - bool SetBaudRate(int baudrate); - bool IsOpen() const; + bool Open(std::string name, uint32_t baudrate, uint8_t databits = 8, uint8_t stopbits = 1, uint8_t parity = PAR_NONE); + bool IsOpen(); void Close(); - int Write(std::vector data) - { - return Write(&data[0], data.size()); - } - int Write(uint8_t* data, int len); - int Read(uint8_t* data, int len, int iTimeoutMs = -1); + int8_t Write(const cec_frame &data); + int32_t Read(uint8_t* data, uint32_t len, uint64_t iTimeoutMs = 0); std::string GetError() { return m_error; } std::string GetName() { return m_name; } private: + bool SetBaudRate(uint32_t baudrate); + std::string m_error; std::string m_name; + CMutex m_mutex; #ifdef __WINDOWS__ bool SetTimeouts(bool bBlocking); HANDLE m_handle; bool m_bIsOpen; - int m_iBaudrate; - int m_iDatabits; - int m_iStopbits; - int m_iParity; + uint32_t m_iBaudrate; + uint8_t m_iDatabits; + uint8_t m_iStopbits; + uint8_t m_iParity; int64_t m_iTimeout; CecBuffer m_buffer; HANDLE m_ovHandle;