Complete rewrite. Does not work yet.
[irwi] / src / remote.cpp
diff --git a/src/remote.cpp b/src/remote.cpp
new file mode 100644 (file)
index 0000000..7ebab5a
--- /dev/null
@@ -0,0 +1,103 @@
+#include "irctrl.h"
+#include "remote.h"
+#include "netio.h"
+
+#include <QSettings>
+
+Remote::Remote()
+    : rated(false)
+    , model("", "")
+    , settings(new QSettings())
+    , irCtrl(new IrCtrl())
+    , netIO(NULL)
+{
+}
+
+Remote::Remote(const QString &id, NetIO *netIO)
+    : rated(false)
+    , settings(new QSettings())
+    , irCtrl(new IrCtrl())
+    , netIO(netIO)
+{
+    setId(id);
+}
+
+Remote::~Remote()
+{
+    delete settings;
+    delete irCtrl;
+}
+
+const QString &Remote::id() const
+{
+    return model.id;
+}
+
+void Remote::setId(const QString &id)
+{
+    model.id = id;
+}
+
+void Remote::setNetIO(NetIO *netIO)
+{
+    this->netIO = netIO;
+}
+
+void Remote::updateRating()
+{
+    connect(netIO, SIGNAL(ratingDownloaded(int)),
+            this, SIGNAL(ratingChanged(int)));
+    netIO->ratingById(model.id);
+}
+
+void Remote::sendRating(bool)
+{
+}
+
+void Remote::sendCmd(RemoteCmd cmd)
+{
+    switch (cmd)
+    {
+        case VOLUMEUP:
+            irCtrl->sendCmd(
+                    model.name,
+                    settings->value("cmdVolumeUp", "VOLUP").toString());
+            break;
+
+        case VOLUMEDOWN:
+            irCtrl->sendCmd(
+                    model.name,
+                    settings->value("cmdVolumeDown", "VOLUP").toString());
+            break;
+
+        case CHANNELUP:
+            irCtrl->sendCmd(
+                    model.name,
+                    settings->value("cmdChannelUp", "CHUP").toString());
+            break;
+
+        case CHANNELDOWN:
+            irCtrl->sendCmd(
+                    model.name,
+                    settings->value("cmdChannelDown", "CHDOWN").toString());
+            break;
+
+        case POWER:
+            irCtrl->sendCmd(
+                    model.name,
+                    settings->value("cmdPower", "POWER").toString());
+            break;
+
+        case MUTE:
+            irCtrl->sendCmd(
+                    model.name,
+                    settings->value("cmdMute", "MUTE").toString());
+            break;
+
+        default:
+            break;
+    }
+}
+
+
+