4 #include <QHostAddress>
5 #include <QAbstractSocket>
11 IrCtrlPrivate::IrCtrlPrivate()
14 settings = new QSettings(this);
16 killLircTimer = new QTimer(this);
17 killLircTimer->setInterval(
18 settings->value("idleTimeout", 300).toInt() * 1000);
19 killLircTimer->setSingleShot(true);
20 connect(killLircTimer, SIGNAL(timeout()), this, SLOT(stopLirc()));
22 killLircTimer->start();
25 IrCtrlPrivate::~IrCtrlPrivate()
33 void IrCtrlPrivate::stopLirc()
35 std::system("sudo /etc/init.d/lirc stop");
38 void IrCtrlPrivate::startLirc()
40 std::system("sudo /etc/init.d/lirc start");
43 void IrCtrlPrivate::genericSendCmd(const QString &commandName)
45 if (!killLircTimer->isActive()) {
48 killLircTimer->stop();
52 sock.setSocketOption(QAbstractSocket::LowDelayOption, 1);
53 sock.connectToHost(QHostAddress::LocalHost,
54 settings->value("lircPort", LIRC_PORT).toInt(),
55 QIODevice::WriteOnly|QIODevice::Unbuffered);
56 sock.waitForConnected();
58 settings->value("remoteName", "REMOTE_NAME_MISSING").toString();
59 QString cmd = "SEND_ONCE " + remoteName + " " + commandName + "\n";
60 sock.write(cmd.toAscii());
61 sock.waitForBytesWritten();
64 killLircTimer->start();