Fix for volume rocker bug
[pierogi] / keysets / motorola.cpp
1 #include "motorola.h"
2 #include "protocols/lircprotocol.h"
3 #include "protocols/giprotocol.h"
4 #include "protocols/necprotocol.h"
5
6
7 Motorola4DTV::Motorola4DTV(
8   unsigned int index)
9   : PIRKeysetMetaData(
10       "4DTV/StarChoice Keyset",
11       Motorola_Make,
12       index)
13 {
14 }
15
16
17 void Motorola4DTV::populateProtocol(
18   QObject *guiObject)
19 {
20   if (threadableProtocol)
21   {
22     // Keyset already populated.
23     return;
24   }
25
26   LIRCProtocol *lp = new LIRCProtocol(
27     guiObject, index,
28     1000, 1000,
29     1000, 3000,
30     100000, true);
31
32   threadableProtocol = lp;
33
34   lp->setHeaderPair(5000, 2000);
35   lp->setTrailerPulse(1000);
36
37   addKey("0", Zero_Key, 0x246, 12);
38   addKey("1", One_Key, 0xF04, 12);
39   addKey("2", Two_Key, 0x886, 12);
40   addKey("3", Three_Key, 0x486, 12);
41   addKey("4", Four_Key, 0xE83, 12);
42   addKey("5", Five_Key, 0x98B, 12);
43   addKey("6", Six_Key, 0xD8D, 12);
44   addKey("7", Seven_Key, 0x50B, 12);
45   addKey("8", Eight_Key, 0x901, 12);
46   addKey("9", Nine_Key, 0x708, 12);
47   addKey("Power", Power_Key, 0x605, 12);
48   addKey("Source", Input_Key, 0xA4A, 12);
49   addKey("Sat", SatInput_Key, 0xA85, 12);
50   addKey("Up", Up_Key, 0xC4F, 12);
51   addKey("Down", Down_Key, 0x045, 12);
52   addKey("Right", Right_Key, 0x80C, 12);
53   addKey("Left", Left_Key, 0xB88, 12);
54   addKey("Enter", Enter_Key, 0x384, 12);
55   addKey("GoBack", Unmapped_Key, 0x68F, 12);
56   addKey("Exit", Exit_Key, 0xA0F, 12);
57   addKey("Guide", Guide_Key, 0x782, 12);
58   addKey("Interests", Unmapped_Key, 0x581, 12);
59   addKey("Options", Unmapped_Key, 0x289, 12);
60   addKey("Info", Info_Key, 0xE4C, 12);
61   addKey("Browse", Unmapped_Key, 0x849, 12);
62   addKey("Future", Unmapped_Key, 0x443, 12);
63   addKey("Ch-UP", ChannelUp_Key, 0xD07, 12);
64   addKey("Ch-DOWN", ChannelDown_Key, 0x08A, 12);
65   addKey("LastCh", PrevChannel_Key, 0x187, 12);
66   addKey("Help", Unmapped_Key, 0xF8E, 12);
67 }
68
69
70 MotorolaSTB1::MotorolaSTB1(
71   unsigned int index)
72   : PIRKeysetMetaData(
73       "STB Keyset 1",
74       Motorola_Make,
75       index)
76 {
77 }
78
79
80 void MotorolaSTB1::populateProtocol(
81   QObject *guiObject)
82 {
83   if (threadableProtocol)
84   {
85     // Keyset already populated.
86     return;
87   }
88
89   threadableProtocol = new GIProtocol(guiObject, index);
90
91   addKey("0", Zero_Key, 0x0000, 16);
92   addKey("1", One_Key, 0xF001, 16);
93   addKey("2", Two_Key, 0xE002, 16);
94   addKey("3", Three_Key, 0xD003, 16);
95   addKey("4", Four_Key, 0xC004, 16);
96   addKey("5", Five_Key, 0xB005, 16);
97   addKey("6", Six_Key, 0xA006, 16);
98   addKey("7", Seven_Key, 0x9007, 16);
99   addKey("8", Eight_Key, 0x8008, 16);
100   addKey("9", Nine_Key, 0x7009, 16);
101   addKey("power", Power_Key, 0x600A, 16);
102   addKey("ch+", ChannelUp_Key, 0x500B, 16);
103   addKey("ch-", ChannelDown_Key, 0x400C, 16);
104   addKey("vol+", VolumeUp_Key, 0x300D, 16);
105   addKey("vol-", VolumeDown_Key, 0x200E, 16);
106   addKey("mute", Mute_Key, 0x100F, 16);
107
108   addKey("MUSIC", Unmapped_Key, 0xF010, 16);
109   addKey("select", Select_Key, 0xE011, 16);
110   addKey("enter", Enter_Key, 0xE011, 16);
111   addKey("exit", Exit_Key, 0xD012, 16);
112   addKey("last", PrevChannel_Key, 0xC013, 16);
113   addKey("input", Input_Key, 0xB014, 16); // "tv/vcr_input"
114   addKey("fav", Favorites_Key, 0xA015, 16);
115   addKey("ppv", Unmapped_Key, 0x9016, 16);
116   addKey("a", Audio_Key, 0x8017, 16); // "lang"
117   addKey("menu", Menu_Key, 0x6019, 16);
118   addKey("ffwd", FastForward_Key, 0x201D, 16);
119   addKey("rew", Rewind_Key, 0x101E, 16);
120   addKey("pause", Pause_Key, 0x001F, 16);
121
122 //  addKey("pnp-swap", PIPSwap_Key, 0xB020, 16);
123   addKey("pip_onoff", PIP_Key, 0xC022, 16);
124   addKey("pip_swap", PIPSwap_Key, 0xB023, 16);
125   addKey("pip_move", PIPMove_Key, 0xA024, 16);
126   addKey("pip_chan_up", PIPChannelUp_Key, 0x9025, 16);
127   addKey("pip_chan_down", PIPChannelDown_Key, 0x8026, 16);
128   addKey("b", Unmapped_Key, 0x7027, 16);
129   addKey("c", Unmapped_Key, 0x6028, 16);
130
131   addKey("guide", Guide_Key, 0xD030, 16);
132   addKey("record", Record_Key, 0xC031, 16);
133   addKey("settings", Unmapped_Key, 0xB032, 16); // "help"
134   addKey("info", Info_Key, 0xA033, 16);
135   addKey("up", Up_Key, 0x9034, 16);
136   addKey("down", Down_Key, 0x8035, 16);
137   addKey("left", Left_Key, 0x7036, 16);
138   addKey("right", Right_Key, 0x6037, 16);
139   addKey("play", Play_Key, 0x5038, 16);
140   addKey("stop", Stop_Key, 0x4039, 16);
141   addKey("page+", PageUp_Key, 0x303A, 16);
142   addKey("page+", StepForward_Key, 0x303A, 16); // for convenience
143   addKey("page-", PageDown_Key, 0x203B, 16);
144   addKey("page-", StepBack_Key, 0x203B, 16); // Also for convenience
145   addKey("skipback", Replay_Key, 0x103C, 16);
146   addKey("mydvr", HDDInput_Key, 0x003D, 16);
147   addKey("live", LiveTV_Key, 0xF03E, 16);
148   addKey("next", Advance_Key, 0xE03F, 16);
149
150   addKey("hdzoom_enter", AspectRatio_Key, 0xC040, 16);
151
152   addKey("red", Red_Key, 0xC06E, 16);
153   addKey("green", Green_Key, 0xB06F, 16);
154   addKey("yelow", Yellow_Key, 0x9070, 16);
155   addKey("blue", Blue_Key, 0x8071, 16);
156   addKey("grey", Unmapped_Key, 0x7072, 16);
157
158   addKey("back", Unmapped_Key, 0x649D, 16);
159
160   addKey("exit", Unmapped_Key, 0x60FB, 16); // separate keyset?
161 }
162
163
164 MotorolaSTB1a::MotorolaSTB1a(
165   unsigned int index)
166   : MotorolaSTB1(index)
167 {
168   setKeysetName("STB Keyset 1a");
169 }
170
171
172 void MotorolaSTB1a::populateProtocol(
173   QObject *guiObject)
174 {
175   if (threadableProtocol)
176   {
177     // Already populated.
178     return;
179   }
180
181   MotorolaSTB1::populateProtocol(guiObject);
182
183   addKey("a_lock", Unmapped_Key, 0x9016, 16);
184   addKey("ppv", Unmapped_Key, 0x7018, 16);
185   addKey("vod", Unmapped_Key, 0x501A, 16);
186   addKey("play", Play_Key, 0x401B, 16);
187   addKey("stop", Stop_Key, 0x301C, 16);
188
189   addKey("c_day+", Unmapped_Key, 0x5038, 16);
190   addKey("b_day-", Unmapped_Key, 0x4039, 16);
191 }
192
193
194 MotorolaSTB1b::MotorolaSTB1b(
195   unsigned int index)
196   : MotorolaSTB1(index)
197 {
198   setKeysetName("STB Keyset 1b");
199 }
200
201
202 void MotorolaSTB1b::populateProtocol(
203   QObject *guiObject)
204 {
205   if (threadableProtocol)
206   {
207     // Already populated.
208     return;
209   }
210
211   MotorolaSTB1::populateProtocol(guiObject);
212
213   addKey("yellow", Yellow_Key, 0x8017, 16);
214   addKey("ondemand", Unmapped_Key, 0x501A, 16);
215   addKey("stop", Stop_Key, 0x301C, 16);
216   addKey("play-pause", Play_Key, 0x001F, 16);
217   addKey("play-pause", Pause_Key, 0x001F, 16);
218   addKey("blue", Blue_Key, 0x7027, 16);
219   addKey("red", Red_Key, 0x6028, 16);
220   addKey("green", Green_Key, 0x5029, 16);
221   addKey("#", Unmapped_Key, 0xC040, 16);
222   addKey("widgets", Unmapped_Key, 0x9043, 16);
223   addKey("*", Unmapped_Key, 0x8044, 16);
224 }
225
226
227 MotorolaSkyDigital::MotorolaSkyDigital(
228   unsigned int index)
229   : PIRKeysetMetaData(
230       "Sky Digital Keyset",
231       Motorola_Make,
232       index)
233 {
234 }
235
236
237 void MotorolaSkyDigital::populateProtocol(
238   QObject *guiObject)
239 {
240   if (threadableProtocol)
241   {
242     // Keyset already populated.
243     return;
244   }
245
246   threadableProtocol = new NECProtocol(guiObject, index, true, true);
247
248   setPreData(0x2F86, 16);
249
250   addKey("chandown", ChannelDown_Key, 0x01, 8);
251   addKey("1", One_Key, 0x02, 8);
252   addKey("yellow", Yellow_Key, 0x04, 8);
253   addKey("chanup", ChannelUp_Key, 0x07, 8);
254   addKey("blue", Blue_Key, 0x09, 8);
255   addKey("mute", Mute_Key, 0x0A, 8);
256   addKey("3", Three_Key, 0x0C, 8);
257   addKey("8", Eight_Key, 0x0D, 8);
258   addKey("0", Zero_Key, 0x0E, 8);
259
260   addKey("ok", Select_Key, 0x10, 8);
261   addKey("volup", VolumeUp_Key, 0x12, 8);
262   addKey("2", Two_Key, 0x13, 8);
263   addKey("5", Five_Key, 0x14, 8);
264   addKey("plus", Unmapped_Key, 0x15, 8);
265   addKey("4", Four_Key, 0x16, 8);
266   addKey("6", Six_Key, 0x17, 8);
267   addKey("7", Seven_Key, 0x18, 8);
268   addKey("9", Nine_Key, 0x19, 8);
269   addKey("power", Power_Key, 0x1A, 8);
270   addKey("voldown", VolumeDown_Key, 0x1B, 8);
271   addKey("green", Green_Key, 0x1E, 8);
272   addKey("red", Red_Key, 0x1F, 8);
273
274   addKey("tv", Input_Key, 0x82, 8);
275   addKey("left", Left_Key, 0x88, 8);
276   addKey("back", Exit_Key, 0x89, 8);
277   addKey("up", Up_Key, 0x8B, 8);
278   addKey("question", Unmapped_Key, 0x8F, 8);
279
280   addKey("down", Down_Key, 0x91, 8);
281   addKey("interactive", Unmapped_Key, 0x93, 8);
282   addKey("guide", Guide_Key, 0x9C, 8);
283   addKey("right", Right_Key, 0x9D, 8);
284 }