-#include "irctrl.h"
#include <cstdlib>
+#include <QTcpSocket>
+#include <QSettings>
+#include <QString>
+#include <QIODevice>
+#include <QHostAddress>
+#include <QAbstractSocket>
+#include <QSettings>
+
+#include "irctrl.h"
+
IrCtrl::IrCtrl()
+ : settings(NULL)
{
- std::system("./lircctl start");
+ settings = new QSettings(this);
+ std::system("lircctl start");
}
IrCtrl::~IrCtrl()
{
- std::system("./lircctl stop");
+ delete settings;
+ settings = NULL;
+ std::system("lircctl stop");
}
-void IrCtrl::setRemoteName(const QString &newRemoteName)
+void IrCtrl::genericSendCmd(const QString &commandName)
{
- this->remoteName = newRemoteName;
+ QTcpSocket sock(this);
+// sock.setSocketOption(QAbstractSocket::LowDelayOption, 1);
+ sock.connectToHost(QHostAddress::LocalHost,
+ settings->value("lircPort", LIRC_PORT).toInt(),
+ QIODevice::WriteOnly|QIODevice::Unbuffered);
+ sock.waitForConnected();
+ QString remoteName =
+ settings->value("remoteName", "REMOTE_NAME_MISSING").toString();
+ QString cmd = "SEND_ONCE " + remoteName + " " + commandName + "\n";
+ sock.write(cmd.toAscii());
+ sock.waitForBytesWritten();
+ sock.close();
}
-void IrCtrl::sendCmd0(bool)
+void IrCtrl::sendCmd0()
{
+ genericSendCmd(settings->value("cmd0", "VOL+").toString());
}
-void IrCtrl::sendCmd1(bool)
+void IrCtrl::sendCmd1()
{
+ genericSendCmd(settings->value("cmd1", "VOL-").toString());
}
-void IrCtrl::sendCmd2(bool)
+void IrCtrl::sendCmd2()
{
+ genericSendCmd(settings->value("cmd2", "P+").toString());
}
-void IrCtrl::sendCmd3(bool)
+void IrCtrl::sendCmd3()
{
+ genericSendCmd(settings->value("cmd3", "P-").toString());
}
-void IrCtrl::sendCmd4(bool)
+void IrCtrl::sendCmd4()
{
+ genericSendCmd(settings->value("cmd4", "ON/OFF").toString());
}
-void IrCtrl::sendCmd5(bool)
+void IrCtrl::sendCmd5()
{
+ genericSendCmd(settings->value("cmd5", "MUTE").toString());
}