Added commands for all buttons
[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     genericSendCmd("VOL+");
40 }
41
42 void IrCtrl::sendCmd1(bool)
43 {
44     genericSendCmd("VOL-");
45 }
46
47 void IrCtrl::sendCmd2(bool)
48 {
49     genericSendCmd("P+");
50 }
51
52 void IrCtrl::sendCmd3(bool)
53 {
54     genericSendCmd("P-");
55 }
56
57 void IrCtrl::sendCmd4(bool)
58 {
59     genericSendCmd("ON/OFF");
60 }
61
62 void IrCtrl::sendCmd5(bool)
63 {
64     genericSendCmd("MUTE");
65 }
66