7ebab5a3842df2ead964ebab7cddb2e469d0b823
[irwi] / src / remote.cpp
1 #include "irctrl.h"
2 #include "remote.h"
3 #include "netio.h"
4
5 #include <QSettings>
6
7 Remote::Remote()
8     : rated(false)
9     , model("", "")
10     , settings(new QSettings())
11     , irCtrl(new IrCtrl())
12     , netIO(NULL)
13 {
14 }
15
16 Remote::Remote(const QString &id, NetIO *netIO)
17     : rated(false)
18     , settings(new QSettings())
19     , irCtrl(new IrCtrl())
20     , netIO(netIO)
21 {
22     setId(id);
23 }
24
25 Remote::~Remote()
26 {
27     delete settings;
28     delete irCtrl;
29 }
30
31 const QString &Remote::id() const
32 {
33     return model.id;
34 }
35
36 void Remote::setId(const QString &id)
37 {
38     model.id = id;
39 }
40
41 void Remote::setNetIO(NetIO *netIO)
42 {
43     this->netIO = netIO;
44 }
45
46 void Remote::updateRating()
47 {
48     connect(netIO, SIGNAL(ratingDownloaded(int)),
49             this, SIGNAL(ratingChanged(int)));
50     netIO->ratingById(model.id);
51 }
52
53 void Remote::sendRating(bool)
54 {
55 }
56
57 void Remote::sendCmd(RemoteCmd cmd)
58 {
59     switch (cmd)
60     {
61         case VOLUMEUP:
62             irCtrl->sendCmd(
63                     model.name,
64                     settings->value("cmdVolumeUp", "VOLUP").toString());
65             break;
66
67         case VOLUMEDOWN:
68             irCtrl->sendCmd(
69                     model.name,
70                     settings->value("cmdVolumeDown", "VOLUP").toString());
71             break;
72
73         case CHANNELUP:
74             irCtrl->sendCmd(
75                     model.name,
76                     settings->value("cmdChannelUp", "CHUP").toString());
77             break;
78
79         case CHANNELDOWN:
80             irCtrl->sendCmd(
81                     model.name,
82                     settings->value("cmdChannelDown", "CHDOWN").toString());
83             break;
84
85         case POWER:
86             irCtrl->sendCmd(
87                     model.name,
88                     settings->value("cmdPower", "POWER").toString());
89             break;
90
91         case MUTE:
92             irCtrl->sendCmd(
93                     model.name,
94                     settings->value("cmdMute", "MUTE").toString());
95             break;
96
97         default:
98             break;
99     }
100 }
101
102
103