repositories
/
deb_libcec.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
cec: cleaned up command line param parsing
[deb_libcec.git]
/
src
/
lib
/
platform
/
linux
/
serialport.cpp
diff --git
a/src/lib/platform/linux/serialport.cpp
b/src/lib/platform/linux/serialport.cpp
index 1877b0eec97c04a9813eb03351a04af427626163..d323708214c8b602a9edc1dd02f0ead087a3b635 100644
(file)
--- a/
src/lib/platform/linux/serialport.cpp
+++ b/
src/lib/platform/linux/serialport.cpp
@@
-22,6
+22,17
@@
#include "../baudrate.h"
#include "../timeutils.h"
#include "../baudrate.h"
#include "../timeutils.h"
+#if defined(__APPLE__)
+#ifndef XCASE
+#define XCASE 0
+#endif
+#ifndef OLCUC
+#define OLCUC 0
+#endif
+#ifndef IUCLC
+#define IUCLC 0
+#endif
+#endif
using namespace std;
using namespace CEC;
using namespace std;
using namespace CEC;
@@
-35,7
+46,7
@@
CSerialPort::~CSerialPort()
Close();
}
Close();
}
-int
CSerialPort::Write(uint8_t* data, int len
)
+int
8_t CSerialPort::Write(const cec_adapter_message &data
)
{
fd_set port;
{
fd_set port;
@@
-46,9
+57,9
@@
int CSerialPort::Write(uint8_t* data, int len)
return -1;
}
return -1;
}
- int byteswritten = 0;
+ int
32_t
byteswritten = 0;
- while (byteswritten <
len
)
+ while (byteswritten <
(int32_t) data.size()
)
{
FD_ZERO(&port);
FD_SET(m_fd, &port);
{
FD_ZERO(&port);
FD_SET(m_fd, &port);
@@
-59,7
+70,7
@@
int CSerialPort::Write(uint8_t* data, int len)
return -1;
}
return -1;
}
- returnv = write(m_fd, data
+ byteswritten, len
- byteswritten);
+ returnv = write(m_fd, data
.packet.data + byteswritten, data.size()
- byteswritten);
if (returnv == -1)
{
m_error = strerror(errno);
if (returnv == -1)
{
m_error = strerror(errno);
@@
-74,19
+85,19
@@
int CSerialPort::Write(uint8_t* data, int len)
// printf("%s write:", m_name.c_str());
// for (int i = 0; i < byteswritten; i++)
// printf(" %02x", (unsigned int)data[i]);
// printf("%s write:", m_name.c_str());
// for (int i = 0; i < byteswritten; i++)
// printf(" %02x", (unsigned int)data[i]);
-
+//
// printf("\n");
// }
return byteswritten;
}
// printf("\n");
// }
return byteswritten;
}
-int
CSerialPort::Read(uint8_t* data, int len, int iTimeoutMs /*= -1
*/)
+int
32_t CSerialPort::Read(uint8_t* data, uint32_t len, uint64_t iTimeoutMs /*= 0
*/)
{
fd_set port;
struct timeval timeout, *tv;
{
fd_set port;
struct timeval timeout, *tv;
- int64_t now
, target
;
- int
bytesread = 0;
+ int64_t now
(0), target(0)
;
+ int
32_t
bytesread = 0;
CLockObject lock(&m_mutex);
if (m_fd == -1)
CLockObject lock(&m_mutex);
if (m_fd == -1)
@@
-95,15
+106,15
@@
int CSerialPort::Read(uint8_t* data, int len, int iTimeoutMs /*= -1*/)
return -1;
}
return -1;
}
- if (iTimeoutMs >
=
0)
+ if (iTimeoutMs > 0)
{
now = GetTimeMs();
target = now + (int64_t) iTimeoutMs;
}
{
now = GetTimeMs();
target = now + (int64_t) iTimeoutMs;
}
- while (bytesread <
len && (iTimeoutMs <
0 || target > now))
+ while (bytesread <
(int32_t) len && (iTimeoutMs ==
0 || target > now))
{
{
- if (iTimeoutMs
<
0)
+ if (iTimeoutMs
==
0)
{
tv = NULL;
}
{
tv = NULL;
}
@@
-116,7
+127,7
@@
int CSerialPort::Read(uint8_t* data, int len, int iTimeoutMs /*= -1*/)
FD_ZERO(&port);
FD_SET(m_fd, &port);
FD_ZERO(&port);
FD_SET(m_fd, &port);
- int returnv = select(m_fd + 1, &port, NULL, NULL, tv);
+ int
32_t
returnv = select(m_fd + 1, &port, NULL, NULL, tv);
if (returnv == -1)
{
if (returnv == -1)
{
@@
-155,7
+166,7
@@
int CSerialPort::Read(uint8_t* data, int len, int iTimeoutMs /*= -1*/)
}
//setting all this stuff up is a pain in the ass
}
//setting all this stuff up is a pain in the ass
-bool CSerialPort::Open(string name,
int baudrate, int databits/* = 8*/, int stopbits/* = 1*/, int parity/* = PAR_NONE
*/)
+bool CSerialPort::Open(string name,
uint32_t baudrate, uint8_t databits /* = 8 */, uint8_t stopbits /* = 1 */, uint8_t parity /* = PAR_NONE
*/)
{
m_name = name;
m_error = strerror(errno);
{
m_name = name;
m_error = strerror(errno);
@@
-257,7
+268,7
@@
void CSerialPort::Close()
}
}
}
}
-bool CSerialPort::SetBaudRate(
in
t baudrate)
+bool CSerialPort::SetBaudRate(
uint32_
t baudrate)
{
int rate = IntToBaudrate(baudrate);
if (rate == -1)
{
int rate = IntToBaudrate(baudrate);
if (rate == -1)