+#include <cstdlib>
+
#include <QSettings>
+#include <QTimer>
+
#include "irctrl.h"
-#include "irctrl_p.h"
IrCtrl::IrCtrl(QObject *parent)
: QObject(parent)
- , d_ptr(new IrCtrlPrivate())
{
- Q_D(IrCtrl);
- d->q_ptr = this;
}
-
-IrCtrl::IrCtrl(IrCtrlPrivate &dd, QObject *parent)
- : QObject(parent)
- , d_ptr(&dd)
-{
- Q_D(IrCtrl);
- d->q_ptr = this;
-}
-
+
IrCtrl::~IrCtrl()
{
- delete d_ptr;
}
-void IrCtrl::sendCmd0()
+void IrCtrl::sendCmd(const QString &remoteName, const QString &cmd)
{
- Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd0", "VOLUP").toString());
-}
+ if (!killLircTimer->isActive()) {
+ startLirc();
+ } else {
+ killLircTimer->stop();
+ }
-void IrCtrl::sendCmd1()
-{
- Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd1", "VOLDOWN-").toString());
-}
+// 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::sendCmd2()
-{
- Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd2", "CHUP").toString());
+ killLircTimer->start();
}
-void IrCtrl::sendCmd3()
-{
- Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd3", "CHDOWN").toString());
-}
-void IrCtrl::sendCmd4()
+void IrCtrl::stopLirc()
{
- Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd4", "POWER").toString());
+ std::system("sudo /etc/init.d/lirc stop");
}
-void IrCtrl::sendCmd5()
+void IrCtrl::startLirc()
{
- Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd5", "MUTE").toString());
+ std::system("sudo /etc/init.d/lirc start");
}