Added a wait to prevent premature closing of socket
[irwi] / src / irctrl.cpp
1 #include "irctrl.h"
2
3 #include <cstdlib>
4
5 #include <QTcpSocket>
6 #include <QSettings>
7 #include <QString>
8 #include <QIODevice>
9 #include <QHostAddress>
10 #include <QAbstractSocket>
11
12 IrCtrl::IrCtrl()
13 {
14     std::system("lircctl start");
15 }
16
17 IrCtrl::~IrCtrl()
18 {
19     std::system("lircctl stop");
20 }
21
22 void IrCtrl::genericSendCmd(const QString &commandName)
23 {
24     QTcpSocket sock(this);
25     sock.setSocketOption(QAbstractSocket::LowDelayOption, 1);
26     sock.connectToHost(QHostAddress::LocalHost, LIRC_PORT,
27             QIODevice::WriteOnly|QIODevice::Unbuffered);
28     sock.waitForConnected(-1);
29     QSettings settings(this);
30     QString remoteName = settings.value("remoteName", "Zyxel_DMA-1000").toString();
31     QString cmd = "SEND_ONCE " + remoteName + " " + commandName + "\n";
32     sock.write(cmd.toAscii());
33     sock.waitForBytesWritten(-1);
34     sock.close();
35 }
36
37 void IrCtrl::sendCmd0(bool)
38 {
39 }
40
41 void IrCtrl::sendCmd1(bool)
42 {
43 }
44
45 void IrCtrl::sendCmd2(bool)
46 {
47 }
48
49 void IrCtrl::sendCmd3(bool)
50 {
51 }
52
53 void IrCtrl::sendCmd4(bool)
54 {
55     genericSendCmd("POWER");
56 }
57
58 void IrCtrl::sendCmd5(bool)
59 {
60 }
61