Pulls more things from settings
[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     QSettings settings(this);
25     QTcpSocket sock(this);
26 //    sock.setSocketOption(QAbstractSocket::LowDelayOption, 1);
27     sock.connectToHost(QHostAddress::LocalHost, 
28             settings.value("lircPort", LIRC_PORT).toInt(),
29             QIODevice::WriteOnly|QIODevice::Unbuffered);
30     sock.waitForConnected();
31     QString remoteName = settings.value("remoteName", "REMOTE_NAME_MISSING").toString();
32     QString cmd = "SEND_ONCE " + remoteName + " " + commandName + "\n";
33     sock.write(cmd.toAscii());
34     sock.waitForBytesWritten();
35     sock.close();
36 }
37
38 void IrCtrl::sendCmd0(bool)
39 {
40     genericSendCmd(settings.value("cmd0", "VOL+").toString());
41 }
42
43 void IrCtrl::sendCmd1(bool)
44 {
45     genericSendCmd(settings.value("cmd1", "VOL-"));
46 }
47
48 void IrCtrl::sendCmd2(bool)
49 {
50     genericSendCmd(settings.value("cmd2", "P+"));
51 }
52
53 void IrCtrl::sendCmd3(bool)
54 {
55     genericSendCmd(settings.value("cmd3", "P-"));
56 }
57
58 void IrCtrl::sendCmd4(bool)
59 {
60     genericSendCmd(settings.value("cmd4", "ON/OFF"));
61 }
62
63 void IrCtrl::sendCmd5(bool)
64 {
65     genericSendCmd(settings.value("cmd5", "MUTE"));
66 }
67