--- /dev/null
+#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;
+ }
+}
+
+
+