1879e548f21875bae3766bee2d2b5b81d37ac6ca
[pierogi] / keysets / jvc.cpp
1 #include "jvc.h"
2 #include "jvcprotocol.h"
3 #include "necprotocol.h"
4
5 JVCSat1::JVCSat1(
6   QObject *guiObject,
7   unsigned int index)
8   : PIRKeysetMetaData(
9       "Sat (Dish) Keyset 1",
10       JVC_Make,
11       index)
12 {
13   NECProtocol *np = new NECProtocol(
14    guiObject,
15    index,
16    624, 1500,
17    624, 2600,
18    6000, false,
19    LIRC_NEC);
20
21   threadableProtocol = np;
22
23   np->setHeaderPair(750, 6000);
24   np->setTrailerPulse(624);
25
26   np->setFullHeadlessRepeat(true);
27
28 //  np->setCarrierFrequency(56000);
29 //  np->setDutyCycle(32);
30
31   addKey("power", Power_Key, 0x1EFC, 13);
32   addKey("recent", Unmapped_Key, 0x16FC, 13);
33   addKey("tvWeb", Unmapped_Key, 0x1A7C, 13);
34   addKey("scrollUp", PageUp_Key, 0x137C, 13);
35   addKey("scrollDown", PageDown_Key, 0x117C, 13);
36   addKey("home", Unmapped_Key, 0x15FC, 13);
37   addKey("back", Exit_Key, 0x1FFC, 13);
38   addKey("up", Up_Key, 0x12FC, 13);
39   addKey("left", Left_Key, 0x11FC, 13);
40   addKey("go", Enter_Key, 0x17FC, 13);
41   addKey("right", Right_Key, 0x13FC, 13);
42   addKey("down", Down_Key, 0x10FC, 13);
43   addKey("options", Unmapped_Key, 0x14FC, 13);
44   addKey("chDown", ChannelDown_Key, 0x187C, 13);
45   addKey("record", Record_Key, 0x107C, 13);
46   addKey("rewind", Rewind_Key, 0x1C7C, 13);
47   addKey("play", Play_Key, 0x1E7C, 13);
48   addKey("1", One_Key, 0x1DFC, 13);
49   addKey("2", Two_Key, 0x1D7C, 13);
50   addKey("3", Three_Key, 0x1CFC, 13);
51   addKey("4", Four_Key, 0x1BFC, 13);
52   addKey("5", Five_Key, 0x1B7C, 13);
53   addKey("6", Six_Key, 0x1AFC, 13);
54   addKey("7", Seven_Key, 0x19FC, 13);
55   addKey("8", Eight_Key, 0x197C, 13);
56   addKey("9", Nine_Key, 0x18FC, 13);
57   addKey("0", Zero_Key, 0x177C, 13);
58   addKey("enter", Enter_Key, 0x127C, 13);
59   addKey("pip", PIP_Key, 0x077C, 13);
60   addKey("info", Info_Key, 0x06FC, 13);
61   addKey("listings", Guide_Key, 0x07FC, 13);
62   addKey("personalTv", Unmapped_Key, 0x0CFC, 13);
63   addKey("replay", Replay_Key, 0x0EFC, 13);
64   addKey("skip", Advance_Key, 0x0E7C, 13);
65   addKey("pause", Pause_Key, 0x0DFC, 13);
66   addKey("fastForward", FastForward_Key, 0x0D7C, 13);
67   addKey("stop", Stop_Key, 0x0F7C, 13);
68   addKey("chUp", ChannelUp_Key, 0x0FFC, 13);
69   addKey("recall", PrevChannel_Key, 0x057C, 13);
70 }
71
72
73 JVCSat2::JVCSat2(
74   QObject *guiObject,
75   unsigned int index)
76   : PIRKeysetMetaData(
77       "Sat (Dish) Keyset 2",
78       JVC_Make,
79       index)
80 {
81   NECProtocol *np = new NECProtocol(
82     guiObject,
83     index,
84     440, 2780,
85     440, 1645,
86     6115, false,
87     LIRC_NEC);
88
89   threadableProtocol = np;
90
91   np->setHeaderPair(525, 6045);
92   np->setTrailerPulse(450);
93
94 //  np->setMinimumRepetitions(6);
95   np->setFullHeadlessRepeat(true);
96
97   np->setCarrierFrequency(56000);
98   np->setDutyCycle(32);
99
100   setPostData(0x000, 10);
101
102   addKey("info", Info_Key, 0x0, 6);
103   addKey("power_on", PowerOn_Key, 0x1, 6);
104   addKey("power", Power_Key, 0x2, 6);
105   addKey("1", One_Key, 0x4, 6);
106   addKey("2", Two_Key, 0x5, 6);
107   addKey("3", Three_Key, 0x6, 6);
108   addKey("4", Four_Key, 0x8, 6);
109   addKey("5", Five_Key, 0x9, 6);
110   addKey("6", Six_Key, 0x10, 6);
111   addKey("7", Seven_Key, 0x12, 6);
112   addKey("8", Eight_Key, 0x13, 6);
113   addKey("9", Nine_Key, 0x14, 6);
114   addKey("0", Zero_Key, 0x17, 6);
115   addKey("menu", Menu_Key, 0x11, 6);
116   addKey("select", Select_Key, 0x16, 6);
117   addKey("cancel", Exit_Key, 0x18, 6);
118   addKey("guide", Guide_Key, 0x20, 6);
119   addKey("view", Unmapped_Key, 0x22, 6);
120   addKey("tv_vcr", Input_Key, 0x23, 6);
121   addKey("right", Right_Key, 0x24, 6);
122   addKey("up", Up_Key, 0x26, 6);
123   addKey("recall", PrevChannel_Key, 0x27, 6);
124   addKey("left", Left_Key, 0x28, 6);
125   addKey("down", Down_Key, 0x30, 6);
126   addKey("record", Record_Key, 0x31, 6);
127   addKey("pause", Pause_Key, 0x32, 6);
128   addKey("stop", Stop_Key, 0x33, 6);
129   addKey("sys_info", Info_Key, 0x36, 6);
130   addKey("asterisk", Unmapped_Key, 0x37, 6);
131   addKey("pound", Unmapped_Key, 0x38, 6);
132   addKey("power_off", PowerOff_Key, 0x39, 6);
133   addKey("sat", Unmapped_Key, 0x41, 6);
134   addKey("dish_home", Unmapped_Key, 0x52, 6);
135   addKey("sys_info2", Unmapped_Key, 0x54, 6);
136   addKey("dish_home2", Unmapped_Key, 0x56, 6);
137 }
138
139
140 JVCVCR1::JVCVCR1(
141   QObject *guiObject,
142   unsigned int index)
143   : PIRKeysetMetaData(
144       "VCR Keyset 1",
145       JVC_Make,
146       index)
147 {
148   threadableProtocol = new JVCProtocol(guiObject, index);
149
150 //  setPreData(0xC2, 8);
151   setPreData(0x43, 8);
152
153   addKey("av", Unmapped_Key, 0x01, 8);
154   addKey("stop", Stop_Key, 0x03, 8);
155   addKey("eject", Eject_Key, 0x04, 8);
156   addKey("forward", FastForward_Key, 0x06, 8);
157   addKey("backward", Rewind_Key, 0x07, 8);
158   addKey("power", Power_Key, 0x0B, 8);
159   addKey("pause", Pause_Key, 0x0D, 8);
160   addKey("play", Play_Key, 0x0E, 8);
161
162   addKey("input_1", Unmapped_Key, 0x11, 8);
163   addKey("tv_vcr", Input_Key, 0x13, 8); // "monitor"
164   addKey("right", Next_Key, 0x14, 8); // "JOG+"
165   addKey("left", Previous_Key, 0x15, 8); // "JOG-"
166   addKey("MUTE", Mute_Key, 0x17, 8);
167   addKey("pr_dn", ChannelDown_Key, 0x18, 8);
168   addKey("pr_up", ChannelUp_Key, 0x19, 8);
169
170   addKey("no_1", One_Key, 0x21, 8);
171   addKey("no_2", Two_Key, 0x22, 8);
172   addKey("no_3", Three_Key, 0x23, 8);
173   addKey("no_4", Four_Key, 0x24, 8);
174   addKey("no_5", Five_Key, 0x25, 8);
175   addKey("no_6", Six_Key, 0x26, 8);
176   addKey("no_7", Seven_Key, 0x27, 8);
177   addKey("no_8", Eight_Key, 0x28, 8);
178   addKey("no_9", Nine_Key, 0x29, 8);
179   addKey("SPEED", VHSSpeed_Key, 0x31, 8); // "I/II"
180   addKey("Blue", Blue_Key, 0x31, 8); // odd
181   addKey("no_0", Zero_Key, 0x33, 8);
182
183   addKey("TIMER", Timer_Key, 0x35, 8);
184   addKey("CANCEL", Exit_Key, 0x36, 8); // "zero4x", "reset"
185   addKey("CANCEL", Clear_Key, 0x36, 8); // "zero4x", "reset"
186   addKey("menu", Menu_Key, 0x37, 8); // "PROG"
187   addKey("DISPLAY", Info_Key, 0x38, 8);
188   addKey("clock", Clock_Key, 0x3A, 8);
189   addKey("Green", Green_Key, 0x3B, 8);
190   addKey("ok", Select_Key, 0x3C, 8);
191   addKey("check", Unmapped_Key, 0x3D, 8); // "prog_check"
192   addKey("enter", Enter_Key, 0x3E, 8); // "store"
193
194   addKey("ch_set", Unmapped_Key, 0x66, 8);
195   addKey("line", Unmapped_Key, 0x6E, 8);
196   addKey("mode", Unmapped_Key, 0x81, 8);
197   addKey("Red", Red_Key, 0x91, 8);
198   addKey("INDEX1", Unmapped_Key, 0x93, 8);
199   addKey("INDEX2", Unmapped_Key, 0x94, 8);
200   addKey("3dphonic", Unmapped_Key, 0x95, 8);
201   addKey("ff_30sec", Advance_Key, 0x96, 8); // "skip"
202   addKey("scene-finder", Unmapped_Key, 0x97, 8);
203   addKey("Yellow", Yellow_Key, 0x97, 8);
204   addKey("start", Unmapped_Key, 0x98, 8);
205   addKey("showview", Program_Key, 0xC1, 8); // program
206   addKey("review", Replay_Key, 0xC3, 8);
207   addKey("SOUND2", Unmapped_Key, 0xC4, 8);
208   addKey("date+", Unmapped_Key, 0xC6, 8);
209   addKey("date-", Unmapped_Key, 0xC7, 8);
210   addKey("start+", Unmapped_Key, 0xC8, 8);
211   addKey("start-", Unmapped_Key, 0xC9, 8);
212   addKey("stop+", Unmapped_Key, 0xCA, 8);
213   addKey("stop-", Unmapped_Key, 0xCB, 8);
214   addKey("RECORD", Record_Key, 0xCC, 8); // "1tr"
215
216   addKey("MIC+", Unmapped_Key, 0xD1, 8);
217   addKey("MIC-", Unmapped_Key, 0xD2, 8);
218   addKey("SOUND1", Unmapped_Key, 0xD7, 8);
219   addKey("SOUND3", Unmapped_Key, 0xDC, 8);
220   addKey("IN/OUT", Unmapped_Key, 0xDE, 8);
221   addKey("lock", Unmapped_Key, 0xF0, 8);
222   addKey("die", Unmapped_Key, 0xFA, 8);
223
224   // Cursor keys duplicate some other keys:
225   addKey("right", Right_Key, 0x14, 8); // "JOG+"
226   addKey("left", Left_Key, 0x15, 8); // "JOG-"
227   addKey("pr_dn", Down_Key, 0x18, 8);
228   addKey("pr_up", Up_Key, 0x19, 8);
229 }
230
231
232 JVCVCR1a::JVCVCR1a(
233   QObject *guiObject,
234   unsigned int index)
235   : JVCVCR1(guiObject, index)
236 {
237   setKeysetName("VCR Keyset 1a");
238
239   addKey("red", Red_Key, 0x07, 8);
240   addKey("green", Green_Key, 0x51, 8);
241   addKey("yellow", Yellow_Key, 0x14, 8);
242   addKey("blue", Blue_Key, 0x06, 8);
243   addKey("menu", Menu_Key, 0x13, 8);
244   addKey("last", Unmapped_Key, 0x15, 8); // what is this?
245   addKey("suchl", Unmapped_Key, 0x96, 8); // ditto
246 }
247
248
249 // Setup keysets for use in B-mode:
250 JVCVCRBmode1::JVCVCRBmode1(
251   QObject *guiObject,
252   unsigned int index)
253   : JVCVCR1(guiObject, index)
254 {
255   setKeysetName("VCR (B Mode) keyset 1");
256
257   setPreData(0x53, 8);
258 }
259
260
261 JVCVCRBmode1a::JVCVCRBmode1a(
262   QObject *guiObject,
263   unsigned int index)
264   : JVCVCR1a(guiObject, index)
265 {
266   setKeysetName("VCR (B Mode) keyset 1a");
267
268   setPreData(0x53, 8);
269 }
270
271
272 JVCTV1::JVCTV1(
273   QObject *guiObject,
274   unsigned int index)
275   : PIRKeysetMetaData(
276       "TV Keyset 1",
277       JVC_Make,
278       index)
279 {
280   threadableProtocol = new JVCProtocol(guiObject, index);
281
282   setPreData(0x03, 8);
283
284   addKey("main/sap", Audio_Key, 0x00, 8); // "I/II"
285   addKey("info", Info_Key, 0x04, 8); // "display"
286   addKey("return", Unmapped_Key, 0x05, 8);
287   addKey("RESET", Reset_Key, 0x06, 8);
288   addKey("BROADCAST", Unmapped_Key, 0x0B, 8); // "ant/cable"
289   addKey("video_status", Unmapped_Key, 0x0D, 8);
290   addKey("cc", Captions_Key, 0x0E, 8);
291   addKey("input_s", Unmapped_Key, 0x0F, 8);
292
293   addKey("input_2", Unmapped_Key, 0x12, 8);
294   addKey("TV/VCR", Input_Key, 0x13, 8); // "input"
295   addKey("input_3", Unmapped_Key, 0x14, 8);
296   addKey("Power", Power_Key, 0x17, 8);
297   addKey("Prog-", ChannelDown_Key, 0x18, 8);
298   addKey("Prog+", ChannelUp_Key, 0x19, 8);
299   addKey("LEVELUP", Unmapped_Key, 0x1A, 8);
300   addKey("LEVELDOWN", Unmapped_Key, 0x1B, 8);
301   addKey("AUDIO", Mute_Key, 0x1C, 8); // "mute"
302   addKey("Vol+", VolumeUp_Key, 0x1E, 8);
303   addKey("Vol-", VolumeDown_Key, 0x1F, 8);
304
305   addKey("0", Zero_Key, 0x20, 8);
306   addKey("1", One_Key, 0x21, 8);
307   addKey("2", Two_Key, 0x22, 8);
308   addKey("3", Three_Key, 0x23, 8);
309   addKey("4", Four_Key, 0x24, 8);
310   addKey("5", Five_Key, 0x25, 8);
311   addKey("6", Six_Key, 0x26, 8);
312   addKey("7", Seven_Key, 0x27, 8);
313   addKey("8", Eight_Key, 0x28, 8);
314   addKey("9", Nine_Key, 0x29, 8);
315
316   addKey("br_up", Unmapped_Key, 0x30, 8);
317   addKey("br_down", Unmapped_Key, 0x31, 8);
318   addKey("col_up", Unmapped_Key, 0x32, 8);
319   addKey("col_down", Unmapped_Key, 0x33, 8);
320   addKey("con_up", Unmapped_Key, 0x36, 8);
321   addKey("con_down", Unmapped_Key, 0x37, 8);
322   addKey("FUNCTION", Unmapped_Key, 0x3B, 8);
323   addKey("RECALL", PrevChannel_Key, 0x3C, 8);
324   addKey("sound", Unmapped_Key, 0x42, 8); // "<>"
325   addKey("VNR", Unmapped_Key, 0x45, 8);
326   addKey("right", Right_Key, 0x55, 8);
327   addKey("left", Left_Key, 0x5B, 8);
328   addKey("X", Clear_Key, 0x70, 8);
329   addKey("Timer", Sleep_Key, 0x71, 8);
330   addKey("100+", PlusOneHundred_Key, 0x77, 8);
331   addKey("standard", PictureMode_Key, 0x79, 8); // "picture_mode"
332   addKey("menu", Menu_Key, 0x7A, 8);
333   addKey("down", Down_Key, 0x7B, 8);
334   addKey("up", Up_Key, 0x7C, 8);
335
336   addKey("tone", Unmapped_Key, 0x90, 8);
337   addKey("colour", Unmapped_Key, 0x92, 8); // "P/S"
338   addKey("aspect", AspectRatio_Key, 0x93, 8);
339   addKey("CH_PRESET", Unmapped_Key, 0x99, 8);
340   addKey("MAX_CH", Unmapped_Key, 0x9D, 8);
341 //  addKey("SP/LP", VHSSpeed_Key, 0x9D, 8); // "/_//"
342   addKey("-/--", DoubleDigit_Key, 0x9D, 8);
343   addKey("sound", SoundMode_Key, 0xB4, 8);
344   addKey("theater_pro", Unmapped_Key, 0xD5, 8);
345   addKey("C1/C2", Unmapped_Key, 0xDA, 8);
346   addKey("exit", Exit_Key, 0xE6, 8);
347
348 //  addKey("Red", Red_Key, 0x91, 8);
349 //  addKey("Green", Green_Key, 0x3B, 8);
350 //  addKey("Yellow", Yellow_Key, 0x97, 8);
351 //  addKey("Blue", Blue_Key, 0x31, 8);
352 }
353
354
355 JVCTV1a::JVCTV1a(
356   QObject *guiObject,
357   unsigned int index)
358   : JVCTV1(guiObject, index)
359 {
360   setKeysetName("TV Keyset 1a");
361
362   addKey("+10", DoubleDigit_Key, 0x71, 8);
363 }
364
365
366 JVCTV1b::JVCTV1b(
367   QObject *guiObject,
368   unsigned int index)
369   : JVCTV1(guiObject, index)
370 {
371   setKeysetName("TV Keyset 1b");
372
373   addKey("sleep_timer", Sleep_Key, 0x03, 8);
374 }
375
376
377 JVCTV1c::JVCTV1c(
378   QObject *guiObject,
379   unsigned int index)
380   : JVCTV1(guiObject, index)
381 {
382   setKeysetName("TV Keyset 1c");
383
384   addKey("STOP", Stop_Key, 0x00, 8);
385   addKey("REC", Record_Key, 0x04, 8);
386   addKey("PAUSE", Pause_Key, 0x0B, 8);
387   addKey("PLAY", Play_Key, 0x89, 8);
388   addKey("REW", Rewind_Key, 0xB2, 8);
389   addKey("FF", FastForward_Key, 0xD6, 8);
390 }
391
392
393 // TVs where "volume" and "channel" keys are used to navigate menus:
394 JVCTV1d::JVCTV1d(
395   QObject *guiObject,
396   unsigned int index)
397   : JVCTV1(guiObject, index)
398 {
399   setKeysetName("TV Keyset 1d");
400
401   addKey("down", Down_Key, 0x18, 8);
402   addKey("up", Up_Key, 0x19, 8);
403   addKey("right", Right_Key, 0x1E, 8);
404   addKey("left", Left_Key, 0x1F, 8);
405 }
406
407
408 JVCDAT1::JVCDAT1(
409   QObject *guiObject,
410   unsigned int index)
411   : PIRKeysetMetaData(
412       "DAT Keyset 1",
413       JVC_Make,
414       index)
415 {
416   threadableProtocol = new JVCProtocol(guiObject, index);
417
418 //  setPreData(0xC9, 8);
419   setPreData(0x93, 8);
420
421   addKey("REC", Record_Key, 0x02, 8);
422   addKey("STOP", Stop_Key, 0x03, 8);
423   addKey("FF", FastForward_Key, 0x06, 8);
424   addKey("REW", Rewind_Key, 0x07, 8);
425   addKey("PLAY", Play_Key, 0x0C, 8);
426   addKey("PAUSE", Pause_Key, 0x0D, 8);
427
428   addKey("INTRO", Unmapped_Key, 0x11, 8);
429   addKey("MEMORY", Program_Key, 0x12, 8);
430   addKey("DISPLAY", Info_Key, 0x14, 8);
431   addKey("CALL", Unmapped_Key, 0x15, 8);
432   addKey("SEARCH->>", Unmapped_Key, 0x16, 8);
433   addKey("<<-SEARCH", Unmapped_Key, 0x17, 8);
434   addKey("|<-SKIP", Previous_Key, 0x18, 8);
435   addKey("SKIP->|", Next_Key, 0x19, 8);
436   addKey("REPEAT", Repeat_Key, 0x1B, 8);
437   addKey("REC_MUTE", RecordMute_Key, 0x1C, 8);
438
439   addKey("0", Zero_Key, 0x20, 8);
440   addKey("1", One_Key, 0x21, 8);
441   addKey("2", Two_Key, 0x22, 8);
442   addKey("3", Three_Key, 0x23, 8);
443   addKey("4", Four_Key, 0x24, 8);
444   addKey("5", Five_Key, 0x25, 8);
445   addKey("6", Six_Key, 0x26, 8);
446   addKey("7", Seven_Key, 0x27, 8);
447   addKey("8", Eight_Key, 0x28, 8);
448   addKey("9", Nine_Key, 0x29, 8);
449
450   addKey("RESERVE", Unmapped_Key, 0x2A, 8);
451   addKey("CANCEL/RESET", Reset_Key, 0x2D, 8);
452 }
453
454
455 JVCCarDeck1::JVCCarDeck1(
456   QObject *guiObject,
457   unsigned int index)
458   : PIRKeysetMetaData(
459       "Car Deck Keyset 1",
460       JVC_Make,
461       index)
462 {
463   threadableProtocol = new JVCProtocol(guiObject, index);
464
465 //  setPreData(0xF1, 8);
466   setPreData(0x8F, 8);
467
468   addKey("Vol+", VolumeUp_Key, 0x84, 8);
469   addKey("Vol-", VolumeDown_Key, 0x85, 8);
470   addKey("Source", Input_Key, 0x88, 8);  // "FUNC", "SRC"
471   addKey("Sound", Mute_Key, 0x8D, 8); // "SCM"
472   addKey("Power", Power_Key, 0x8E, 8); // "Att"
473   addKey("DISC+", ChannelUp_Key, 0x94, 8);
474   addKey("DISC-", ChannelDown_Key, 0x95, 8);
475
476   // Can't be sure if either or both of these are true:
477   addKey("Track+", Next_Key, 0x92, 8);
478   addKey("Track-", Previous_Key, 0x93, 8);
479   addKey("FF", FastForward_Key, 0x92, 8);
480   addKey("Rew", Rewind_Key, 0x93, 8);
481 }
482
483
484 // Modern JVC audio devices are using a wide array of addresses, so I'm
485 // smushing the address and command together.  Once you start mixing adresses
486 // together, they might as well all be a single command anyway...
487
488 JVCAudio1::JVCAudio1(
489   QObject *guiObject,
490   unsigned int index)
491   : PIRKeysetMetaData(
492       "Audio Keyset 1",
493       JVC_Make,
494       index)
495 {
496   threadableProtocol = new JVCProtocol(guiObject, index);
497
498   addKey("SLEEP", Sleep_Key, 0x03A3, 16);
499   addKey("POWER", Power_Key, 0x17A3, 16);
500   addKey("VOL+", VolumeUp_Key, 0x1EA3, 16);
501   addKey("VOL-", VolumeDown_Key, 0x1FA3, 16);
502   addKey("MD-AUX", Unmapped_Key, 0x3EA3, 16); // "TAPE-AUX"
503   addKey("TAPE", Unmapped_Key, 0x3FA3, 16);
504   addKey("FM-MODE", Unmapped_Key, 0x5AA3, 16);
505   addKey("TUNER-BAND", TunerBand_Key, 0x5BA3, 16);
506   addKey("AHB-PRO", Unmapped_Key, 0x75A3, 16);
507   addKey("AUTO-PRESET", Unmapped_Key, 0x77A3, 16);
508
509   addKey("STOP", Stop_Key, 0x43B3, 16); // "CD.Stop"
510   addKey("CD-EJECT", Eject_Key, 0x44B3, 16);
511   addKey("INTRO", Unmapped_Key, 0x48B3, 16);
512   addKey("PLAY", Play_Key, 0x4CB3, 16); // "CD.Play"
513   addKey("DIMMER", Unmapped_Key, 0x52B3, 16);
514   addKey("REW", Rewind_Key, 0x58B3, 16);
515   addKey("FF", FastForward_Key, 0x59B3, 16); // "CD.Next"
516   addKey("REPEAT", Repeat_Key, 0x5BB3, 16);
517   addKey("1", One_Key, 0x61B3, 16);
518   addKey("2", Two_Key, 0x62B3, 16);
519   addKey("3", Three_Key, 0x63B3, 16);
520   addKey("4", Four_Key, 0x64B3, 16);
521   addKey("5", Five_Key, 0x65B3, 16);
522   addKey("6", Six_Key, 0x66B3, 16);
523   addKey("7", Seven_Key, 0x67B3, 16);
524   addKey("8", Eight_Key, 0x68B3, 16);
525   addKey("9", Nine_Key, 0x69B3, 16);
526   addKey("MEMORY/CALL", Program_Key, 0x6AB3, 16); // "PROGRAM"
527   addKey("CANCEL", Clear_Key, 0x6DB3, 16);
528   addKey("10", Zero_Key, 0x6EB3, 16); // Treating "10" as "0" here
529   addKey("+10", DoubleDigit_Key, 0x6FB3, 16);
530   addKey("RANDOM", Random_Key, 0x72B3, 16);
531
532   addKey("UP", Up_Key, 0x00AF, 16);
533   addKey("DOWN", Down_Key, 0x01AF, 16);
534   addKey("RIGHT", Right_Key, 0x02AF, 16);
535   addKey("LEFT", Left_Key, 0x03AF, 16);
536   addKey("NEXT", Next_Key, 0x05AF, 16);
537   addKey("PREV", Previous_Key, 0x06AF, 16);
538   addKey("BASS", Unmapped_Key, 0x1EAF, 16);
539   addKey("TREBLE", Unmapped_Key, 0x2EAF, 16);
540   addKey("DISPLAY-MODE", Info_Key, 0x83AF, 16);
541   addKey("PTY-EON", Unmapped_Key, 0x85AF, 16);
542   addKey("SET", Select_Key, 0x91AF, 16);
543
544   addKey("EDIT-TITLE", Unmapped_Key, 0x89BF, 16);
545   addKey("CHARA", Unmapped_Key, 0xB8BF, 16);
546 }
547
548
549 JVCAudio1a::JVCAudio1a(
550   QObject *guiObject,
551   unsigned int index)
552   : JVCAudio1(guiObject, index)
553 {
554   setKeysetName("Audio Keyset 1a");
555
556   addKey("CD-PLAY-PAUSE", Play_Key, 0x3DA3, 16);
557   addKey("MD-PLAY-PAUSE", Unmapped_Key, 0x30AF, 16);
558 }
559
560
561 JVCAudio1b::JVCAudio1b(
562   QObject *guiObject,
563   unsigned int index)
564   : JVCAudio1(guiObject, index)
565 {
566   setKeysetName("Audio Keyset 1b");
567
568   addKey("VCR", Unmapped_Key, 0x2443, 16);
569
570   addKey("tape-stop", Unmapped_Key, 0x0383, 16); // "Deck.Stop"
571   addKey("FORWARDS", Unmapped_Key, 0x0683, 16); // "Deck.Right"
572   addKey("BACKWARDS", Unmapped_Key, 0x0783, 16); // "Deck.Left"
573   addKey("PLAY", Unmapped_Key, 0x0C83, 16); // "tape-play"
574   addKey("STILL/PAUSE", Unmapped_Key, 0x0D83, 16);
575   addKey("STOP", Unmapped_Key, 0x0D83, 16);
576   addKey("Deck.PlayLeft", Unmapped_Key, 0x0E83, 16);
577   addKey("Deck.PlayRight", Unmapped_Key, 0x0F83, 16);
578   addKey("STOP2", Unmapped_Key, 0x4383, 16);
579   addKey("REC+PLAY", Record_Key, 0xCC83, 16);
580   addKey("Deck.A", Unmapped_Key, 0xD083, 16);
581   addKey("Deck.B", Unmapped_Key, 0xD183, 16);
582   addKey("RecPause", RecordPause_Key, 0xED83, 16);
583
584   addKey("MONITOR/TAPE2", Unmapped_Key, 0x07A3, 16);
585   addKey("TUNER", Unmapped_Key, 0x0BA3, 16);
586   addKey("tuner-", ChannelDown_Key, 0x18A3, 16);
587   addKey("tuner+", ChannelUp_Key, 0x19A3, 16);
588   addKey("FADE_MUTING", Unmapped_Key, 0x1CA3, 16);
589   addKey("Tuner 0", Unmapped_Key, 0x20A3, 16);
590   addKey("Tuner 1", Unmapped_Key, 0x21A3, 16);
591   addKey("Tuner 2", Unmapped_Key, 0x22A3, 16);
592   addKey("Tuner 3", Unmapped_Key, 0x23A3, 16);
593   addKey("Tuner 4", Unmapped_Key, 0x24A3, 16);
594   addKey("Tuner 5", Unmapped_Key, 0x25A3, 16);
595   addKey("Tuner 6", Unmapped_Key, 0x26A3, 16);
596   addKey("Tuner 7", Unmapped_Key, 0x27A3, 16);
597   addKey("Tuner 8", Unmapped_Key, 0x28A3, 16);
598   addKey("Tuner 9", Unmapped_Key, 0x29A3, 16);
599   addKey("Tuner 10", Unmapped_Key, 0x2AA3, 16);
600   addKey("Tuner +10", Unmapped_Key, 0x2FA3, 16);
601   addKey("SoundMode", SoundMode_Key, 0x38A3, 16);
602   addKey("PHONO", Unmapped_Key, 0x3CA3, 16);
603   addKey("cd-play", Play_Key, 0x3DA3, 16); // "CD"
604
605   addKey("cd-stop", Stop_Key, 0x43B3, 16);
606   addKey("cd-pause", Pause_Key, 0x4DB3, 16);
607   addKey("cd-prev", Previous_Key, 0x58B3, 16);
608   addKey("cd-next", Next_Key, 0x59B3, 16);
609   addKey("0", Zero_Key, 0x60B3, 16);
610   addKey("cd-back", Rewind_Key, 0x70B3, 16);
611   addKey("Disc program", Unmapped_Key, 0x71B3, 16);
612   addKey("cd-forw", FastForward_Key, 0x76B3, 16);
613   addKey("Disc continue", Unmapped_Key, 0x77B3, 16);
614   addKey("Disc 1", Unmapped_Key, 0x79B3, 16);
615   addKey("Disc 2", Unmapped_Key, 0x7AB3, 16);
616   addKey("Disc 3", Unmapped_Key, 0x7BB3, 16);
617   addKey("Disc 4", Unmapped_Key, 0x7CB3, 16);
618   addKey("Disc 5", Unmapped_Key, 0x7DB3, 16);
619   addKey("Disc 6", Unmapped_Key, 0x7EB3, 16);
620 }
621
622
623 JVCAudio2::JVCAudio2(
624   QObject *guiObject,
625   unsigned int index)
626   : PIRKeysetMetaData(
627       "Audio Keyset 2",
628       JVC_Make,
629       index)
630 {
631   threadableProtocol = new JVCProtocol(guiObject, index);
632
633 //  setPreData(0xF9, 8);
634   setPreData(0x9F, 8);
635
636   addKey("power", Power_Key, 0x00, 8);
637   addKey("vol+", VolumeUp_Key, 0x01, 8);
638   addKey("vol-", VolumeDown_Key, 0x02, 8);
639   addKey("ACTIVE_HYPER_BASS", Unmapped_Key, 0x04, 8); // "bass"
640   addKey("band", TunerBand_Key, 0x0B, 8);  // "TUNER_BAND"
641   addKey("aux", Unmapped_Key, 0x0D, 8);
642
643   addKey("enter", Enter_Key, 0x11, 8);
644   addKey("PRESET_SCAN", Scan_Key, 0x12, 8);
645   addKey("auto_preset", Unmapped_Key, 0x13, 8);
646   addKey("presettuning", Unmapped_Key, 0x15, 8);
647   addKey("display-mode", Unmapped_Key, 0x16, 8);
648   addKey("pty-eon", Unmapped_Key, 0x17, 8);
649   addKey("right-select", Unmapped_Key, 0x18, 8);
650   addKey("left-select", Unmapped_Key, 0x19, 8);
651   addKey("display", Info_Key, 0x1C, 8); // "CLOCK"
652   addKey("auto_mono", Unmapped_Key, 0x1F, 8);  // "fmstereo", "mode"
653
654   addKey("1", One_Key, 0x21, 8);
655   addKey("2", Two_Key, 0x22, 8);
656   addKey("3", Three_Key, 0x23, 8);
657   addKey("4", Four_Key, 0x24, 8);
658   addKey("5", Five_Key, 0x25, 8);
659   addKey("6", Six_Key, 0x26, 8);
660   addKey("7", Seven_Key, 0x27, 8);
661   addKey("8", Eight_Key, 0x28, 8);
662   addKey("9", Nine_Key, 0x29, 8);
663   addKey("10", Zero_Key, 0x2A, 8); // treating "10" as "0" here
664   addKey("10+", DoubleDigit_Key, 0x2E, 8);
665
666   addKey("TIMER_SET", Timer_Key, 0x30, 8);
667   addKey("sleep", Sleep_Key, 0x32, 8);
668   addKey("SET", Select_Key, 0x33, 8); // "clock"
669   addKey("TIMER_ON_OFF", Unmapped_Key, 0x36, 8); // "onoff"
670   addKey("ff", FastForward_Key, 0x3D, 8); // "SEARCH_UP" "search_forward"
671   addKey("rew", Rewind_Key, 0x3E, 8);  // "SEARCH_DOWN" "search_back"
672   addKey("stop", Unmapped_Key, 0x41, 8); // "TAPESTOP"
673   addKey("tape", Unmapped_Key, 0x42, 8);
674   addKey("ff", Unmapped_Key, 0x44, 8); // "TAPENEXT"
675   addKey("rewind", Unmapped_Key, 0x45, 8); // "TAPEPREV"
676   addKey("record", Record_Key, 0x4B, 8); // "TAPEREC"
677   addKey("play", Unmapped_Key, 0x4C, 8); // "TAPERIGHT"
678   addKey("reverseplay", Unmapped_Key, 0x4D, 8); // "TAPELEFT"
679   addKey("synchrorec", Unmapped_Key, 0x56, 8);
680   addKey("deckab", Unmapped_Key, 0x58, 8);
681   addKey("revmode", Unmapped_Key, 0x5F, 8);
682
683   addKey("play", Play_Key, 0x70, 8); // "CD_PLAY_PAUSE"
684   addKey("play", Pause_Key, 0x70, 8); // "CD_PLAY_PAUSE"
685   addKey("stop", Stop_Key, 0x71, 8); // "CD_STOP" "stop_clear"
686   addKey("stop", Clear_Key, 0x71, 8); // "CD_STOP" "stop_clear"
687   addKey("NEXT_TRACK", Next_Key, 0x72, 8);
688   addKey("PREV_TRACK", Previous_Key, 0x73, 8);
689   addKey("memory", Program_Key, 0x74, 8); // "MEMORY_CALL", "program"
690   addKey("edit", Unmapped_Key, 0x75, 8);
691   addKey("intro", Unmapped_Key, 0x76, 8);
692   addKey("random", Random_Key, 0x77, 8);
693   addKey("repeat", Repeat_Key, 0x78, 8);
694   addKey("open_close", Eject_Key, 0x7B, 8); // "allcdeject"
695   addKey("continue", Unmapped_Key, 0x7D, 8);
696   addKey("call", Unmapped_Key, 0x7F, 8);
697   addKey("FREQUENCY", Unmapped_Key, 0x80, 8);
698   addKey("tone", Unmapped_Key, 0x86, 8);
699   addKey("bass+", Unmapped_Key, 0x87, 8);
700   addKey("bass-", Unmapped_Key, 0x88, 8);
701   addKey("treble+", Unmapped_Key, 0x89, 8);
702   addKey("treble-", Unmapped_Key, 0x8A, 8);
703   addKey("sound", Unmapped_Key, 0x8F, 8);
704   addKey("beat-cut", Unmapped_Key, 0xEE, 8);
705   addKey("playcd1", Unmapped_Key, 0xF1, 8);
706   addKey("playcd2", Unmapped_Key, 0xF2, 8);
707   addKey("playcd3", Unmapped_Key, 0xF3, 8);
708   addKey("ejectcd1", Unmapped_Key, 0xF4, 8);
709   addKey("ejectcd2", Unmapped_Key, 0xF5, 8);
710   addKey("ejectcd2", Unmapped_Key, 0xF6, 8);
711 }
712
713
714 JVCDVD1::JVCDVD1(
715   QObject *guiObject,
716   unsigned int index)
717   : PIRKeysetMetaData(
718       "DVD Keyset 1",
719       JVC_Make,
720       index)
721 {
722   threadableProtocol = new JVCProtocol(guiObject, index);
723
724 //  setPreData(0xF7, 8);
725   setPreData(0xEF, 8);
726
727   addKey("power", Power_Key, 0x40, 8);
728   addKey("stop", Stop_Key, 0x43, 8);
729   addKey("openclose", Eject_Key, 0x44, 8);
730   addKey("SWOOP", Unmapped_Key, 0x49, 8);
731   addKey("play", Play_Key, 0x4C, 8);
732   addKey("pause", Pause_Key, 0x4D, 8);
733   addKey("DIMMER", Unmapped_Key, 0x51, 8);
734   addKey("repeat", Repeat_Key, 0x5B, 8);
735
736   addKey("0", Zero_Key, 0x60, 8);
737   addKey("1", One_Key, 0x61, 8);
738   addKey("2", Two_Key, 0x62, 8);
739   addKey("3", Three_Key, 0x63, 8);
740   addKey("4", Four_Key, 0x64, 8);
741   addKey("5", Five_Key, 0x65, 8);
742   addKey("6", Six_Key, 0x66, 8);
743   addKey("7", Seven_Key, 0x67, 8);
744   addKey("8", Eight_Key, 0x68, 8);
745   addKey("9", Nine_Key, 0x69, 8);
746   addKey("cancel", Clear_Key, 0x6D, 8);
747   addKey("10", Unmapped_Key, 0x6E, 8);
748   addKey("+10", DoubleDigit_Key, 0x6F, 8);
749
750   addKey("back", Rewind_Key, 0x70, 8); // "SLOW_MINUS"
751   addKey("forw", FastForward_Key, 0x76, 8); // "SLOW_PLUS"
752   addKey("choice", Unmapped_Key, 0x7F, 8);
753   addKey("playmode", Unmapped_Key, 0x83, 8);
754
755   addKey("zoom+", Unmapped_Key, 0xAE, 8);
756   addKey("zoom-", Unmapped_Key, 0xAF, 8);
757   addKey("skip_forw", Next_Key, 0xB0, 8); // "next"
758   addKey("skip_back", Previous_Key, 0xB1, 8); // "previous"
759   addKey("display", Info_Key, 0xB5, 8);
760   addKey("digest", Unmapped_Key, 0xB9, 8);
761   addKey("zoom", Zoom_Key, 0xBC, 8);
762   addKey("3dphonix", Unmapped_Key, 0xBD, 8);
763   addKey("vfp", Unmapped_Key, 0xBE, 8); // "theaterposition"
764
765   addKey("onscreen", Unmapped_Key, 0xC0, 8);
766   addKey("menu", Menu_Key, 0xC1, 8);
767   addKey("topmenu", DiscTitle_Key, 0xC2, 8);
768   addKey("audio", Audio_Key, 0xC8, 8);
769   addKey("angle", Angle_Key, 0xCB, 8);
770   addKey("subtitle", Captions_Key, 0xCD, 8);
771
772   addKey("up", Up_Key, 0xD0, 8);
773   addKey("down", Down_Key, 0xD1, 8);
774   addKey("left", Left_Key, 0xD2, 8);
775   addKey("right", Right_Key, 0xD3, 8);
776   addKey("enter", Select_Key, 0xD4, 8);
777   addKey("return", Exit_Key, 0xD5, 8);
778   addKey("title/group", Unmapped_Key, 0xEE, 8);
779
780 //  addKey("voldown", VolumeDown_Key, 0xC5F8, 16);
781 //  addKey("volup", VolumeUp_Key, 0xC578, 16);
782 }