From: Jari Jarvi Date: Thu, 24 Jun 2010 08:12:54 +0000 (+0300) Subject: Preprocessor directives for using either X-Git-Url: http://vcs.maemo.org/git/?p=irwi;a=commitdiff_plain;h=83cbd11459aceb44247c24fc3861aaa38af3f3b6 Preprocessor directives for using either Qt or bsd socket --- diff --git a/src/irctrl.cpp b/src/irctrl.cpp index c81ca5b..1b2501e 100644 --- a/src/irctrl.cpp +++ b/src/irctrl.cpp @@ -1,11 +1,16 @@ #include +#ifdef LIRC_USEQTSOCKET +#include +#include +#else #include #include #include #include #include #include +#endif #include #include @@ -40,15 +45,28 @@ void IrCtrl::sendCmd(const QString &cmd) } QSettings settings; + // Integer demotion. QVariant has no support for unsigned short + unsigned short lircPort = (unsigned short) + settings.value("lircPort", LIRC_PORT).toInt(); QString remoteName = settings.value("remoteName", "").toString(); QString cmdStr = "SEND_ONCE " + remoteName + " " + cmd + "\n"; QByteArray buf = cmdStr.toAscii(); +#ifdef LIRC_USEQTSOCKET + QTcpSocket sock; + sock.setSocketOption(QAbstractSocket::LowDelayOption, 1); + sock.connectToHost(QHostAddress::LocalHost, lircPort + QIODevice::WriteOnly | QIODevice::Unbuffered); + sock.waitForConnected(); + sock.write(buf); + sock.waitForBytesWritten(); + sock.close(); +#else sockaddr_in addr; memset(&addr, 0, sizeof(addr)); addr.sin_family = AF_INET; addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - addr.sin_port = htons(LIRC_PORT); + addr.sin_port = htons(lircPort); int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (sock == -1) { qDebug() << "Socket open fail"; @@ -62,11 +80,11 @@ void IrCtrl::sendCmd(const QString &cmd) shutdown(sock, SHUT_RDWR); close(sock); } +#endif m_killLircTimer.start(); } - void IrCtrl::stopLirc() { std::system("sudo /etc/init.d/lirc stop"); diff --git a/src/src.pro b/src/src.pro index 03bd6fd..d631d74 100644 --- a/src/src.pro +++ b/src/src.pro @@ -1,6 +1,8 @@ TEMPLATE = app TARGET = irwi +# DEFINES += LIRC_USEQTSOCKET + SOURCES += rating.cpp SOURCES += settingsdlg.cpp SOURCES += main.cpp