-#include "irctrl.h"
-
#include <cstdlib>
-#include <QTcpSocket>
#include <QSettings>
-#include <QString>
-#include <QIODevice>
-#include <QHostAddress>
-#include <QAbstractSocket>
+#include <QTimer>
+
+#include "irctrl.h"
-IrCtrl::IrCtrl()
+IrCtrl::IrCtrl(QObject *parent)
+ : QObject(parent)
{
- std::system("lircctl start");
}
-
+
IrCtrl::~IrCtrl()
{
- std::system("lircctl stop");
}
-void IrCtrl::genericSendCmd(const QString &commandName)
+void IrCtrl::sendCmd(const QString &remoteName, const QString &cmd)
{
- QTcpSocket sock(this);
-// sock.setSocketOption(QAbstractSocket::LowDelayOption, 1);
- sock.connectToHost(QHostAddress::LocalHost, LIRC_PORT,
- QIODevice::WriteOnly|QIODevice::Unbuffered);
- sock.waitForConnected(-1);
- QSettings settings(this);
- QString remoteName = settings.value("remoteName", "Zyxel_DMA-1000").toString();
- QString cmd = "SEND_ONCE " + remoteName + " " + commandName + "\n";
- sock.write(cmd.toAscii());
- sock.waitForBytesWritten(-1);
- sock.close();
-}
+ if (!killLircTimer->isActive()) {
+ startLirc();
+ } else {
+ killLircTimer->stop();
+ }
-void IrCtrl::sendCmd0(bool)
-{
-}
+// QTcpSocket sock;
+// QSettings settings(this);
+// sock.setSocketOption(QAbstractSocket::LowDelayOption, 1);
+// sock.connectToHost(QHostAddress::LocalHost,
+// settings.value("lircPort", LIRC_PORT).toInt(),
+// QIODevice::WriteOnly|QIODevice::Unbuffered);
+// sock.waitForConnected();
+// QString cmdStr = "SEND_ONCE " + cmd.remoteName + " " + cmd.cmd + "\n";
+// sock.write(cmdStr.toAscii());
+// sock.waitForBytesWritten();
+// sock.close();
-void IrCtrl::sendCmd1(bool)
-{
+ killLircTimer->start();
}
-void IrCtrl::sendCmd2(bool)
-{
-}
-void IrCtrl::sendCmd3(bool)
+void IrCtrl::stopLirc()
{
+ std::system("sudo /etc/init.d/lirc stop");
}
-void IrCtrl::sendCmd4(bool)
+void IrCtrl::startLirc()
{
- genericSendCmd("ON/OFF");
+ std::system("sudo /etc/init.d/lirc start");
}
-void IrCtrl::sendCmd5(bool)
-{
-}