X-Git-Url: http://git.maemo.org/git/?p=irwi;a=blobdiff_plain;f=src%2Firctrl.cpp;h=92bf8b288ff54be79a312e2f76640b8deee7e87e;hp=5a647d08f8d8df0867d3bb7003d0627ad5f45377;hb=9cb0ca7e6de20439f0df7c0121061c9f17c632b4;hpb=a2a3cd7ff10e25a54676bf17b25b93eb90c365c6 diff --git a/src/irctrl.cpp b/src/irctrl.cpp index 5a647d0..92bf8b2 100644 --- a/src/irctrl.cpp +++ b/src/irctrl.cpp @@ -1,62 +1,54 @@ +#include + #include +#include +#include +#include + #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 &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 remoteName = settings.value("remoteName", "").toString(); + QString cmdStr = "SEND_ONCE " + remoteName + " " + 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"); }