More Keysets
[pierogi] / keysets / pioneer.cpp
1 #include "pioneer.h"
2 #include "protocols/pioneerprotocol.h"
3 #include "protocols/lircprotocol.h"
4
5 PioneerTV1::PioneerTV1(
6   QObject *guiObject,
7   unsigned int index)
8   : PIRKeysetMetaData(
9       "TV Keyset 1",
10       Pioneer_Make,
11       index)
12 {
13   threadableProtocol = new PioneerProtocol(guiObject, index);
14
15   addNECKey("0", Zero_Key, 0xAA, 0x00);
16   addNECKey("1", One_Key, 0xAA, 0x01);
17   addNECKey("2", Two_Key, 0xAA, 0x02);
18   addNECKey("3", Three_Key, 0xAA, 0x03);
19   addNECKey("4", Four_Key, 0xAA, 0x04);
20   addNECKey("5", Five_Key, 0xAA, 0x05);
21   addNECKey("6", Six_Key, 0xAA, 0x06);
22   addNECKey("7", Seven_Key, 0xAA, 0x07);
23   addNECKey("8", Eight_Key, 0xAA, 0x08);
24   addNECKey("9", Nine_Key, 0xAA, 0x09);
25   addNECKey("VOL_PLUS", VolumeUp_Key, 0xAA, 0x0A);
26   addNECKey("VOL_MINUS", VolumeDown_Key, 0xAA, 0x0B);
27
28   addNECKey("CH_PLUS", ChannelUp_Key, 0xAA, 0x10);
29   addNECKey("CH_MINUS", ChannelDown_Key, 0xAA, 0x11);
30   addNECKey("POWER_ON_OFF", Power_Key, 0xAA, 0x1C);
31   addNECKey("RIGHT", Right_Key, 0xAA, 0x24);
32   addNECKey("LEFT", Left_Key, 0xAA, 0x25);
33   addNECKey("UP", Up_Key, 0xAA, 0x26);
34   addNECKey("DOWN", Down_Key, 0xAA, 0x27);
35   addNECKey("ENTER", Enter_Key, 0xAA, 0x28);
36   addNECKey("REC", Record_Key, 0xAA, 0x38);
37   addNECKey("INPUT_ANT", AntennaInput_Key, 0xAA, 0x45);
38   addNECKey("MUTING", Mute_Key, 0xAA, 0x49);
39   addNECKey("DISPLAY", Unmapped_Key, 0xAA, 0x4A);
40
41   addPioneerKey("CH_ENTER", Enter_Key, 0xAA, 0x5A, 0xAF, 0x61);
42   addPioneerKey("CH_RETURN", PrevChannel_Key, 0xAA, 0x5A, 0xAF, 0x62);
43   addPioneerKey("DOT", Unmapped_Key, 0xAA, 0x5A, 0xAF, 0x64);
44   addPioneerKey("INPUT_PC", PCInput_Key, 0xAA, 0x5A, 0xAF, 0x74);
45   addPioneerKey("INPUT1", Unmapped_Key, 0xAA, 0x5A, 0xAF, 0x7A);
46   addPioneerKey("INPUT2", Unmapped_Key, 0xAA, 0x5A, 0xAF, 0x7B);
47   addPioneerKey("INPUT3", Unmapped_Key, 0xAA, 0x5A, 0xAF, 0x7C);
48   addPioneerKey("INPUT4", Unmapped_Key, 0xAA, 0x5A, 0xAF, 0x7D);
49   addPioneerKey("HDMI5", HDMIInput_Key, 0xAA, 0x5A, 0xAF, 0x7E);
50   addPioneerKey("HDMI6", HDMI2Input_Key, 0xAA, 0x5A, 0xAF, 0x7F);
51
52   addPioneerKey("HOME_MENU", Unmapped_Key, 0xAA, 0x5B, 0xAF, 0x20);
53   addPioneerKey("RETURN", Exit_Key, 0xAA, 0x5B, 0xAF, 0x22);
54   addPioneerKey("TV_GUIDE", Guide_Key, 0xAA, 0x5B, 0xAF, 0x24);
55   addPioneerKey("INFO", Info_Key, 0xAA, 0x5B, 0xAF, 0x25);
56   addPioneerKey("MENU", Menu_Key, 0xAA, 0x5B, 0xAF, 0x27);
57   addPioneerKey("DAY_PLUS", Unmapped_Key, 0xAA, 0x5B, 0xAF, 0x2A);
58   addPioneerKey("DAY_MINUS", Unmapped_Key, 0xAA, 0x5B, 0xAF, 0x2B);
59   addPioneerKey("RED_B", Red_Key, 0xAA, 0x5B, 0xAF, 0x2C);
60   addPioneerKey("GREEN_C", Green_Key, 0xAA, 0x5B, 0xAF, 0x2D);
61   addPioneerKey("YELLOW_D", Yellow_Key, 0xAA, 0x5B, 0xAF, 0x2E);
62   addPioneerKey("BLUE_A", Blue_Key, 0xAA, 0x5B, 0xAF, 0x2F);
63   addPioneerKey("PAGE_PLUS", PageUp_Key, 0xAA, 0x5B, 0xAF, 0x33);
64   addPioneerKey("PAGE_MINUS", PageDown_Key, 0xAA, 0x5B, 0xAF, 0x34);
65
66   addNECKey("AV_SELECTION", Input_Key, 0xAA, 0x5E); // is this right?
67   addPioneerKey("SCREEN_SIZE", AspectRatio_Key, 0xAA, 0x5E, 0xAF, 0x3A);
68   addPioneerKey("SLEEP", Sleep_Key, 0xAA, 0x5E, 0xAF, 0x70);
69 }
70
71
72 PioneerTV2::PioneerTV2(
73   QObject *guiObject,
74   unsigned int index)
75   : PIRKeysetMetaData(
76       "TV (STB) Keyset 2",
77       Pioneer_Make,
78       index)
79 {
80   threadableProtocol = new PioneerProtocol(guiObject, index);
81
82   // I'm not sure this keyset even needs the "0xAA" keys at all...
83   addNECKey("tv-dengen", Unmapped_Key, 0xAA, 0x1C);
84   addNECKey("tv-nyuuryoku-kirikae", Unmapped_Key, 0xAA, 0x13);
85   addNECKey("tv-channel-up", Unmapped_Key, 0xAA, 0x10);
86   addNECKey("tv-channel-down", Unmapped_Key, 0xAA, 0x11);
87   addNECKey("dengen", Power_Key, 0xAC, 0x1C);
88   addNECKey("sleep", Sleep_Key, 0xAC, 0x48);
89   addNECKey("1", One_Key, 0xAC, 0x01);
90   addNECKey("2", Two_Key, 0xAC, 0x02);
91   addNECKey("3", Three_Key, 0xAC, 0x03);
92   addNECKey("4", Four_Key, 0xAC, 0x04);
93   addNECKey("5", Five_Key, 0xAC, 0x05);
94   addNECKey("6", Six_Key, 0xAC, 0x06);
95   addNECKey("7", Seven_Key, 0xAC, 0x07);
96   addNECKey("8", Eight_Key, 0xAC, 0x08);
97   addNECKey("9", Nine_Key, 0xAC, 0x09);
98   addNECKey("10-0", Zero_Key, 0xAC, 0x00);
99   addNECKey("channel-up", ChannelUp_Key, 0xAC, 0x10);
100   addNECKey("channel-down", ChannelDown_Key, 0xAC, 0x11);
101   addNECKey("mute", Mute_Key, 0xAA, 0x49);
102   addNECKey("volume-up", VolumeUp_Key, 0xAA, 0x0A);
103   addNECKey("volume-down", VolumeDown_Key, 0xAA, 0x0B);
104   addNECKey("ff-left", Unmapped_Key, 0xAC, 0x4B);
105   addNECKey("ff-right", Unmapped_Key, 0xAC, 0x13);
106   addNECKey("ff-down", Unmapped_Key, 0xAC, 0x4F);
107   addNECKey("ff-up", Unmapped_Key, 0xAC, 0x4E);
108   addNECKey("up", Up_Key, 0xAC, 0x58);
109   addNECKey("down", Down_Key, 0xAC, 0x59);
110   addNECKey("left", Left_Key, 0xAC, 0x57);
111   addNECKey("right", Right_Key, 0xAC, 0x56);
112   addNECKey("kettei", Unmapped_Key, 0xAC, 0x4C);
113   addNECKey("guide", Guide_Key, 0xAC, 0x50);
114   addNECKey("shousai", Unmapped_Key, 0xAC, 0x54);
115   addNECKey("modoru", Unmapped_Key, 0xAC, 0x53);
116   addNECKey("navi", Unmapped_Key, 0xAC, 0x18);
117   addNECKey("okonomi", Unmapped_Key, 0xAC, 0x44);
118   addNECKey("channel-hyouji", Unmapped_Key, 0xAC, 0x4A);
119   addNECKey("channel-ichiran", Unmapped_Key, 0xAC, 0x5B);
120   addNECKey("channel-return", Unmapped_Key, 0xAC, 0x5C);
121   addNECKey("onsei", Unmapped_Key, 0xAC, 0x1E);
122 //  addNECKey(, Unmapped_Key, 0xAC, 0x33); //"catv", "data", "aoi", "akai", "midori", "kiiroi", "vod", "browser", "genre-kensaku", "gazou"
123   addPioneerKey("chijo", Unmapped_Key, 0xAC, 0x33, 0xAF, 0x3B);
124   addPioneerKey("bscs", Unmapped_Key, 0xAC, 0x33, 0xAF, 0x3D);
125   addPioneerKey("ch", Unmapped_Key, 0xAC, 0x33, 0xAF, 0x3C);
126   addPioneerKey("11", Unmapped_Key, 0xAC, 0x33, 0xAF, 0x39);
127   addPioneerKey("12", Unmapped_Key, 0xAC, 0x33, 0xAF, 0x38);
128   addPioneerKey("jimaku", Unmapped_Key, 0xAC, 0x33, 0xAF, 0x31);
129 }
130
131
132 PioneerTV3::PioneerTV3(
133   QObject *guiObject,
134   unsigned int index)
135   : PIRKeysetMetaData(
136       "TV (STB) Keyset 3",
137       Pioneer_Make,
138       index)
139 {
140   threadableProtocol = new PioneerProtocol(guiObject, index);
141
142   addNECKey("KEY_VOLUMEUP", VolumeUp_Key, 0xAA, 0x0A);
143   addNECKey("KEY_VOLUMEDOWN", VolumeDown_Key, 0xAA, 0x0B);
144   addNECKey("KEY_CHANNELUP", ChannelUp_Key, 0xAA, 0x10);
145   addNECKey("KEY_CHANNELDOWN", ChannelDown_Key, 0xAA, 0x11);
146   addNECKey("KEY_VCR", Unmapped_Key, 0xAA, 0x13);
147   addNECKey("KEY_POWER3", Unmapped_Key, 0xAA, 0x1C);
148   addNECKey("KEY_MUTE", Mute_Key, 0xAA, 0x49);
149   addNECKey("KEY_UP", Up_Key, 0xAA, 0xE9);
150   addNECKey("KEY_DOWN", Down_Key, 0xAA, 0xEA);
151   addNECKey("KEY_RIGHT", Right_Key, 0xAA, 0xEB);
152   addNECKey("KEY_LEFT", Left_Key, 0xAA, 0xEC);
153   addNECKey("KEY_OK", Select_Key, 0xAA, 0xED);
154
155   addPioneerKey("KEY_0", Zero_Key, 0xAA, 0xEE, 0xAF, 0x20);
156   addPioneerKey("KEY_1", One_Key, 0xAA, 0xEE, 0xAF, 0x21);
157   addPioneerKey("KEY_2", Two_Key, 0xAA, 0xEE, 0xAF, 0x22);
158   addPioneerKey("KEY_3", Three_Key, 0xAA, 0xEE, 0xAF, 0x23);
159   addPioneerKey("KEY_4", Four_Key, 0xAA, 0xEE, 0xAF, 0x24);
160   addPioneerKey("KEY_5", Five_Key, 0xAA, 0xEE, 0xAF, 0x25);
161   addPioneerKey("KEY_6", Six_Key, 0xAA, 0xEE, 0xAF, 0x26);
162   addPioneerKey("KEY_7", Seven_Key, 0xAA, 0xEE, 0xAF, 0x27);
163   addPioneerKey("KEY_8", Eight_Key, 0xAA, 0xEE, 0xAF, 0x28);
164   addPioneerKey("KEY_9", Nine_Key, 0xAA, 0xEE, 0xAF, 0x29);
165   addPioneerKey("KEY_POWER", Power_Key, 0xAA, 0xEE, 0xAF, 0x2A);
166   addPioneerKey("KEY_PROGRAM", Program_Key, 0xAA, 0xEE, 0xAF, 0x2D);
167   addPioneerKey("KEY_PERSO", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x30);
168   addPioneerKey("KEY_A", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x31);
169   addPioneerKey("KEY_B", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x32);
170   addPioneerKey("KEY_C", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x33);
171   addPioneerKey("KEY_D", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x34);
172   addPioneerKey("KEY_E", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x35);
173   addPioneerKey("KEY_SAT", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x37);
174   addPioneerKey("KEY_EPG", Guide_Key, 0xAA, 0xEE, 0xAF, 0x38);
175   addPioneerKey("KEY_FAVORITES", Favorites_Key, 0xAA, 0xEE, 0xAF, 0x39);
176   addPioneerKey("KEY_ESC", Exit_Key, 0xAA, 0xEE, 0xAF, 0x3A);
177   addPioneerKey("KEY_SERVICE", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x3B);
178   addPioneerKey("KEY_PLUS", Unmapped_Key, 0xAA, 0xEE, 0xAF, 0x3C);
179   addPioneerKey("KEY_AUDIO", Audio_Key, 0xAA, 0xEE, 0xAF, 0x60);
180   addPioneerKey("KEY_FREEZE", Pause_Key, 0xAA, 0xEE, 0xAF, 0x61);
181
182   addNECKey("KEY_FORWARD", FastForward_Key, 0xAB, 0x10);
183   addNECKey("KEY_REWIND", Rewind_Key, 0xAB, 0x11);
184   addNECKey("KEY_RECORD", Record_Key, 0xAB, 0x14);
185   addNECKey("KEY_STOP", Stop_Key, 0xAB, 0x16);
186   addNECKey("KEY_PLAY", Play_Key, 0xAB, 0x17);
187   addNECKey("KEY_PAUSE", Pause_Key, 0xAB, 0x18);
188   addNECKey("KEY_POWER2", Unmapped_Key, 0xAB, 0x1C);
189 }
190
191
192 PioneerAudio1::PioneerAudio1(
193   QObject *guiObject,
194   unsigned int index)
195   : PIRKeysetMetaData(
196       "Audio Keyset 1",
197       Pioneer_Make,
198       index)
199 {
200   addControlledDevice(Pioneer_Make, "XC-L11 (Radio/CD)", Audio_Device);
201   addControlledDevice(Pioneer_Make, "Hi-Fi DU-L7", Audio_Device);
202   addControlledDevice(Pioneer_Make, "CU-XR015", Audio_Device);
203   addControlledDevice(Pioneer_Make, "A880", Audio_Device);
204
205   threadableProtocol = new PioneerProtocol(guiObject, index);
206
207   addNECKey("TAPE2_FWD", Unmapped_Key, 0xA1, 0x10);
208   addNECKey("TAPE2_RWD", Unmapped_Key, 0xA1, 0x11);
209   addNECKey("TAPE2_STOP", Unmapped_Key, 0xA1, 0x16);
210   addNECKey("tape_fforw", Unmapped_Key, 0xA1, 0x56);
211   addNECKey("tape_fback", Unmapped_Key, 0xA1, 0x57);
212   addNECKey("tape_back", Unmapped_Key, 0xA1, 0x5B);
213   addNECKey("tape_stop", Unmapped_Key, 0xA1, 0x5C);
214   addNECKey("tape_forw", Unmapped_Key, 0xA1, 0x5D);
215
216   // Might want subclass for CD?
217   addNECKey("REPEAT", Repeat_Key, 0xA2, 0x0C);
218   addNECKey("PGM", Program_Key, 0xA2, 0x0D);
219   addNECKey("cd_forw", Unmapped_Key, 0xA2, 0x10);
220   addNECKey("cd_back", Unmapped_Key, 0xA2, 0x11);
221   addNECKey("cd_stop", Unmapped_Key, 0xA2, 0x16);
222   addNECKey("cd_play", Unmapped_Key, 0xA2, 0x17);
223   addNECKey("cd_pause", Unmapped_Key, 0xA2, 0x18);
224   addNECKey("DISC_CHANGE", NextDisc_Key, 0xA2, 0x1D);
225   addNECKey("disc1", Unmapped_Key, 0xA2, 0x1E);
226   addNECKey("disc2", Unmapped_Key, 0xA2, 0x1F);
227   addNECKey("clear", Unmapped_Key, 0xA2, 0x45);
228   addNECKey("cd_rnd", Random_Key, 0xA2, 0x4A); // "random"
229   addNECKey("disc3", Unmapped_Key, 0xA2, 0x50);
230   addNECKey("OPEN", Eject_Key, 0xA2, 0x51);
231
232   addNECKey("station+", ChannelUp_Key, 0xA4, 0x10);
233   addNECKey("station-", ChannelDown_Key, 0xA4, 0x11);
234   addNECKey("mono", FMMode_Key, 0xA4, 0x1E);
235
236   addNECKey("1", One_Key, 0xA6, 0x00);
237   addNECKey("2", Two_Key, 0xA6, 0x01);
238   addNECKey("3", Three_Key, 0xA6, 0x02);
239   addNECKey("4", Four_Key, 0xA6, 0x03);
240   addNECKey("5", Five_Key, 0xA6, 0x04);
241   addNECKey("6", Six_Key, 0xA6, 0x05);
242   addNECKey("7", Seven_Key, 0xA6, 0x06);
243   addNECKey("8", Eight_Key, 0xA6, 0x07);
244   addNECKey("9", Nine_Key, 0xA6, 0x08);
245   addNECKey("10/0", Zero_Key, 0xA6, 0x09);
246   addNECKey("volume-up", VolumeUp_Key, 0xA6, 0x0A);
247   addNECKey("volume-down", VolumeDown_Key, 0xA6, 0x0B);
248   addNECKey("tape", TapeInput_Key, 0xA6, 0x17); // "TAPE2_PLAY"
249   addNECKey("sleep", Sleep_Key, 0xA6, 0x19);
250   addNECKey("standby", Power_Key, 0xA6, 0x1C); // "POWER"
251   addNECKey("11/>10", DoubleDigit_Key, 0xA6, 0x40);
252   addNECKey("12/CLR", Clear_Key, 0xA6, 0x41);
253   addNECKey("cd", CDInput_Key, 0xA6, 0x44); // "CD_PLAY"
254   addNECKey("scan", Scan_Key, 0xA6, 0x48);
255   addNECKey("FM/AM", TunerBand_Key, 0xA6, 0x49); // "BAND"
256   addNECKey("aux", AuxInput_Key, 0xA6, 0x4C);
257   addNECKey("TAPE1_PLAY", Unmapped_Key, 0xA6, 0x5A);
258   addNECKey("KARAOKE", Unmapped_Key, 0xA6, 0x69);
259   addNECKey("menu", Menu_Key, 0xA6, 0x72); // "LEVEL"
260   addNECKey("cancel", Exit_Key, 0xA6, 0x73); // probably not "exit"
261   addNECKey("set", Select_Key, 0xA6, 0x74);
262   addNECKey("play/pause", Play_Key, 0xA6, 0x75);
263   addNECKey("play/pause", Pause_Key, 0xA6, 0x75);
264   addNECKey("stop", Stop_Key, 0xA6, 0x90);
265   addNECKey("next", Next_Key, 0xA6, 0x91);
266   addNECKey("previous", Previous_Key, 0xA6, 0x92);
267   addNECKey("forward", FastForward_Key, 0xA6, 0x93);
268   addNECKey("rewind", Rewind_Key, 0xA6, 0x94);
269   addNECKey("func", Unmapped_Key, 0xA6, 0x99);
270   addNECKey("disp", Info_Key, 0xA6, 0x9D); // "DISPLAY"
271 //  addNECKey("am", TunerBand_Key, 0xA6, 0xA0); // "fm", messed up
272 //  addNECKey("minus", Left_Key, 0xA6, 0xA0); // "plus", messed up
273   addNECKey("md", MDInput_Key, 0xA6, 0xA2);
274   addNECKey("smart_ope", Unmapped_Key, 0xA6, 0xCA);
275   addNECKey("snooze", Unmapped_Key, 0xA6, 0xCD);
276   addNECKey("timer", Timer_Key, 0xA6, 0xCE);
277   addNECKey("PRO_LOGIC", Unmapped_Key, 0xA6, 0xD4);
278   addNECKey("TONE_TEST", Unmapped_Key, 0xA6, 0xD5);
279   addNECKey("soundmorph+", Unmapped_Key, 0xA6, 0xD7); // "TURN_CW"
280   addNECKey("soundmorph-", Unmapped_Key, 0xA6, 0xD8); // "TURN_ACW"
281   addNECKey("sound", Audio_Key, 0xA6, 0xDA); // "SFC", "MORPHING"
282   addNECKey("sfc_preset", Unmapped_Key, 0xA6, 0xDC);
283   addNECKey("pbass", EnhancedBass_Key, 0xA6, 0xDD);
284 }
285
286
287 PioneerAudio1a::PioneerAudio1a(
288   QObject *guiObject,
289   unsigned int index)
290   : PioneerAudio1(guiObject, index)
291 {
292   setKeysetName("Audio Keyset 1a");
293
294   addNECKey("cd", CDInput_Key, 0xA6, 0x0E);
295   addNECKey("tape", TapeInput_Key, 0xA6, 0x0F);
296 }
297
298
299 PioneerAudio2::PioneerAudio2(
300   QObject *guiObject,
301   unsigned int index)
302   : PIRKeysetMetaData(
303       "Audio Keyset 2",
304       Pioneer_Make,
305       index)
306 {
307   threadableProtocol = new PioneerProtocol(guiObject, index);
308
309   addNECKey("VOL+", VolumeUp_Key, 0xA5, 0x0A);
310   addNECKey("VOL-", VolumeDown_Key, 0xA5, 0x0B);
311   addNECKey("Mute", Mute_Key, 0xA5, 0x12);
312
313   addNECKey("Stop", Stop_Key, 0xAB, 0x20);
314   addNECKey("RecordStop", RecordStop_Key, 0xAB, 0x21);
315   addNECKey("Play", Play_Key, 0xAB, 0x22);
316   addNECKey("Pause", Pause_Key, 0xAB, 0x23);
317   addNECKey("SkipForw", Advance_Key, 0xAB, 0x24);
318   addNECKey("SkipBack", Replay_Key, 0xAB, 0x25);
319   addNECKey("TrackNext", Next_Key, 0xAB, 0x26);
320   addNECKey("TrackPrev", Previous_Key, 0xAB, 0x27);
321   addNECKey("Record", Record_Key, 0xAB, 0x28);
322
323   addPioneerKey("CH+", ChannelUp_Key, 0xAB, 0x2A, 0xAF, 0x6E);
324   addPioneerKey("CH-", ChannelDown_Key, 0xAB, 0x2A, 0xAF, 0x6F);
325
326   addPioneerKey("Subtitle", Captions_Key, 0xAB, 0x2C, 0xAF, 0x36);
327   addPioneerKey("Left", Left_Key, 0xAB, 0x2C, 0xAF, 0x63);
328   addPioneerKey("Right", Right_Key, 0xAB, 0x2C, 0xAF, 0x64);
329   addPioneerKey("Dot", Unmapped_Key, 0xAB, 0x2C, 0xAF, 0x66);
330   addPioneerKey("0", Zero_Key, 0xAB, 0x2C, 0xAF, 0xA0);
331   addPioneerKey("1", One_Key, 0xAB, 0x2C, 0xAF, 0xA1);
332   addPioneerKey("2", Two_Key, 0xAB, 0x2C, 0xAF, 0xA2);
333   addPioneerKey("3", Three_Key, 0xAB, 0x2C, 0xAF, 0xA3);
334   addPioneerKey("4", Four_Key, 0xAB, 0x2C, 0xAF, 0xA4);
335   addPioneerKey("5", Five_Key, 0xAB, 0x2C, 0xAF, 0xA5);
336   addPioneerKey("6", Six_Key, 0xAB, 0x2C, 0xAF, 0xA6);
337   addPioneerKey("7", Seven_Key, 0xAB, 0x2C, 0xAF, 0xA7);
338   addPioneerKey("8", Eight_Key, 0xAB, 0x2C, 0xAF, 0xA8);
339   addPioneerKey("9", Nine_Key, 0xAB, 0x2C, 0xAF, 0xA9);
340   addPioneerKey("Guide", Guide_Key, 0xAB, 0x2C, 0xAF, 0xB0);
341   addPioneerKey("TopMenu", DiscTitle_Key, 0xAB, 0x2C, 0xAF, 0xB4);
342   addPioneerKey("Menu", DiscMenu_Key, 0xAB, 0x2C, 0xAF, 0xB9);
343   addPioneerKey("Audio", Audio_Key, 0xAB, 0x2C, 0xAF, 0xBE);
344   addPioneerKey("Enter", Enter_Key, 0xAB, 0x2C, 0xAF, 0xE5);
345   addPioneerKey("OK", Select_Key, 0xAB, 0x2C, 0xAF, 0xEF);
346   addPioneerKey("Up", Up_Key, 0xAB, 0x2C, 0xAF, 0xF2);
347   addPioneerKey("Down", Down_Key, 0xAB, 0x2C, 0xAF, 0xF3);
348   addPioneerKey("Return", Exit_Key, 0xAB, 0x2C, 0xAF, 0xF4);
349
350   addNECKey("Green", Green_Key, 0xAF, 0x63);
351   addNECKey("HDD", HDDInput_Key, 0xAF, 0x64);
352   addNECKey("DVD", DVDInput_Key, 0xAF, 0x65);
353 }
354
355
356 PioneerAudio3::PioneerAudio3(
357   QObject *guiObject,
358   unsigned int index)
359   : PIRKeysetMetaData(
360       "Audio Keyset 3",
361       Pioneer_Make,
362       index)
363 {
364   addControlledDevice(Pioneer_Make, "A-207R", Audio_Device);
365   addControlledDevice(Pioneer_Make, "SX-302", Audio_Device);
366   addControlledDevice(Pioneer_Make, "VSX-9300", Audio_Device);
367
368   threadableProtocol = new PioneerProtocol(guiObject, index);
369
370   addNECKey("tape_deck1", Unmapped_Key, 0xA1, 0x0C);
371   addNECKey("tape_deck2", Unmapped_Key, 0xA1, 0x0D);
372   addNECKey("tape_ff", Unmapped_Key, 0xA1, 0x10);
373   addNECKey("tape_rew", Unmapped_Key, 0xA1, 0x11);
374   addNECKey("TAPE_REC_LEFT", Unmapped_Key, 0xA1, 0x12);
375   addNECKey("tape_rec", Unmapped_Key, 0xA1, 0x14); // "TAPE_REC_RIGHT"
376   addNECKey("tape_reverse", Unmapped_Key, 0xA1, 0x15); //"TAPE_PLAY_LEFT"
377   addNECKey("tape_stop", Unmapped_Key, 0xA1, 0x16);
378   addNECKey("tape_play", Unmapped_Key, 0xA1, 0x17); //"TAPE_PLAY_RIGHT"
379   addNECKey("tape_pause", Unmapped_Key, 0xA1, 0x18);
380   addNECKey("POWER_TAPE", Unmapped_Key, 0xA1, 0x1C);
381   addNECKey("tape_tapeselect", Unmapped_Key, 0xA1, 0x4C);
382   addNECKey("DISK1_TAPE_NEXT", Unmapped_Key, 0xA1, 0x56);
383   addNECKey("DISK1_TAPE_PREV", Unmapped_Key, 0xA1, 0x57);
384   addNECKey("DISK1_TAPE_PLAY_LEFT", Unmapped_Key, 0xA1, 0x5B);
385   addNECKey("DISK1_TAPE_STOP", Unmapped_Key, 0xA1, 0x5C);
386   addNECKey("DISK1_TAPE_PLAY_RIGHT", Unmapped_Key, 0xA1, 0x5D);
387
388   addNECKey("CD_PGM", Program_Key, 0xA2, 0x0D);
389   addNECKey("cd_next", Next_Key, 0xA2, 0x10);
390   addNECKey("cd_previous", Previous_Key, 0xA2, 0x11);
391   addNECKey("cd_stop", Stop_Key, 0xA2, 0x16);
392   addNECKey("cd_play", Play_Key, 0xA2, 0x17);
393   addNECKey("cd_pause", Pause_Key, 0xA2, 0x18);
394   addNECKey("cd_power", Unmapped_Key, 0xA2, 0x1C);
395   addNECKey("cd_discsel", NextDisc_Key, 0xA2, 0x1D); // "disc+"
396   addNECKey("CD_TIME", Unmapped_Key, 0xA2, 0x43);
397   addNECKey("CD_RND", Random_Key, 0xA2, 0x4A);
398   addNECKey("CD_EDIT", Unmapped_Key, 0xA2, 0x4B);
399   addNECKey("disc-", PrevDisc_Key, 0xA2, 0xC1);
400   addNECKey("cdbest", Unmapped_Key, 0xA2, 0xC2);
401
402   addNECKey("0", Zero_Key, 0xA4, 0x00);
403   addNECKey("1", One_Key, 0xA4, 0x01);
404   addNECKey("2", Two_Key, 0xA4, 0x02);
405   addNECKey("3", Three_Key, 0xA4, 0x03);
406   addNECKey("4", Four_Key, 0xA4, 0x04);
407   addNECKey("5", Five_Key, 0xA4, 0x05);
408   addNECKey("6", Six_Key, 0xA4, 0x06);
409   addNECKey("7", Seven_Key, 0xA4, 0x07);
410   addNECKey("8", Eight_Key, 0xA4, 0x08);
411   addNECKey("9", Nine_Key, 0xA4, 0x09);
412   addNECKey("fm", Unmapped_Key, 0xA4, 0x0D);
413   addNECKey("am", Unmapped_Key, 0xA4, 0x0E);
414   addNECKey("tuner_station+", NextPreset_Key, 0xA4, 0x10);
415   addNECKey("tuner_station-", PrevPreset_Key, 0xA4, 0x11);
416   addNECKey("tuner_band", TunerBand_Key, 0xA4, 0x13);
417   addNECKey("tuner_power", Unmapped_Key, 0xA4, 0x1C);
418   addNECKey("mpx", Unmapped_Key, 0xA4, 0x1E); // Toggle mono FM
419   addNECKey("tunerclass", Unmapped_Key, 0xA4, 0x40); // class A, B, C
420   addNECKey("tunersearch", Unmapped_Key, 0xA4, 0x42);
421   addNECKey("directaccess", Enter_Key, 0xA4, 0x43); // use to type in frequency values
422   addNECKey("tunerdisplaymode", Info_Key, 0xA4, 0x4A);
423   addNECKey("memory-scan", Scan_Key, 0xA4, 0x4D);
424   addNECKey("hits", Unmapped_Key, 0xA4, 0x4E);
425   addNECKey("freq-plus", ChannelUp_Key, 0xA4, 0x56);
426   addNECKey("freq-minus", ChannelDown_Key, 0xA4, 0x57);
427
428   addPioneerKey("effect/chsel-", Unmapped_Key, 0xA5, 0x07, 0xA5, 0x41);
429   addPioneerKey("effect/chsel+", Unmapped_Key, 0xA5, 0x07, 0xA5, 0x42);
430   addPioneerKey("digitalnr", Unmapped_Key, 0xA5, 0x07, 0xA5, 0x59);// noise reduction
431   addPioneerKey("inputatt", Unmapped_Key, 0xA5, 0x07, 0xA5, 0x5E); // analog input attenuation
432
433   addPioneerKey("direct", Unmapped_Key, 0xA5, 0x08, 0xA5, 0x5D); // DSP processing
434   addPioneerKey("standard", Unmapped_Key, 0xA5, 0x08, 0xA5, 0x5E); // DD/DTS standard
435
436   addNECKey("volume+", VolumeUp_Key, 0xA5, 0x0A);
437   addNECKey("volume-", VolumeDown_Key, 0xA5, 0x0B);
438   addNECKey("tv/sat", SatInput_Key, 0xA5, 0x0C);
439   addNECKey("ld", LDInput_Key, 0xA5, 0x0D); // "VDP"
440   addNECKey("vcr2", Unmapped_Key, 0xA5, 0x0E);
441   addNECKey("vcr-line", VCRInput_Key, 0xA5, 0x0F);
442   addNECKey("md/tape1", TapeInput_Key, 0xA5, 0x11);
443   addNECKey("muting", Mute_Key, 0xA5, 0x12);
444   addNECKey("video", Unmapped_Key, 0xA5, 0x16);
445   addNECKey("poweron", PowerOn_Key, 0xA5, 0x1A);
446   addNECKey("poweroff", PowerOff_Key, 0xA5, 0x1B);
447   addNECKey("amp_power", Power_Key, 0xA5, 0x1C);
448   addNECKey("tape2", Unmapped_Key, 0xA5, 0x1D);
449   addNECKey("dsp", Unmapped_Key, 0xA5, 0x40); // cycle hall, jazz, dance, theater
450   addNECKey("loudness", Unmapped_Key, 0xA5, 0x44);
451   addNECKey("tuner", TunerInput_Key, 0xA5, 0x47);
452   addNECKey("sleep", Sleep_Key, 0xA5, 0x48);
453   addNECKey("cd", CDInput_Key, 0xA5, 0x4C);
454   addNECKey("phono", PhonoInput_Key, 0xA5, 0x4D);
455   addNECKey("dat/tape1", TapeInput_Key, 0xA5, 0x4E);
456   addNECKey("line", LineInput_Key, 0xA5, 0x4F);
457   addNECKey("muteon", Unmapped_Key, 0xA5, 0x51);
458   addNECKey("muteoff", Unmapped_Key, 0xA5, 0x52);
459   addNECKey("VSEL", Unmapped_Key, 0xAf, 0x54);
460   addNECKey("input", Input_Key, 0xA5, 0x55); // cycle through all inputs!
461
462   addPioneerKey("speakers", Unmapped_Key, 0xA5, 0x56, 0xA5, 0x00);
463   addPioneerKey("signalselect", Unmapped_Key, 0xA5, 0x56, 0xA5, 0x03);
464   addPioneerKey("effect/chsel", Unmapped_Key, 0xA5, 0x56, 0xA5, 0x04);
465   addPioneerKey("dimmer", Unmapped_Key, 0xA5, 0x56, 0xA5, 0x06);
466
467   addPioneerKey("bass+", BassUp_Key, 0xA5, 0x57, 0xA5, 0x00);
468   addPioneerKey("bass-", BassDown_Key, 0xA5, 0x57, 0xA5, 0x01);
469   addPioneerKey("treble+", TrebleUp_Key, 0xA5, 0x57, 0xA5, 0x02);
470   addPioneerKey("treble-", TrebleDown_Key, 0xA5, 0x57, 0xA5, 0x03);
471
472   addNECKey("up", Up_Key, 0xA5, 0x80);
473   addNECKey("down", Down_Key, 0xA5, 0x81);
474   addNECKey("right", Right_Key, 0xA5, 0x82);
475   addNECKey("left", Left_Key, 0xA5, 0x83);
476   addNECKey("enter", Select_Key, 0xA5, 0x84);
477   addNECKey("dvd/ld", Unmapped_Key, 0xA5, 0x85);
478
479   addPioneerKey("setup", Menu_Key, 0xA5, 0x9B, 0xA5, 0xD6);
480
481   addPioneerKey("stereo", Unmapped_Key, 0xA5, 0x9F, 0xA5, 0xC0);
482   addPioneerKey("midnight", Unmapped_Key, 0xA5, 0x9F, 0xA5, 0xCB);
483   addPioneerKey("thx", Unmapped_Key, 0xA5, 0x9F, 0xA5, 0xD1);
484   addPioneerKey("advanced", Unmapped_Key, 0xA5, 0x9F, 0xA5, 0xD3); // DD/DTS advanced
485
486   addNECKey("ld_stop", Unmapped_Key, 0xA8, 0x16);
487   addNECKey("ld_play", Unmapped_Key, 0xA8, 0x17);
488   addNECKey("ld_pause", Unmapped_Key, 0xA8, 0x18);
489   addNECKey("ld_power", Unmapped_Key, 0xA8, 0x1C);
490   addNECKey("ld_display", Unmapped_Key, 0xA8, 0x43);
491   addNECKey("ld_next", Unmapped_Key, 0xA8, 0x52);
492   addNECKey("ld_previous", Unmapped_Key, 0xA8, 0x53);
493
494   addNECKey("tv_channel+", Unmapped_Key, 0xAA, 0x10);
495   addNECKey("tv_channel-", Unmapped_Key, 0xAA, 0x11);
496   addNECKey("tv_func", Unmapped_Key, 0xAA, 0x13);
497   addNECKey("tv_power", Unmapped_Key, 0xAA, 0x1C);
498
499   addNECKey("vcr_tv-vcr", Unmapped_Key, 0xAB, 0x0F);
500   addNECKey("vcr_ff", Unmapped_Key, 0xAB, 0x10);
501   addNECKey("vcr_rew", Unmapped_Key, 0xAB, 0x11);
502   addNECKey("vcr_stop", Unmapped_Key, 0xAB, 0x16);
503   addNECKey("vcr_play", Unmapped_Key, 0xAB, 0x17);
504   addNECKey("vcr_pause", Unmapped_Key, 0xAB, 0x18);
505   addNECKey("vcr_channel+", Unmapped_Key, 0xAB, 0x52);
506   addNECKey("vcr_channel-", Unmapped_Key, 0xAB, 0x53);
507 }
508
509
510 PioneerAudio4::PioneerAudio4(
511   QObject *guiObject,
512   unsigned int index)
513   : PIRKeysetMetaData(
514       "Audio Keyset 4",
515       Pioneer_Make,
516       index)
517 {
518   threadableProtocol = new PioneerProtocol(guiObject, index);
519
520   addNECKey("tapesel", Unmapped_Key, 0xA1, 0x4C);
521   addNECKey(">>", FastForward_Key, 0xA1, 0x56);
522   addNECKey("<<", Rewind_Key, 0xA1, 0x57);
523   addNECKey("<", Unmapped_Key, 0xA1, 0x5B);
524   addNECKey("square", Unmapped_Key, 0xA1, 0x5C);
525   addNECKey(">", Unmapped_Key, 0xA1, 0x5D);
526
527   addNECKey(">>|", Next_Key, 0xA2, 0x10);
528   addNECKey("|<<", Previous_Key, 0xA2, 0x11);
529   addNECKey("squarecd", Stop_Key, 0xA2, 0x16);
530   addNECKey(">cd", Play_Key, 0xA2, 0x17);
531   addNECKey("cdpower", Unmapped_Key, 0xA2, 0x1C);
532   addNECKey("discsel", NextDisc_Key, 0xA2, 0x65);
533
534   addNECKey("tuner+", ChannelUp_Key, 0xA4, 0x10);
535   addNECKey("tuner-", ChannelDown_Key, 0xA4, 0x11);
536   addNECKey("tunerpower", Unmapped_Key, 0xA4, 0x1C);
537
538   addNECKey("vol+", VolumeUp_Key, 0xA5, 0x0A);
539   addNECKey("vol-", VolumeDown_Key, 0xA5, 0x0B);
540   addNECKey("amppower", Power_Key, 0xA5, 0x1C);
541   addNECKey("tape2", Unmapped_Key, 0xA5, 0x1D);
542   addNECKey("function", Unmapped_Key, 0xA5, 0x55);
543 }
544
545
546 PioneerAudio5::PioneerAudio5(
547   QObject *guiObject,
548   unsigned int index)
549   : PIRKeysetMetaData(
550       "Audio Keyset 5",
551       Pioneer_Make,
552       index)
553 {
554   addControlledDevice(Pioneer_Make, "XR-P240C", Audio_Device);
555
556   LIRCProtocol *lp = new LIRCProtocol(
557     guiObject,
558     index,
559     560, 560,
560     560, 1680,
561     110000, true);
562
563   threadableProtocol = lp;
564
565   lp->setHeaderPair(9000, 4500);
566   lp->setTrailerPulse(560);
567   lp->setRepeatPair(9000, 4500);
568
569   setPreData(0x10217EF, 26);
570
571   addKey("POWER", Power_Key, 0x9867, 16);
572   addKey("MONO", FMMode_Key, 0x48B7, 16);
573   addKey("MEM_SCAN", Unmapped_Key, 0x8877, 16);
574   addKey("TUNER_BAND", TunerBand_Key, 0x18E7, 16);
575   addKey("1", One_Key, 0x00FF, 16);
576   addKey("2", Two_Key, 0x807F, 16);
577   addKey("3", Three_Key, 0x40BF, 16);
578   addKey("4", Four_Key, 0xC03F, 16);
579   addKey("5", Five_Key, 0x20DF, 16);
580   addKey("6", Six_Key, 0xA05F, 16);
581   addKey("7", Seven_Key, 0x609F, 16);
582   addKey("8", Eight_Key, 0xE01F, 16);
583   addKey("SCAN", Scan_Key, 0xB44B, 16);
584   addKey("REPEAT", Repeat_Key, 0x847B, 16);
585   addKey("DISC", NextDisc_Key, 0xE41B, 16);
586   addKey("CLEAR", Clear_Key, 0x34CB, 16);
587   addKey("PROGRAM", Program_Key, 0x44BB, 16);
588   addKey("CD_PREV", Previous_Key, 0x2CD3, 16);
589   addKey("CD_NEXT", Next_Key, 0x6C93, 16);
590   addKey("TIME", Unmapped_Key, 0x04FB, 16);
591   addKey("RANDOM", Random_Key, 0xC43B, 16);
592   addKey("CD_STOP", Stop_Key, 0xF40B, 16);
593   addKey("CD_PLAY_PAUSE", Play_Key, 0xD42B, 16);
594   addKey("CD_PLAY_PAUSE", Pause_Key, 0xD42B, 16);
595   addKey("VOLUME_PLUS", VolumeUp_Key, 0x708F, 16);
596   addKey("VOLUME_MINUS", VolumeDown_Key, 0xF00F, 16);
597   addKey("POWER_BASS", EnhancedBass_Key, 0xD02F, 16);
598   addKey("MUTE", Mute_Key, 0xE817, 16);
599   addKey("TAPE", TapeInput_Key, 0x7887, 16);
600   addKey("AUX_VIDEO", AuxInput_Key, 0xF807, 16);
601   addKey("TUNER", TunerInput_Key, 0xD827, 16);
602   addKey("CD", CDInput_Key, 0x38C7, 16);
603 }
604
605
606 PioneerCD1::PioneerCD1(
607   QObject *guiObject,
608   unsigned int index)
609   : PIRKeysetMetaData(
610       "CD Keyset 1",
611       Pioneer_Make,
612       index)
613 {
614   addControlledDevice(Pioneer_Make, "PD-106", Audio_Device);
615   addControlledDevice(Pioneer_Make, "PD-202", Audio_Device);
616   addControlledDevice(Pioneer_Make, "PD-4550", Audio_Device);
617   addControlledDevice(Pioneer_Make, "PD-F957", Audio_Device);
618   addControlledDevice(Pioneer_Make, "PD-M107", Audio_Device);
619   addControlledDevice(Pioneer_Make, "PD-S503", Audio_Device);
620   addControlledDevice(Pioneer_Make, "PD-F1007", Audio_Device);
621
622   threadableProtocol = new PioneerProtocol(guiObject, index);
623
624   addNECKey("0", Zero_Key, 0xA2, 0x00);
625   addNECKey("1", One_Key, 0xA2, 0x01);
626   addNECKey("2", Two_Key, 0xA2, 0x02);
627   addNECKey("3", Three_Key, 0xA2, 0x03);
628   addNECKey("4", Four_Key, 0xA2, 0x04);
629   addNECKey("5", Five_Key, 0xA2, 0x05);
630   addNECKey("6", Six_Key, 0xA2, 0x06);
631   addNECKey("7", Seven_Key, 0xA2, 0x07);
632   addNECKey("8", Eight_Key, 0xA2, 0x08);
633   addNECKey("9", Nine_Key, 0xA2, 0x09);
634   addNECKey("VOL+", VolumeUp_Key, 0xA2, 0x0A);
635   addNECKey("VOL-", VolumeDown_Key, 0xA2, 0x0B);
636   addNECKey("REPEAT", Repeat_Key, 0xA2, 0x0C);
637   addNECKey("PROGRAMMEMORY", Program_Key, 0xA2, 0x0D); // "PROG"
638   addNECKey("forw", FastForward_Key, 0xA2, 0x0E); // "FF"
639   addNECKey("back", Rewind_Key, 0xA2, 0x0F); // "REW"
640
641   addNECKey("skip_forw", Next_Key, 0xA2, 0x10);
642   addNECKey("skip_back", Previous_Key, 0xA2, 0x11);
643   addNECKey("stop", Stop_Key, 0xA2, 0x16);
644   addNECKey("play", Play_Key, 0xA2, 0x17);
645   addNECKey("pause", Pause_Key, 0xA2, 0x18);
646   addNECKey("power", Power_Key, 0xA2, 0x1C);
647   addNECKey("disc+", NextDisc_Key, 0xA2, 0x1D);
648   addNECKey("disc_1", Unmapped_Key, 0xA2, 0x1E);
649   addNECKey("disc_2", Unmapped_Key, 0xA2, 0x1F);
650
651   addNECKey("set_track", Unmapped_Key, 0xA2, 0x40);
652   addNECKey("menu", Menu_Key, 0xA2, 0x41);  // "set_disc"
653   addNECKey("TIME", Unmapped_Key, 0xA2, 0x43);
654   addNECKey("CLEAR", Clear_Key, 0xA2, 0x45);
655   addNECKey("check", Unmapped_Key, 0xA2, 0x49);
656   addNECKey("RANDOM", Random_Key, 0xA2, 0x4A);
657   addNECKey("AUTOPGM", Unmapped_Key, 0xA2, 0x4B); // "EDIT"
658   addNECKey("MUSICWINDOW", Unmapped_Key, 0xA2, 0x4D);
659   addNECKey("FADEIN", Unmapped_Key, 0xA2, 0x4E);
660   addNECKey("FADEOUT", Unmapped_Key, 0xA2, 0x4F);
661   addNECKey("disc_3", Unmapped_Key, 0xA2, 0x50);
662   addNECKey("OPEN/CLOSE", Eject_Key, 0xA2, 0x51);
663   addNECKey("+10", Unmapped_Key, 0xA2, 0x52);
664   addNECKey("disc_4", Unmapped_Key, 0xA2, 0x53);
665   addNECKey("NEXTINDEX", Unmapped_Key, 0xA2, 0x54);
666   addNECKey("PREVINDEX", Unmapped_Key, 0xA2, 0x55);
667   addNECKey(">=20", DoubleDigit_Key, 0xA2, 0x56);
668   addNECKey("disc_5", Unmapped_Key, 0xA2, 0x57);
669   addNECKey("TIMEFADE", Unmapped_Key, 0xA2, 0x5A);
670   addNECKey("disc_6", Unmapped_Key, 0xA2, 0x5B);
671   addNECKey("delete", Unmapped_Key, 0xA2, 0x5D);
672   addNECKey("HI-LITE", Unmapped_Key, 0xA2, 0x5E); // "hi-lite_scan"
673
674   addPioneerKey("20", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x80);
675   addPioneerKey("11", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x81);
676   addPioneerKey("12", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x82);
677   addPioneerKey("13", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x83);
678   addPioneerKey("14", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x84);
679   addPioneerKey("15", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x85);
680   addPioneerKey("16", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x86);
681   addPioneerKey("17", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x87);
682   addPioneerKey("18", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x88);
683   addPioneerKey("19", Unmapped_Key, 0xA2, 0xC0, 0xA2, 0x89);
684
685   addPioneerKey("disc-", PrevDisc_Key, 0xA2, 0xC1, 0xA2, 0x93);
686   addPioneerKey("TITLE_INPUT", Unmapped_Key, 0xA2, 0xC1, 0xA2, 0x95);
687   addPioneerKey("mode", Unmapped_Key, 0xA2, 0xC1, 0xA2, 0x9C);
688
689   addPioneerKey("TITLE_DISPLAY", Info_Key, 0xA2, 0xC2, 0xA2, 0x94);
690   addPioneerKey("search", Unmapped_Key, 0xA2, 0xC2, 0xA2, 0x95);
691   addPioneerKey("BEST", Unmapped_Key, 0xA2, 0xC2, 0xA2, 0x9B);
692
693   addPioneerKey("previous", Unmapped_Key, 0xA2, 0xC6, 0xA2, 0x93);
694   addPioneerKey("CURSOR_right", Right_Key, 0xA2, 0xC6, 0xA2, 0x9B);
695   addPioneerKey("CURSOR_left", Left_Key, 0xA2, 0xC6, 0xA2, 0x9C);
696 }
697
698
699 PioneerLaserDisc1::PioneerLaserDisc1(
700   QObject *guiObject,
701   unsigned int index)
702   : PIRKeysetMetaData(
703       "LD Keyset 1",
704       Pioneer_Make,
705       index)
706 {
707   addControlledDevice(Pioneer_Make, "CLD-D925", Other_Device);
708
709   threadableProtocol = new PioneerProtocol(guiObject, index);
710
711   addNECKey("0", Zero_Key, 0xA8, 0x00);
712   addNECKey("1", One_Key, 0xA8, 0x01);
713   addNECKey("2", Two_Key, 0xA8, 0x02);
714   addNECKey("3", Three_Key, 0xA8, 0x03);
715   addNECKey("4", Four_Key, 0xA8, 0x04);
716   addNECKey("5", Five_Key, 0xA8, 0x05);
717   addNECKey("6", Six_Key, 0xA8, 0x06);
718   addNECKey("7", Seven_Key, 0xA8, 0x07);
719   addNECKey("8", Eight_Key, 0xA8, 0x08);
720   addNECKey("9", Nine_Key, 0xA8, 0x09);
721
722   addNECKey("dacx", Unmapped_Key, 0xA8, 0x0C);
723   addNECKey("ff", FastForward_Key, 0xA8, 0x10);
724   addNECKey("rew", Rewind_Key, 0xA8, 0x11); // "scan-"
725   addNECKey("chp/tm", Unmapped_Key, 0xA8, 0x13);
726 //  addNECKey("eject", Eject_Key, 0xA8, 0x16); // ?
727   addNECKey("stop", Stop_Key, 0xA8, 0x16);
728   addNECKey("play", Play_Key, 0xA8, 0x17);
729   addNECKey("pause", Pause_Key, 0xA8, 0x18);
730   addNECKey("memory", Memory_Key, 0xA8, 0x19);
731   addNECKey("power", Power_Key, 0xA8, 0x1C);
732   addNECKey("audio", Audio_Key, 0xA8, 0x1E); // "Audio_D/A"
733   addNECKey("+10", DoubleDigit_Key, 0xA8, 0x1F);
734   addNECKey("Jog_slow->", Unmapped_Key, 0xA8, 0x20);
735   addNECKey("Jog_slow<-", Unmapped_Key, 0xA8, 0x22);
736   addNECKey("Jog_Forward", Unmapped_Key, 0xA8, 0x2B);
737   addNECKey("Jog_Reverse", Unmapped_Key, 0xA8, 0x2F);
738   addNECKey("ctrl", Unmapped_Key, 0xA8, 0x37);
739   addNECKey("display", Info_Key, 0xA8, 0x43);
740   addNECKey("repeat", Repeat_Key, 0xA8, 0x44);
741   addNECKey("clear", Clear_Key, 0xA8, 0x45);
742   addNECKey("-", Unmapped_Key, 0xA8, 0x46);
743   addNECKey("+", Unmapped_Key, 0xA8, 0x47);
744   addNECKey("repeatab", RepeatAB_Key, 0xA8, 0x48);
745   addNECKey("pgm", Program_Key, 0xA8, 0x4C);
746   addNECKey("Disc_Side_A", Unmapped_Key, 0xA8, 0x4D);
747   addNECKey("Disc_Side_B", Unmapped_Key, 0xA8, 0x4E);
748   addNECKey("step-", StepBack_Key, 0xA8, 0x50);
749   addNECKey("skip+", Next_Key, 0xA8, 0x52);  // "seek+"
750   addNECKey("skip-", Previous_Key, 0xA8, 0x53); // "seek-"
751   addNECKey("step+", StepForward_Key, 0xA8, 0x54);
752   addNECKey("speed-", SlowMinus_Key, 0xA8, 0x55);
753   addNECKey("speed+", SlowPlus_Key, 0xA8, 0x58);
754   addNECKey("intro", Unmapped_Key, 0xA8, 0x5A);
755   addNECKey("random", Random_Key, 0xA8, 0x5E);
756 }
757
758
759 PioneerDVD1::PioneerDVD1(
760   QObject *guiObject,
761   unsigned int index)
762   : PIRKeysetMetaData(
763       "DVD Keyset 1",
764       Pioneer_Make,
765       index)
766 {
767   addControlledDevice(Pioneer_Make, "VXX2702", DVD_Device);
768   addControlledDevice(Pioneer_Make, "VXX2801", DVD_Device);
769
770   threadableProtocol = new PioneerProtocol(guiObject, index);
771
772   addNECKey("STOP", Stop_Key, 0xA3, 0x98);
773   addNECKey("NEXT", Next_Key, 0xA3, 0x9C);
774   addNECKey("PREV", Previous_Key, 0xA3, 0x9D);
775   addNECKey("PLAY", Play_Key, 0xA3, 0x9E);
776   addNECKey("PAUSE", Pause_Key, 0xA3, 0x9F);
777
778   addPioneerKey("SUBTITLE", Captions_Key, 0xA3, 0x99, 0xAF, 0x36);
779   addPioneerKey("ZOOM", Zoom_Key, 0xA3, 0x99, 0xAF, 0x37);
780   addPioneerKey("SURROUND", Surround_Key, 0xA3, 0x99, 0xAF, 0x61);
781   addPioneerKey("LEFT", Left_Key, 0xA3, 0x99, 0xAF, 0x63);
782   addPioneerKey("RIGHT", Right_Key, 0xA3, 0x99, 0xAF, 0x64);
783   addPioneerKey("PLAY_MODE", Unmapped_Key, 0xA3, 0x99, 0xAF, 0x7F);
784   addPioneerKey("0", Zero_Key, 0xA3, 0x99, 0xAF, 0xA0);
785   addPioneerKey("1", One_Key, 0xA3, 0x99, 0xAF, 0xA1);
786   addPioneerKey("2", Two_Key, 0xA3, 0x99, 0xAF, 0xA2);
787   addPioneerKey("3", Three_Key, 0xA3, 0x99, 0xAF, 0xA3);
788   addPioneerKey("4", Four_Key, 0xA3, 0x99, 0xAF, 0xA4);
789   addPioneerKey("5", Five_Key, 0xA3, 0x99, 0xAF, 0xA5);
790   addPioneerKey("6", Six_Key, 0xA3, 0x99, 0xAF, 0xA6);
791   addPioneerKey("7", Seven_Key, 0xA3, 0x99, 0xAF, 0xA7);
792   addPioneerKey("8", Eight_Key, 0xA3, 0x99, 0xAF, 0xA8);
793   addPioneerKey("9", Nine_Key, 0xA3, 0x99, 0xAF, 0xA9);
794   addPioneerKey("SETUP", Menu_Key, 0xA3, 0x99, 0xAF, 0xB0);
795   addPioneerKey("TOP_MENU", DiscTitle_Key, 0xA3, 0x99, 0xAF, 0xB4);
796   addPioneerKey("ANGLE", Angle_Key, 0xA3, 0x99, 0xAF, 0xB5);
797   addPioneerKey("OPEN/CLOSE", Eject_Key, 0xA3, 0x99, 0xAF, 0xB6);
798   addPioneerKey("MENU", DiscMenu_Key, 0xA3, 0x99, 0xAF, 0xB9);
799   addPioneerKey("AUDIO", Audio_Key, 0xA3, 0x99, 0xAF, 0xBE);
800   addPioneerKey("STANDBY/ON", Power_Key, 0xA3, 0x99, 0xAF, 0xBC);
801   addPioneerKey("DISPLAY", Info_Key, 0xA3, 0x99, 0xAF, 0xE3);
802   addPioneerKey("CLEAR", Clear_Key, 0xA3, 0x99, 0xAF, 0xE5);
803   addPioneerKey("FWD", FastForward_Key, 0xA3, 0x99, 0xAF, 0xE9);
804   addPioneerKey("BWD", Rewind_Key, 0xA3, 0x99, 0xAF, 0xEA);
805   addPioneerKey("ENTER", Enter_Key, 0xA3, 0x99, 0xAF, 0xEF);
806   addPioneerKey("ENTER", Select_Key, 0xA3, 0x99, 0xAF, 0xEF);
807   addPioneerKey("UP", Up_Key, 0xA3, 0x99, 0xAF, 0xF2);
808   addPioneerKey("DOWN", Down_Key, 0xA3, 0x99, 0xAF, 0xF3);
809   addPioneerKey("RETURN", Exit_Key, 0xA3, 0x99, 0xAF, 0xF4);
810 }