Memory Management Improved
[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-", PageDown_Key, 0x203B, 16);
143   addKey("skipback", Replay_Key, 0x103C, 16);
144   addKey("mydvr", HDDInput_Key, 0x003D, 16);
145   addKey("live", LiveTV_Key, 0xF03E, 16);
146   addKey("next", Advance_Key, 0xE03F, 16);
147
148   addKey("hdzoom_enter", AspectRatio_Key, 0xC040, 16);
149
150   addKey("red", Red_Key, 0xC06E, 16);
151   addKey("green", Green_Key, 0xB06F, 16);
152   addKey("yelow", Yellow_Key, 0x9070, 16);
153   addKey("blue", Blue_Key, 0x8071, 16);
154   addKey("grey", Unmapped_Key, 0x7072, 16);
155
156   addKey("back", Unmapped_Key, 0x649D, 16);
157
158   addKey("exit", Unmapped_Key, 0x60FB, 16); // separate keyset?
159 }
160
161
162 MotorolaSTB1a::MotorolaSTB1a(
163   unsigned int index)
164   : MotorolaSTB1(index)
165 {
166   setKeysetName("STB Keyset 1a");
167 }
168
169
170 void MotorolaSTB1a::populateProtocol(
171   QObject *guiObject)
172 {
173   if (threadableProtocol)
174   {
175     // Already populated.
176     return;
177   }
178
179   MotorolaSTB1::populateProtocol(guiObject);
180
181   addKey("a_lock", Unmapped_Key, 0x9016, 16);
182   addKey("ppv", Unmapped_Key, 0x7018, 16);
183   addKey("vod", Unmapped_Key, 0x501A, 16);
184   addKey("play", Play_Key, 0x401B, 16);
185   addKey("stop", Stop_Key, 0x301C, 16);
186
187   addKey("c_day+", Unmapped_Key, 0x5038, 16);
188   addKey("b_day-", Unmapped_Key, 0x4039, 16);
189 }
190
191
192 MotorolaSTB1b::MotorolaSTB1b(
193   unsigned int index)
194   : MotorolaSTB1(index)
195 {
196   setKeysetName("STB Keyset 1b");
197 }
198
199
200 void MotorolaSTB1b::populateProtocol(
201   QObject *guiObject)
202 {
203   if (threadableProtocol)
204   {
205     // Already populated.
206     return;
207   }
208
209   MotorolaSTB1::populateProtocol(guiObject);
210
211   addKey("yellow", Yellow_Key, 0x8017, 16);
212   addKey("ondemand", Unmapped_Key, 0x501A, 16);
213   addKey("stop", Stop_Key, 0x301C, 16);
214   addKey("play-pause", Play_Key, 0x001F, 16);
215   addKey("play-pause", Pause_Key, 0x001F, 16);
216   addKey("blue", Blue_Key, 0x7027, 16);
217   addKey("red", Red_Key, 0x6028, 16);
218   addKey("green", Green_Key, 0x5029, 16);
219   addKey("#", Unmapped_Key, 0xC040, 16);
220   addKey("widgets", Unmapped_Key, 0x9043, 16);
221   addKey("*", Unmapped_Key, 0x8044, 16);
222 }
223
224
225 MotorolaSkyDigital::MotorolaSkyDigital(
226   unsigned int index)
227   : PIRKeysetMetaData(
228       "Sky Digital Keyset",
229       Motorola_Make,
230       index)
231 {
232 }
233
234
235 void MotorolaSkyDigital::populateProtocol(
236   QObject *guiObject)
237 {
238   if (threadableProtocol)
239   {
240     // Keyset already populated.
241     return;
242   }
243
244   threadableProtocol = new NECProtocol(guiObject, index, true, true);
245
246   setPreData(0x2F86, 16);
247
248   addKey("chandown", ChannelDown_Key, 0x01, 8);
249   addKey("1", One_Key, 0x02, 8);
250   addKey("yellow", Yellow_Key, 0x04, 8);
251   addKey("chanup", ChannelUp_Key, 0x07, 8);
252   addKey("blue", Blue_Key, 0x09, 8);
253   addKey("mute", Mute_Key, 0x0A, 8);
254   addKey("3", Three_Key, 0x0C, 8);
255   addKey("8", Eight_Key, 0x0D, 8);
256   addKey("0", Zero_Key, 0x0E, 8);
257
258   addKey("ok", Select_Key, 0x10, 8);
259   addKey("volup", VolumeUp_Key, 0x12, 8);
260   addKey("2", Two_Key, 0x13, 8);
261   addKey("5", Five_Key, 0x14, 8);
262   addKey("plus", Unmapped_Key, 0x15, 8);
263   addKey("4", Four_Key, 0x16, 8);
264   addKey("6", Six_Key, 0x17, 8);
265   addKey("7", Seven_Key, 0x18, 8);
266   addKey("9", Nine_Key, 0x19, 8);
267   addKey("power", Power_Key, 0x1A, 8);
268   addKey("voldown", VolumeDown_Key, 0x1B, 8);
269   addKey("green", Green_Key, 0x1E, 8);
270   addKey("red", Red_Key, 0x1F, 8);
271
272   addKey("tv", Input_Key, 0x82, 8);
273   addKey("left", Left_Key, 0x88, 8);
274   addKey("back", Exit_Key, 0x89, 8);
275   addKey("up", Up_Key, 0x8B, 8);
276   addKey("question", Unmapped_Key, 0x8F, 8);
277
278   addKey("down", Down_Key, 0x91, 8);
279   addKey("interactive", Unmapped_Key, 0x93, 8);
280   addKey("guide", Guide_Key, 0x9C, 8);
281   addKey("right", Right_Key, 0x9D, 8);
282 }