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