X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fserialport.h;h=f5035b908f21705a57bdee173b5e127784145198;hb=2ffc8cddcb866da58a4a45923823ad9fb1c296eb;hp=c7e0e6c5dbc551ee06094a98ab3bc226d5f48eca;hpb=b9187cc6999276ce37a5c9852655fd558ea76b8e;p=deb_libcec.git diff --git a/src/lib/platform/serialport.h b/src/lib/platform/serialport.h index c7e0e6c..f5035b9 100644 --- a/src/lib/platform/serialport.h +++ b/src/lib/platform/serialport.h @@ -1,33 +1,46 @@ #pragma once - /* - * boblight - * Copyright (C) Bob 2009 - * - * boblight is free software: you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the - * Free Software Foundation, either version 3 of the License, or + * This file is part of the libCEC(R) library. + * + * libCEC(R) is Copyright (C) 2011 Pulse-Eight Limited. All rights reserved. + * libCEC(R) is an original work, containing original code. + * + * libCEC(R) is a trademark of Pulse-Eight Limited. + * + * This program is dual-licensed; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. - * - * boblight is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * See the GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program. If not, see . + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * + * + * Alternatively, you can license this library under a commercial license, + * please contact Pulse-Eight Licensing for more information. + * + * For more information contact: + * Pulse-Eight Licensing + * http://www.pulse-eight.com/ + * http://www.pulse-eight.net/ */ #include "os-dependent.h" -#include "baudrate.h" +#include #include -#include #include +#include "../AdapterCommunication.h" +#include "../platform/threads.h" #ifndef __WINDOWS__ #include #else -#include "../util/threads.h" #include "../util/buffer.h" #endif @@ -43,34 +56,33 @@ 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(CCECAdapterMessage *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; + bool m_tostdout; #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;