4805e535dd095ce3322aed585b11d65e8e3f9bf1
[pierogi] / keysets / sony.cpp
1 #include "sony.h"
2 #include "protocols/sircprotocol.h"
3
4
5 SonyTV1::SonyTV1(
6   QObject *guiObject,
7   unsigned int index)
8   : PIRKeysetMetaData(
9       "TV Keyset 1",
10       Sony_Make,
11       index)
12 {
13   addControlledDevice(Sony_Make, "KV-M1420D", TV_Device);
14   addControlledDevice(Sony_Make, "KV-20FV10", TV_Device);
15   addControlledDevice(Sony_Make, "KV-2184MT", TV_Device);
16   addControlledDevice(Sony_Make, "KV-27FX210", TV_Device);
17   addControlledDevice(Sony_Make, "KV-32FS210", TV_Device);
18   addControlledDevice(Sony_Make, "KV-36FS210", TV_Device);
19   addControlledDevice(Sony_Make, "KV-36FS13", TV_Device);
20   addControlledDevice(Sony_Make, "KDL-23B4030", TV_Device);
21   addControlledDevice(Sony_Make, "KDL-52X2000", TV_Device);
22   addControlledDevice(Sony_Make, "KDL-46X2000", TV_Device);
23   addControlledDevice(Sony_Make, "KDL-40X2000", TV_Device);
24   addControlledDevice(Sony_Make, "KP-46WT520", TV_Device);
25
26   threadableProtocol = new SIRCProtocol(guiObject, index);
27
28   addSIRC12Key("1", One_Key, 0x01, 0x0);
29   addSIRC12Key("2", Two_Key, 0x01, 0x1);
30   addSIRC12Key("3", Three_Key, 0x01, 0x2);
31   addSIRC12Key("4", Four_Key, 0x01, 0x3);
32   addSIRC12Key("5", Five_Key, 0x01, 0x4);
33   addSIRC12Key("6", Six_Key, 0x01, 0x5);
34   addSIRC12Key("7", Seven_Key, 0x01, 0x6);
35   addSIRC12Key("8", Eight_Key, 0x01, 0x7);
36   addSIRC12Key("9", Nine_Key, 0x01, 0x8);
37   addSIRC12Key("0", Zero_Key, 0x01, 0x9);
38   addSIRC12Key("enter", Enter_Key, 0x01, 0x0B);
39   addSIRC12Key("1-", Unmapped_Key, 0x01, 0x0C);
40   addSIRC12Key("2-", Unmapped_Key, 0x01, 0x0D);
41   addSIRC12Key("C", Clear_Key, 0x01, 0x0E); // "C00"
42   addSIRC12Key("CHANNEL/PAGE+", ChannelUp_Key, 0x01, 0x10);
43   addSIRC12Key("CHANNEL/PAGE-", ChannelDown_Key, 0x01, 0x11);
44   addSIRC12Key("VOLUME+", VolumeUp_Key, 0x01, 0x12);
45   addSIRC12Key("VOLUME-", VolumeDown_Key, 0x01, 0x13);
46   addSIRC12Key("MUTE", Mute_Key, 0x01, 0x14);
47   addSIRC12Key("POWER", Power_Key, 0x01, 0x15);
48   addSIRC12Key("normalise", Reset_Key, 0x01, 0x16); // "reset"
49   addSIRC12Key("a/b", Audio_Key, 0x01, 0x17); // "mts", "sap", "language"
50   addSIRC12Key("picture_up", ContrastUp_Key, 0x01, 0x18); // "Contrast Up"
51   addSIRC12Key("picture_down", ContrastDown_Key, 0x1, 0x19); // "Contrast Down"
52   addSIRC12Key("-/--", DoubleDigit_Key, 0x01, 0x1D);
53   addSIRC12Key("tv/video", Input_Key, 0x01, 0x25);
54   addSIRC12Key("bucket", Unmapped_Key, 0x01, 0x28);
55   addSIRC12Key("stereo", Surround_Key, 0x01, 0x29);
56   addSIRC12Key("ANT", AntennaInput_Key, 0x01, 0x2A);
57   addSIRC12Key("time", Clock_Key, 0x01, 0x2B);
58   addSIRC12Key("timer/block", Timer_Key, 0x01, 0x30);
59   addSIRC12Key("right", Right_Key, 0x01, 0x33);
60   addSIRC12Key("left", Left_Key, 0x01, 0x34);
61   addSIRC12Key("sleep", Sleep_Key, 0x01, 0x36);
62   addSIRC12Key("TV-RETURN", Unmapped_Key, 0x01, 0x38); // "analog"
63   addSIRC12Key("?/INFO", Info_Key, 0x01, 0x3A); // Teletext Index
64   addSIRC12Key("prev_ch", PrevChannel_Key, 0x01, 0x3B); // "jump"
65   addSIRC12Key("off/repeat", Repeat_Key, 0x01, 0x3C);
66   addSIRC12Key("TELETXT", Teletext_Key, 0x01, 0x3F);
67   addSIRC12Key("favourite", Unmapped_Key, 0x01, 0x4A); // separate keyset?
68   addSIRC12Key("cable", CableInput_Key, 0x01, 0x4E);
69   addSIRC12Key("Sat", SatInput_Key, 0x01, 0x51);
70   addSIRC12Key("pip_ch+", PIPChannelUp_Key, 0x01, 0x58);
71   addSIRC12Key("pip_ch-", PIPChannelDown_Key, 0x01, 0x59);
72   addSIRC12Key("piptv_video", PIPSource_Key, 0x01, 0x5A);
73   addSIRC12Key("PIP", PIP_Key, 0x01, 0x5B);
74   addSIRC12Key("pipfreeze", PIPPause_Key, 0x01, 0x5C);
75   addSIRC12Key("PIP_POSITION", PIPMove_Key, 0x01, 0x5E);
76   addSIRC12Key("PIP_SWAP", PIPSwap_Key, 0x01, 0x5F);
77   addSIRC12Key("MENU", Menu_Key, 0x01, 0x60);
78   addSIRC12Key("Settup_V", Unmapped_Key, 0x01, 0x61); // alternate pic mode
79   addSIRC12Key("Settup_A", Unmapped_Key, 0x01, 0x62); // alternate sound mode
80   addSIRC12Key("EXIT", Exit_Key, 0x01, 0x63);
81   addSIRC12Key("picturemode", PictureMode_Key, 0x01, 0x64);
82   addSIRC12Key("OK", Select_Key, 0x01, 0x65); // "return", "select", "enter"
83   addSIRC12Key("output", Unmapped_Key, 0x01, 0x66);
84   addSIRC12Key("PIP_SOURCE", Unmapped_Key, 0x01, 0x67); // separate keyset?
85   addSIRC12Key("asterisk", Unmapped_Key, 0x01, 0x68); // "TV System"
86   addSIRC12Key("auto_program", Unmapped_Key, 0x01, 0x6B);
87   addSIRC12Key("setup", Program_Key, 0x01, 0x6C);
88   addSIRC12Key("tune_down", Unmapped_Key, 0x01, 0x6F); // "search -"
89   addSIRC12Key("tune_up", Unmapped_Key, 0x01, 0x6E); // "search +"
90   addSIRC12Key("up", Up_Key, 0x01, 0x74);
91   addSIRC12Key("down", Down_Key, 0x01, 0x75);
92   addSIRC12Key("diamond", Unmapped_Key, 0x01, 0x78); // "add"
93   addSIRC12Key("erase", Unmapped_Key, 0x01, 0x79);
94   addSIRC12Key("select", Unmapped_Key, 0x01, 0x7C); // PictureMode_Key?
95
96   addSIRC12Key("vt_inf", TeletextIndex_Key, 0x03, 0x48); // "Teletext Home"
97   addSIRC12Key("expand", TeletextSize_Key, 0x03, 0x49);
98   addSIRC12Key("Teletext Hold", TeletextHold_Key, 0x03, 0x4A); // "shrink"
99   addSIRC12Key("subtitles", Unmapped_Key, 0x03, 0x4B); // Teletext subtitles
100   addSIRC12Key("LEFT/-/RED", Red_Key, 0x03, 0x4C);
101   addSIRC12Key("UP/GREEN", Green_Key, 0x03, 0x4D);
102   addSIRC12Key("RIGHT/+/YELLOW", Yellow_Key, 0x03, 0x4E);
103   addSIRC12Key("DOWN/BLUE", Blue_Key, 0x03, 0x4F);
104
105   addSIRC15Key("SYNC_MENU", Unmapped_Key, 0x1A, 0x58);
106   addSIRC15Key("SCENE", Unmapped_Key, 0x1A, 0x78);
107   addSIRC15Key("INTERNET_VIDEO", Unmapped_Key, 0x1A, 0x79);
108   addSIRC15Key("I-MANUAL", Unmapped_Key, 0x1A, 0x7B);
109
110   addSIRC15Key("DIGITAL_ANALOG", Unmapped_Key, 0x77, 0x0D);
111   addSIRC15Key("DIGITAL", Unmapped_Key, 0x77, 0x52);
112   addSIRC15Key("theatre", Unmapped_Key, 0x77, 0x60); // "Home Theater"
113   addSIRC15Key("FAVORITES", Favorites_Key, 0x77, 0x76);
114
115   addSIRC15Key("STOP", Stop_Key, 0x97, 0x18);
116   addSIRC15Key("PAUSE", Pause_Key, 0x97, 0x19);
117   addSIRC15Key("PLAY", Play_Key, 0x97, 0x1A);
118   addSIRC15Key("FBACKWARD", Rewind_Key, 0x97, 0x1B);
119   addSIRC15Key("FFORWARD", FastForward_Key, 0x97, 0x1C);
120   addSIRC15Key("DOT", Unmapped_Key, 0x97, 0x1D);
121   addSIRC15Key("RETURN", Unmapped_Key, 0x97, 0x23); // exit?
122   addSIRC15Key("TOOLS", Unmapped_Key, 0x97, 0x36); // "OPTIONS"
123   addSIRC15Key("PREVIOUS", Previous_Key, 0x97, 0x3C);
124   addSIRC15Key("NEXT", Next_Key, 0x97, 0x3D);
125   addSIRC15Key("REPLAY", Replay_Key, 0x97, 0x79);
126   addSIRC15Key("ADVANCE", Advance_Key, 0x97, 0x78);
127   addSIRC15Key("SOUND", Unmapped_Key, 0x97, 0x7B);
128
129   addSIRC15Key("Surround_Mode", Unmapped_Key, 0xA4, 0x1F); // "Music"
130   addSIRC15Key("16:9", AspectRatio_Key, 0xA4, 0x3D); // "WIDE"
131   addSIRC15Key("EPG", Guide_Key, 0xA4, 0x5B);
132   addSIRC15Key("PIP_Audio", Unmapped_Key, 0xA4, 0x7C);
133 }
134
135
136 SonyTV1a::SonyTV1a(
137   QObject *guiObject,
138   unsigned int index)
139   : SonyTV1(guiObject, index)
140 {
141   setKeysetName("TV Keyset 1a");
142
143   addControlledDevice(Sony_Make, "KDW-25", TV_Device);
144
145   addSIRC12Key("LEFT/-/RED", Left_Key, 0x03, 0x4C);
146   addSIRC12Key("UP/GREEN", Up_Key, 0x03, 0x4D);
147   addSIRC12Key("RIGHT/+/YELLOW", Right_Key, 0x03, 0x4E);
148   addSIRC12Key("DOWN/BLUE", Down_Key, 0x03, 0x4F);
149 }
150
151
152 SonyTV1b::SonyTV1b(
153   QObject *guiObject,
154   unsigned int index)
155   : SonyTV1a(guiObject, index)
156 {
157   setKeysetName("TV Keyset 1b");
158
159   addSIRC12Key("clear", Unmapped_Key, 0x01, 0x34); // "Clock Clear"
160   addSIRC12Key("level_plus", Unmapped_Key, 0x01, 0x74);
161   addSIRC12Key("level_minus", Unmapped_Key, 0x01, 0x75);
162   addSIRC12Key("am/pm", Unmapped_Key, 0x01, 0x33);
163 }
164
165
166 // Not sure about these codes:
167 SonyTV1c::SonyTV1c(
168   QObject *guiObject,
169   unsigned int index)
170   : SonyTV1(guiObject, index)
171 {
172   setKeysetName("TV Keyset 1c");
173
174   addSIRC12Key(">>", FastForward_Key, 0x01, 0x58);
175   addSIRC12Key("<<", Rewind_Key, 0x01, 0x59);
176   addSIRC12Key("rec", Record_Key, 0x01, 0x5A);
177   addSIRC12Key("pause", Pause_Key, 0x01, 0x5C);
178   addSIRC12Key("stop", Stop_Key, 0x01, 0x5E);
179   addSIRC12Key("play", Play_Key, 0x01, 0x5F);
180
181   addSIRC15Key("BLUE", Blue_Key, 0x97, 0x24);
182   addSIRC15Key("RED", Red_Key, 0x97, 0x25);
183   addSIRC15Key("GREEN", Green_Key, 0x97, 0x26);
184   addSIRC15Key("YELLOW", Yellow_Key, 0x97, 0x27);
185   addSIRC15Key("SUBTITLES", Captions_Key, 0x97, 0x28);
186 }
187
188
189 // These controls don't quite match other SIRC data.  (some do, some don't)
190 // This all taken from LIRC "AMPIR" config file.
191 SonyAmp1::SonyAmp1(
192   QObject *guiObject,
193   unsigned int index)
194   : PIRKeysetMetaData(
195       "Amp Keyset 1",
196       Sony_Make,
197       index)
198 {
199   threadableProtocol = new SIRCProtocol(guiObject, index);
200
201   addSIRC12Key("1", One_Key, 0x0C, 0x00);
202   addSIRC12Key("2", Two_Key, 0x0C, 0x01);
203   addSIRC12Key("3", Three_Key, 0x0C, 0x02);
204   addSIRC12Key("4", Four_Key, 0x0C, 0x03);
205   addSIRC12Key("5", Five_Key, 0x0C, 0x04);
206   addSIRC12Key("6", Six_Key, 0x0C, 0x05);
207   addSIRC12Key("7", Seven_Key, 0x0C, 0x06);
208   addSIRC12Key("8", Eight_Key, 0x0C, 0x07);
209   addSIRC12Key("9", Nine_Key, 0x0C, 0x08);
210   addSIRC12Key("0", Zero_Key, 0x0C, 0x09);
211   addSIRC12Key("ENTER", Enter_Key, 0x0C, 0x0B);
212   addSIRC12Key("DIGITAL", Unmapped_Key, 0x0C, 0x0C);
213   addSIRC12Key("VIDEO3", Unmapped_Key, 0x0C, 0x0A);
214   addSIRC12Key("VIDEO4", Unmapped_Key, 0x0C, 0x0B);
215   addSIRC12Key("VOL+", VolumeUp_Key, 0x0C, 0x12);
216   addSIRC12Key("VOL-", VolumeDown_Key, 0x0C, 0x13);
217   addSIRC12Key("MUTE", Mute_Key, 0x0C, 0x14);
218   addSIRC12Key("POWER", Power_Key, 0x0C, 0x15);
219   addSIRC12Key("LD", LDInput_Key, 0x0C, 0x19);
220   addSIRC12Key("TV", CableInput_Key, 0x0C, 0x18);
221   addSIRC12Key("VIDEO2", Unmapped_Key, 0x0C, 0x1E);
222   addSIRC12Key("PHONO", PhonoInput_Key, 0x0C, 0x20);
223   addSIRC12Key("TUNER", TunerInput_Key, 0x0C, 0x21);
224   addSIRC12Key("VIDEO1", Unmapped_Key, 0x0C, 0x22);
225   addSIRC12Key("TAPE", TapeInput_Key, 0x0C, 0x23);
226   addSIRC12Key("CD", CDInput_Key, 0x0C, 0x25);
227   addSIRC12Key("DAT", Unmapped_Key, 0x0C, 0x46);
228   addSIRC12Key("SLEEP", Sleep_Key, 0x0C, 0x60);
229   addSIRC12Key("MD", MDInput_Key, 0x0C, 0x69);
230   addSIRC12Key("TV2", Unmapped_Key, 0x0C, 0x6A);
231   addSIRC12Key("5.1CH", Unmapped_Key, 0x0C, 0x72);
232   addSIRC12Key("DVD", DVDInput_Key, 0x0C, 0x7D);
233 }
234
235
236 // These taken from LIRC config file "RM-AV2100T".
237 SonyAmp2::SonyAmp2(
238   QObject *guiObject,
239   unsigned int index)
240   : PIRKeysetMetaData(
241       "Amp Keyset 2",
242       Sony_Make,
243       index)
244 {
245   threadableProtocol = new SIRCProtocol(guiObject, index);
246
247   addSIRC12Key("up", Up_Key, 0x0C, 0x78);
248   addSIRC12Key("down", Down_Key, 0x0C, 0x79);
249   addSIRC12Key("left", Left_Key, 0x0C, 0x7A);
250   addSIRC12Key("right", Right_Key, 0x0C, 0x7B);
251
252   addSIRC12Key("program_+", ChannelUp_Key, 0x0D, 0x10);
253   addSIRC12Key("program_-", ChannelDown_Key, 0x0D, 0x11);
254   addSIRC12Key("shift", Unmapped_Key, 0x0D, 0x55);
255
256   addSIRC12Key("1", One_Key, 0x10, 0x00);
257   addSIRC12Key("2", Two_Key, 0x10, 0x01);
258   addSIRC12Key("3", Three_Key, 0x10, 0x02);
259   addSIRC12Key("4", Four_Key, 0x10, 0x03);
260   addSIRC12Key("5", Five_Key, 0x10, 0x04);
261   addSIRC12Key("6", Six_Key, 0x10, 0x05);
262   addSIRC12Key("7", Seven_Key, 0x10, 0x06);
263   addSIRC12Key("8", Eight_Key, 0x10, 0x07);
264   addSIRC12Key("9", Nine_Key, 0x10, 0x08);
265   addSIRC12Key("0", Zero_Key, 0x10, 0x09);
266   addSIRC12Key("enter", Enter_Key, 0x10, 0x0C);
267   addSIRC12Key("vol_+", VolumeUp_Key, 0x10, 0x12);
268   addSIRC12Key("vol_-", VolumeDown_Key, 0x10, 0x13);
269   addSIRC12Key("mute", Mute_Key, 0x10, 0x14);
270   addSIRC12Key("power", Power_Key, 0x10, 0x15);
271   addSIRC12Key("aux/vdp", AuxInput_Key, 0x10, 0x1D);
272   addSIRC12Key("video2", Unmapped_Key, 0x10, 0x1E);
273   addSIRC12Key("phono", PhonoInput_Key, 0x10, 0x20);
274   addSIRC12Key("tuner", TunerInput_Key, 0x10, 0x21);
275   addSIRC12Key("video1", Unmapped_Key, 0x10, 0x22);
276   addSIRC12Key("tape", TapeInput_Key, 0x10, 0x23);
277   addSIRC12Key("cd", CDInput_Key, 0x10, 0x25);
278   addSIRC12Key("power_on", PowerOn_Key, 0x10, 0x2E);
279   addSIRC12Key("video3", Unmapped_Key, 0x10, 0x42);
280   addSIRC12Key("tv", CableInput_Key, 0x10, 0x6A);
281   addSIRC12Key("dvd", DVDInput_Key, 0x10, 0x7D);
282
283   addSIRC15Key("md/dat", MDInput_Key, 0x10, 0x69);
284 }
285
286
287 SonyAudio1::SonyAudio1(
288   QObject *guiObject,
289   unsigned int index)
290   : PIRKeysetMetaData(
291       "Audio Keyset 1",
292       Sony_Make,
293       index)
294 {
295   threadableProtocol = new SIRCProtocol(guiObject, index);
296
297   addSIRC12Key("tv_video", Input_Key, 0x01, 0x25);
298
299   addSIRC12Key("DSG", Unmapped_Key, 0x0C, 0x31);
300
301   addSIRC12Key("MEMORY", Program_Key, 0x0D, 0x0E);
302   addSIRC12Key("TUNER-BAND", TunerBand_Key, 0x0D, 0x0F);
303   addSIRC12Key("TUNING_MODE", Unmapped_Key, 0x0D, 0x17);
304   addSIRC12Key("STEREO-MONO", FMMode_Key, 0x0D, 0x21);
305
306   addSIRC12Key("DIR_MODE", Unmapped_Key, 0x0E, 0x14);
307   addSIRC12Key("REC", Record_Key, 0x0E, 0x1E);
308   addSIRC12Key("TAPE", TapeInput_Key, 0x0E, 0x34);
309
310   addSIRC12Key("tuner", TunerInput_Key, 0x10, 0x0F); // "Tune Up"
311   addSIRC12Key("VOL+", VolumeUp_Key, 0x10, 0x12);
312   addSIRC12Key("VOL-", VolumeDown_Key, 0x10, 0x13);
313   addSIRC12Key("ON-OFF", Power_Key, 0x10, 0x15);
314   addSIRC12Key("effect_on_off", Unmapped_Key, 0x10, 0x1F);
315   addSIRC12Key("cd", CDInput_Key, 0x10, 0x25);
316   addSIRC12Key("DISPLAY", Info_Key, 0x10, 0x4B);
317   addSIRC12Key("dimmer", Unmapped_Key, 0x10, 0x4D);
318   addSIRC12Key("karaoke_mpx", Unmapped_Key, 0x10, 0x5F);
319   addSIRC12Key("SLEEP", Sleep_Key, 0x10, 0x60);
320   addSIRC12Key("TIMER_SELECT", Unmapped_Key, 0x10, 0x62); // "clock_select"
321   addSIRC12Key("TIMER_SET", Timer_Key, 0x10, 0x65);
322   addSIRC12Key("md", Unmapped_Key, 0x10, 0x69);
323   addSIRC12Key("game", Unmapped_Key, 0x10, 0x7C);
324
325   addSIRC12Key("CD_REPEAT", Repeat_Key, 0x11, 0x2C);
326   addSIRC12Key("CD", Unmapped_Key, 0x11, 0x32);
327   addSIRC12Key("PLAY_MODE", Unmapped_Key, 0x11, 0x6C);
328
329   addSIRC15Key("cinema_effect", Unmapped_Key, 0x90, 0x08);
330   addSIRC15Key("game_mixing", Unmapped_Key, 0x90, 0x33);
331   addSIRC15Key("spectrum", Unmapped_Key, 0x90, 0x34);
332   addSIRC15Key("p_file", Unmapped_Key, 0x90, 0x39);
333   addSIRC15Key("surround_speaker_mode", Surround_Key, 0x90, 0x5F);
334   addSIRC15Key("music_eq", Unmapped_Key, 0x90, 0x60);
335   addSIRC15Key("movie_eq", Unmapped_Key, 0x90, 0x61);
336   addSIRC15Key("game_eq", Unmapped_Key, 0x90, 0x62);
337
338   addSIRC20Key("return", Exit_Key, 0x31, 0x1A, 0x0E);
339   addSIRC20Key("prev_r", Unmapped_Key, 0x31, 0x1A, 0x36);
340   addSIRC20Key("next_r", Unmapped_Key, 0x31, 0x1A, 0x37);
341   addSIRC20Key("special_menu", Menu_Key, 0x31, 0x1A, 0x53);
342   addSIRC20Key("on_screen", Unmapped_Key, 0x31, 0x1A, 0x55);
343   addSIRC20Key("sharp", Unmapped_Key, 0x31, 0x1A, 0x6B);
344   addSIRC20Key("flat", Unmapped_Key, 0x31, 0x1A, 0x6C);
345   addSIRC20Key("album-", Unmapped_Key, 0x31, 0x1A, 0x6E);
346   addSIRC20Key("album+", Unmapped_Key, 0x31, 0x1A, 0x6F);
347
348   addSIRC20Key("1", One_Key, 0x39, 0x1A, 0x00);
349   addSIRC20Key("2", Two_Key, 0x39, 0x1A, 0x01);
350   addSIRC20Key("3", Three_Key, 0x39, 0x1A, 0x02);
351   addSIRC20Key("4", Four_Key, 0x39, 0x1A, 0x03);
352   addSIRC20Key("5", Five_Key, 0x39, 0x1A, 0x04);
353   addSIRC20Key("6", Six_Key, 0x39, 0x1A, 0x05);
354   addSIRC20Key("7", Seven_Key, 0x39, 0x1A, 0x06);
355   addSIRC20Key("8", Eight_Key, 0x39, 0x1A, 0x07);
356   addSIRC20Key("9", Nine_Key, 0x39, 0x1A, 0x08);
357   addSIRC20Key("0", Zero_Key, 0x39, 0x1A, 0x09);
358   addSIRC20Key("KEY_ENTER", Enter_Key, 0x39, 0x1A, 0x0C);
359   addSIRC20Key("gt_10", DoubleDigit_Key, 0x39, 0x1A, 0x0D);
360   addSIRC20Key("clear", Clear_Key, 0x39, 0x1A, 0x0F);
361   addSIRC20Key("repeat", Repeat_Key, 0x39, 0x1A, 0x2C);
362   addSIRC20Key("KEY_PREV_SONG", Previous_Key, 0x39, 0x1A, 0x30);
363   addSIRC20Key("KEY_NEXT_SONG", Next_Key, 0x39, 0x1A, 0x31);
364   addSIRC20Key("KEY_PREV", Rewind_Key, 0x39, 0x1A, 0x33); // "Rewind"
365   addSIRC20Key("KEY_NEXT", FastForward_Key, 0x39, 0x1A, 0x34); // "Fast Forward"
366   addSIRC20Key("KEY_STOP", Stop_Key, 0x39, 0x1A, 0x38);
367   addSIRC20Key("KEY_PAUSE", Pause_Key, 0x39, 0x1A, 0x39);
368   addSIRC20Key("d_skip", NextDisc_Key, 0x39, 0x1A, 0x3E);
369   addSIRC20Key("up", Up_Key, 0x39, 0x1A, 0x78);
370   addSIRC20Key("down", Down_Key, 0x39, 0x1A, 0x79);
371   addSIRC20Key("left", Left_Key, 0x39, 0x1A, 0x7A);
372   addSIRC20Key("right", Right_Key, 0x39, 0x1A, 0x7B);
373   addSIRC20Key("Select", Select_Key, 0x39, 0x1A, 0x7C);
374 }
375
376
377 SonyAudio1a::SonyAudio1a(
378   QObject *guiObject,
379   unsigned int index)
380   : SonyAudio1(guiObject, index)
381 {
382   setKeysetName("Audio Keyset 1a");
383
384   addSIRC12Key("tape", TapeInput_Key, 0x10, 0x23);
385
386 //  addSIRC20Key("select", Select_Key, 0x39, 0x1A, 0x32); // Doesn't make sense
387   addSIRC20Key("play", Play_Key, 0x39, 0x1A, 0x32);
388   addSIRC20Key("play_mode", Unmapped_Key, 0x39, 0x1A, 0x26);
389   addSIRC20Key("enter", Select_Key, 0x39, 0x1A, 0x7C);
390 }
391
392
393 SonyDAT1::SonyDAT1(
394   QObject *guiObject,
395   unsigned int index)
396   : PIRKeysetMetaData(
397       "DAT Keyset 1",
398       Sony_Make,
399       index)
400 {
401   threadableProtocol = new SIRCProtocol(guiObject, index);
402
403   setPostData(0x07, 5);
404
405   addSIRC12Key("1", One_Key, 0x1C, 0x00);
406   addSIRC12Key("2", Two_Key, 0x1C, 0x01);
407   addSIRC12Key("3", Three_Key, 0x1C, 0x02);
408   addSIRC12Key("4", Four_Key, 0x1C, 0x03); 
409   addSIRC12Key("5", Five_Key, 0x1C, 0x04);
410   addSIRC12Key("6", Six_Key, 0x1C, 0x05);
411   addSIRC12Key("7", Seven_Key, 0x1C, 0x06);
412   addSIRC12Key("8", Eight_Key, 0x1C, 0x07);
413   addSIRC12Key("9", Nine_Key, 0x1C, 0x08);
414   addSIRC12Key("0", Zero_Key, 0x1C, 0x14);
415   addSIRC12Key("PLAY", Play_Key, 0x1C, 0x3A);
416   addSIRC12Key("PAUSE", Pause_Key, 0x1C, 0x39);
417   addSIRC12Key("STOP", Stop_Key, 0x1C, 0x38);
418   addSIRC12Key("<<", Rewind_Key, 0x1C, 0x3B);
419   addSIRC12Key(">>", FastForward_Key, 0x1C, 0x3C);
420   addSIRC12Key("|<<", Previous_Key, 0x1C, 0x68);
421   addSIRC12Key(">>|", Next_Key, 0x1C, 0x69);
422   addSIRC12Key("RECORD", Record_Key, 0x1C, 0x3E);
423   addSIRC12Key("Open/Close", Eject_Key, 0x1C, 0x20);
424
425   // The following commands are dubious:
426   addSIRC12Key("VOL+", VolumeUp_Key, 0x1C, 0x12);
427   addSIRC12Key("VOL-", VolumeDown_Key, 0x1C, 0x13);
428   addSIRC12Key("POWER_ON", PowerOn_Key, 0x1C, 0x2E);
429   addSIRC12Key("POWER_OFF", PowerOff_Key, 0x1C, 0x2F);
430   addSIRC12Key("MUTE", Mute_Key, 0x1C, 0x14); // Makes no sense...
431   addSIRC12Key("POWER", Power_Key, 0x1C, 0x15);
432   addSIRC12Key("ENTER", Enter_Key, 0x1C, 0x0B);
433 }
434
435
436 SonyDVD1::SonyDVD1(
437   QObject *guiObject,
438   unsigned int index)
439   : PIRKeysetMetaData(
440       "DVD Keyset 1",
441       Sony_Make,
442       index)
443 {
444   threadableProtocol = new SIRCProtocol(guiObject, index);
445
446   addSIRC20Key("1", One_Key, 0x49, 0x1A, 0x00);
447   addSIRC20Key("2", Two_Key, 0x49, 0x1A, 0x01);
448   addSIRC20Key("3", Three_Key, 0x49, 0x1A, 0x02);
449   addSIRC20Key("4", Four_Key, 0x49, 0x1A, 0x03);
450   addSIRC20Key("5", Five_Key, 0x49, 0x1A, 0x04);
451   addSIRC20Key("6", Six_Key, 0x49, 0x1A, 0x05);
452   addSIRC20Key("7", Seven_Key, 0x49, 0x1A, 0x06);
453   addSIRC20Key("8", Eight_Key, 0x49, 0x1A, 0x07);
454   addSIRC20Key("9", Nine_Key, 0x49, 0x1A, 0x08);
455   addSIRC20Key("0", Zero_Key, 0x49, 0x1A, 0x09);
456   addSIRC20Key("select", Select_Key, 0x49, 0x1A, 0x0B); //"Enter"
457   addSIRC20Key("Disc Explorer", Unmapped_Key, 0x49, 0x1A, 0x0C);
458   addSIRC20Key("Ent", Enter_Key, 0x49, 0x1A, 0x0D); // "Set"
459   addSIRC20Key("return", Exit_Key, 0x49, 0x1A, 0x0E);
460   addSIRC20Key("CLEAR", Clear_Key, 0x49, 0x1A, 0x0F);
461   addSIRC20Key("-/--", DoubleDigit_Key, 0x49, 0x1A, 0x0F);
462
463   addSIRC20Key("Input", Input_Key, 0x49, 0x1A, 0x12);
464   addSIRC20Key("prog+", ChannelUp_Key, 0x49, 0x1A, 0x13);
465   addSIRC20Key("prog-", ChannelDown_Key, 0x49, 0x1A, 0x14);
466   addSIRC20Key("power", Power_Key, 0x49, 0x1A, 0x15);
467   addSIRC20Key("open/close", Eject_Key, 0x49, 0x1A, 0x16);
468   addSIRC20Key("rec", Record_Key, 0x49, 0x1A, 0x19);
469   addSIRC20Key("top_menu", DiscTitle_Key, 0x49, 0x1A, 0x1A); // "Title"
470   addSIRC20Key("dvd_menu", DiscMenu_Key, 0x49, 0x1A, 0x1B);
471   addSIRC20Key("program", Program_Key, 0x49, 0x1A, 0x1F);
472   addSIRC20Key("step/search -", StepBack_Key, 0x49, 0x1A, 0x20);
473   addSIRC20Key("step/search +", StepForward_Key, 0x49, 0x1A, 0x21);
474   addSIRC20Key("scan/slow -", SlowMinus_Key, 0x49, 0x1A, 0x22);
475   addSIRC20Key("scan/slow +", SlowPlus_Key, 0x49, 0x1A, 0x23);
476   addSIRC20Key("INDEX-", Unmapped_Key, 0x49, 0x1A, 0x26);
477   addSIRC20Key("INDEX+", Unmapped_Key, 0x49, 0x1A, 0x27);
478   addSIRC20Key("TIME", Unmapped_Key, 0x49, 0x1A, 0x28);
479   addSIRC20Key("JOG_STOP", Unmapped_Key, 0x49, 0x1A, 0x29); // "Pause"
480   addSIRC20Key("a-b", RepeatAB_Key, 0x49, 0x1A, 0x2A);
481   addSIRC20Key("repeat", Repeat_Key, 0x49, 0x1A, 0x2C);
482   addSIRC20Key("POWER_ON", PowerOn_Key, 0x49, 0x1A, 0x2E);
483   addSIRC20Key("POWER_OFF", PowerOff_Key, 0x49, 0x1A, 0x2F);
484
485   addSIRC20Key("prev", Previous_Key, 0x49, 0x1A, 0x30);
486   addSIRC20Key("next", Next_Key, 0x49, 0x1A, 0x31);
487   addSIRC20Key("play", Play_Key, 0x49, 0x1A, 0x32);
488   addSIRC20Key("rew", Rewind_Key, 0x49, 0x1A, 0x33);
489   addSIRC20Key("ffwd", FastForward_Key, 0x49, 0x1A, 0x34);
490   addSIRC20Key("shuffle", Random_Key, 0x49, 0x1A, 0x35);
491   addSIRC20Key("X2_BACK", Unmapped_Key, 0x49, 0x1A, 0x36);
492   addSIRC20Key("X2_FORWARD", Unmapped_Key, 0x49, 0x1A, 0x37);
493   addSIRC20Key("stop", Stop_Key, 0x49, 0x1A, 0x38);
494   addSIRC20Key("pause", Pause_Key, 0x49, 0x1A, 0x39);
495   addSIRC20Key("STEP_BACK", Unmapped_Key, 0x49, 0x1A, 0x3A); // "Jog Rev"
496   addSIRC20Key("STEP_FORWARD", Unmapped_Key, 0x49, 0x1A, 0x3B); // "Jog Fwd"
497   addSIRC20Key("RecStop", RecordStop_Key, 0x49, 0x1A, 0x3D);
498   addSIRC20Key("RecPause", RecordPause_Key, 0x49, 0x1A, 0x3E);
499
500   addSIRC20Key("DNR", NoiseReduction_Key, 0x49, 0x1A, 0x48);
501   addSIRC20Key("SEARCH_MODE", Unmapped_Key, 0x49, 0x1A, 0x4B);
502   addSIRC20Key("Picture_Navi", Unmapped_Key, 0x49, 0x1A, 0x50);
503   addSIRC20Key("TV_DVD", Unmapped_Key, 0x49, 0x1A, 0x51);
504   addSIRC20Key("menu", Menu_Key, 0x49, 0x1A, 0x53); // "setup"
505   addSIRC20Key("Display", Info_Key, 0x49, 0x1A, 0x54);
506   addSIRC20Key("surround", Surround_Key, 0x49, 0x1A, 0x5A);
507   addSIRC20Key("PICTUREMODE", PictureMode_Key, 0x49, 0x1A, 0x5B);
508   addSIRC20Key("Replay", Replay_Key, 0x49, 0x1A, 0x5C);
509   addSIRC20Key("SA-CD_MULTI/2CH", Unmapped_Key, 0x49, 0x1A, 0x5E);
510   addSIRC20Key("SA-CD/CD", Unmapped_Key, 0x49, 0x1A, 0x5F);
511
512   addSIRC20Key("SLOW_BACK", SlowMinus_Key, 0x49, 0x1A, 0x60);
513   addSIRC20Key("SLOW_FORWARD", SlowPlus_Key, 0x49, 0x1A, 0x61);
514   addSIRC20Key("SUBTITLE_ON_OFF", Captions_Key, 0x49, 0x1A, 0x62);
515   addSIRC20Key("Subtitle Change", Unmapped_Key, 0x49, 0x1A, 0x63);
516   addSIRC20Key("Language", Audio_Key, 0x49, 0x1A, 0x64); // "Audio"
517   addSIRC20Key("ANGLE_CHANGE", Angle_Key, 0x49, 0x1A, 0x65); // "Angle"
518   addSIRC20Key("up", Up_Key, 0x49, 0x1A, 0x79);
519   addSIRC20Key("down", Down_Key, 0x49, 0x1A, 0x7A);
520   addSIRC20Key("left", Left_Key, 0x49, 0x1A, 0x7B);
521   addSIRC20Key("right", Right_Key, 0x49, 0x1A, 0x7C);
522
523   addSIRC20Key("Advance", Advance_Key, 0x62, 0x1A, 0x14);
524   addSIRC20Key("Guide", Guide_Key, 0x62, 0x1A, 0x16);
525   addSIRC20Key("Options", Unmapped_Key, 0x62, 0x1A, 0x17); // "Tools"
526   addSIRC20Key("Dot", Unmapped_Key, 0x62, 0x1A, 0x1D);
527   addSIRC20Key("file", Unmapped_Key, 0x62, 0x1A, 0x20);
528   addSIRC20Key("sort", Unmapped_Key, 0x62, 0x1A, 0x21);
529   addSIRC20Key("edit", Unmapped_Key, 0x62, 0x1A, 0x22);
530   addSIRC20Key("ALBUM-MINUS", Unmapped_Key, 0x62, 0x1A, 0x29);
531   addSIRC20Key("ALBUM-PLUS", Unmapped_Key, 0x62, 0x1A, 0x2A);
532   addSIRC20Key("F1", Unmapped_Key, 0x62, 0x1A, 0x2E); // "HDD"
533   addSIRC20Key("F2", Unmapped_Key, 0x62, 0x1A, 0x2F); // "DVD"
534   addSIRC20Key("picture memory", Unmapped_Key, 0x62, 0x1A, 0x3C);
535   addSIRC20Key("disc skip -", PrevDisc_Key, 0x62, 0x1A, 0x3D);
536   addSIRC20Key("DiscSkip", NextDisc_Key, 0x62, 0x1A, 0x3E); // "disc skip +"
537   addSIRC20Key("folder", Unmapped_Key, 0x62, 0x1A, 0x40);
538   addSIRC20Key("Favorites", Favorites_Key, 0x62, 0x1A, 0x5E);
539   addSIRC20Key("Purple", Blue_Key, 0x62, 0x1A, 0x66);
540   addSIRC20Key("Red", Red_Key, 0x62, 0x1A, 0x67);
541   addSIRC20Key("Green", Green_Key, 0x62, 0x1A, 0x68);
542   addSIRC20Key("Yellow", Yellow_Key, 0x62, 0x1A, 0x69);
543   addSIRC20Key("ZOOM", Zoom_Key, 0x62, 0x1A, 0x79);
544 }
545
546
547 SonyDVD1a::SonyDVD1a(
548   QObject *guiObject,
549   unsigned int index)
550   : SonyDVD1(guiObject, index)
551 {
552   setKeysetName("DVD Keyset 1a");
553
554   addSIRC20Key("STEP_BACK", StepBack_Key, 0x49, 0x1A, 0x20);
555   addSIRC20Key("STEP_FORWARD", StepForward_Key, 0x49, 0x1A, 0x21);
556   addSIRC20Key("SLOW_BACK", SlowMinus_Key, 0x49, 0x1A, 0x22);
557   addSIRC20Key("SLOW_FORWARD", SlowPlus_Key, 0x49, 0x1A, 0x23);
558 }
559
560
561 SonyDVD1b::SonyDVD1b(
562   QObject *guiObject,
563   unsigned int index)
564   : SonyDVD1(guiObject, index)
565 {
566   setKeysetName("DVD Keyset 1b");
567
568   addSIRC20Key("SLOW-", SlowMinus_Key, 0x49, 0x1A, 0x72);
569   addSIRC20Key("SLOW+", SlowPlus_Key, 0x49, 0x1A, 0x73);
570 }
571
572
573 SonyDVD1c::SonyDVD1c(
574   QObject *guiObject,
575   unsigned int index)
576   : SonyDVD1(guiObject, index)
577 {
578   setKeysetName("DVD Keyset 1c");
579
580   addSIRC20Key("up", Up_Key, 0x49, 0x1A, 0x39);
581   addSIRC20Key("down", Down_Key, 0x49, 0x1A, 0x38);
582   addSIRC20Key("left", Left_Key, 0x49, 0x1A, 0x33);
583   addSIRC20Key("right", Right_Key, 0x49, 0x1A, 0x34);
584   addSIRC20Key("ok", Select_Key, 0x49, 0x1A, 0x32);
585   addSIRC20Key("enter", Enter_Key, 0x49, 0x1A, 0x0B);
586 }
587
588
589 SonyVCR1::SonyVCR1(
590   QObject *guiObject,
591   unsigned int index)
592   : PIRKeysetMetaData(
593       "VCR Keyset 1",
594       Sony_Make,
595       index)
596 {
597   threadableProtocol = new SIRCProtocol(guiObject, index);
598
599   addSIRC12Key("VOL_UP", VolumeUp_Key, 0x01, 0x12);
600   addSIRC12Key("VOL_DOWN", VolumeDown_Key, 0x01, 0x13);
601
602   addSIRC12Key("red", Red_Key, 0x03, 0x4C);
603   addSIRC12Key("green", Green_Key, 0x03, 0x4D);
604   addSIRC12Key("Yellow", Yellow_Key, 0x03, 0x4E);
605   addSIRC12Key("blue", Blue_Key, 0x03, 0x4F);
606
607   addSIRC12Key("1", One_Key, 0x0B, 0x00);
608   addSIRC12Key("2", Two_Key, 0x0B, 0x01);
609   addSIRC12Key("3", Three_Key, 0x0B, 0x02);
610   addSIRC12Key("4", Four_Key, 0x0B, 0x03);
611   addSIRC12Key("5", Five_Key, 0x0B, 0x04);
612   addSIRC12Key("6", Six_Key, 0x0B, 0x05);
613   addSIRC12Key("7", Seven_Key, 0x0B, 0x06);
614   addSIRC12Key("8", Eight_Key, 0x0B, 0x07);
615   addSIRC12Key("9", Nine_Key, 0x0B, 0x08);
616   addSIRC12Key("0", Zero_Key, 0x0B, 0x09);
617 //  addSIRC12Key("jump", PrevChannel_Key, 0x0B, 0x0A); // might be wrong
618   addSIRC12Key("-/--", DoubleDigit_Key, 0x0B, 0x0A);
619   addSIRC12Key("ENT", Enter_Key, 0x0B, 0x0B); // "Enter"
620
621   addSIRC12Key("prog-next", ChannelUp_Key, 0x0B, 0x10);
622   addSIRC12Key("prog-prev", ChannelDown_Key, 0x0B, 0x11);
623   addSIRC12Key("pwon", Power_Key, 0x0B, 0x15);
624   addSIRC12Key("stop", Stop_Key, 0x0B, 0x18);
625   addSIRC12Key("pause", Pause_Key, 0x0B, 0x19);
626   addSIRC12Key("play", Play_Key, 0x0B, 0x1A);
627   addSIRC12Key("<<", Rewind_Key, 0x0B, 0x1B);
628   addSIRC12Key(">>", FastForward_Key, 0x0B, 0x1C);
629   addSIRC12Key("rec", Record_Key, 0x0B, 0x1D);
630   addSIRC12Key("ant/sw", AntennaInput_Key, 0x0B, 0x2A);  // "tv/vcr"
631   addSIRC12Key("power_on", PowerOn_Key, 0x0B, 0x2E);
632   addSIRC12Key("Power Off", PowerOff_Key, 0x0B, 0x2F);
633   addSIRC12Key("menu", Menu_Key, 0x0B, 0x4D);
634   addSIRC12Key("input", Input_Key, 0x0B, 0x4F);
635   addSIRC12Key("display", Info_Key, 0x0B, 0x5A);
636
637   // Odd cursor keys, overlap with media controls:
638   addSIRC12Key("down", Down_Key, 0x0B, 0x18);
639   addSIRC12Key("up", Up_Key, 0x0B, 0x19);
640   addSIRC12Key("ok", Select_Key, 0x0B, 0x1A);
641   addSIRC12Key("left", Left_Key, 0x0B, 0x1B);
642   addSIRC12Key("right", Right_Key, 0x0B, 0x1C);
643 }
644
645
646 SonyVCR1a::SonyVCR1a(
647   QObject *guiObject,
648   unsigned int index)
649   : SonyVCR1(guiObject, index)
650 {
651   setKeysetName("VCR Keyset 1a");
652
653   // These are the expected cursor keys:
654   addSIRC12Key("up", Up_Key, 0x0B, 0x42);
655   addSIRC12Key("down", Down_Key, 0x0B, 0x43);
656   addSIRC12Key("left", Left_Key, 0x0B, 0x62);
657   addSIRC12Key("right", Right_Key, 0x0B, 0x61);
658   addSIRC12Key("execute", Select_Key, 0x0B, 0x51); //"OK"
659
660 //  addKey("SLEEP", Sleep_Key, 0x0B, 0x4F); // odd
661 }
662
663
664 // Extra codes off of hifi-remote website:
665 SonyVCR1b::SonyVCR1b(
666   QObject *guiObject,
667   unsigned int index)
668   : SonyVCR1a(guiObject, index)
669 {
670   setKeysetName("VCR Keyset 1b");
671
672   addSIRC12Key("Volume Up", VolumeUp_Key, 0x0B, 0x12);
673   addSIRC12Key("Volume Down", VolumeDown_Key, 0x0B, 0x13);
674   addSIRC12Key("Eject", Eject_Key, 0x0B, 0x16);
675   addSIRC12Key("Record Pause", RecordPause_Key, 0x0B, 0x1E);
676   addSIRC12Key("Record Mute", RecordMute_Key, 0x0B, 0x1F);
677   addSIRC12Key("Auto Tracking", AutoTracking_Key, 0x0B, 0x27);
678   addSIRC12Key("Frame Reverse", StepBack_Key, 0x0B, 0x30);
679   addSIRC12Key("Frame Advance", StepForward_Key, 0x0B, 0x31);
680   addSIRC12Key("Mute", Mute_Key, 0x0B, 0x35);
681   addSIRC12Key("Sleep", Sleep_Key, 0x0B, 0x36);
682   addSIRC12Key("Slow +", SlowPlus_Key, 0x0B, 0x3D);
683   addSIRC12Key("Slow -", SlowMinus_Key, 0x0B, 0x3E);
684   addSIRC12Key("Tracking Up", TrackingPlus_Key, 0x0B, 0x44);
685   addSIRC12Key("Tracking Down", TrackingMinus_Key, 0x0B, 0x45);
686   addSIRC12Key("SP/EP", VHSSpeed_Key, 0x0B, 0x58);
687 }
688
689
690 SonyReceiver1::SonyReceiver1(
691   QObject *guiObject,
692   unsigned int index)
693   : PIRKeysetMetaData(
694       "Receiver Keyset 1",
695       Sony_Make,
696       index)
697 {
698   threadableProtocol = new SIRCProtocol(guiObject, index);
699
700   addSIRC15Key("1", One_Key, 0x30, 0x00);
701   addSIRC15Key("2", Two_Key, 0x30, 0x01);
702   addSIRC15Key("3", Three_Key, 0x30, 0x02);
703   addSIRC15Key("4", Four_Key, 0x30, 0x03);
704   addSIRC15Key("5", Five_Key, 0x30, 0x04);
705   addSIRC15Key("6", Six_Key, 0x30, 0x05);
706   addSIRC15Key("7", Seven_Key, 0x30, 0x06);
707   addSIRC15Key("8", Eight_Key, 0x30, 0x07);
708   addSIRC15Key("9", Nine_Key, 0x30, 0x08);
709   addSIRC15Key("0", Zero_Key, 0x30, 0x09);
710   addSIRC15Key("SELECT", Select_Key, 0x30, 0x0C);
711   addSIRC15Key("VOLUME_UP", VolumeUp_Key, 0x30, 0x12);
712   addSIRC15Key("VOLUME_DOWN", VolumeDown_Key, 0x30, 0x13);
713   addSIRC15Key("MUTING", Mute_Key, 0x30, 0x14);
714   addSIRC15Key("POWER", Power_Key, 0x30, 0x15);
715   addSIRC15Key("VIDEO2", Unmapped_Key, 0x30, 0x1E);
716   addSIRC15Key("TUNER", TunerInput_Key, 0x30, 0x21);
717   addSIRC15Key("VIDEO1", Unmapped_Key, 0x30, 0x22);
718   addSIRC15Key("SA_CD", Unmapped_Key, 0x30, 0x25);
719   addSIRC15Key("VIDEO3", Unmapped_Key, 0x30, 0x42);
720   addSIRC15Key("DISPLAY", Info_Key, 0x30, 0x4B);
721   addSIRC15Key("SLEEP", Sleep_Key, 0x30, 0x60);
722   addSIRC15Key("TV", Unmapped_Key, 0x30, 0x6A);
723   addSIRC15Key("DVD", DVDInput_Key, 0x30, 0x7D);
724
725   addSIRC15Key("SAT", SatInput_Key, 0xB0, 0x03);
726   addSIRC15Key("2CH", Unmapped_Key, 0xB0, 0x09);
727   addSIRC15Key("AFD", Unmapped_Key, 0xB0, 0x0A);
728   addSIRC15Key("MOVIE", Unmapped_Key, 0xB0, 0x0B);
729   addSIRC15Key("DVD_MENU", DiscMenu_Key, 0xB0, 0x2D); // Not sure about this
730   addSIRC15Key("MUSIC", Unmapped_Key, 0xB0, 0x49);
731   addSIRC15Key("AMP_MENU", Menu_Key, 0xB0, 0x77);
732   addSIRC15Key("UP", Up_Key, 0xB0, 0x78);
733   addSIRC15Key("DOWN", Down_Key, 0xB0, 0x79);
734   addSIRC15Key("LEFT", Left_Key, 0xB0, 0x7A);
735   addSIRC15Key("RIGHT", Right_Key, 0xB0, 0x7B);
736 }