First Extras-Testing Candidate Release
[pierogi] / keysets / hitachi.cpp
1 #include "hitachi.h"
2 #include "protocols/necprotocol.h"
3
4
5 HitachiTV1::HitachiTV1(
6   QObject *guiObject,
7   unsigned int index)
8   : PIRKeysetMetaData(
9       "TV Keyset 1",
10       Hitachi_Make,
11       index)
12 {
13   threadableProtocol = new NECProtocol(guiObject, index, false, true);
14
15 //  setPreData(0x0AF5, 16);
16   setPreData(0x50, 8);
17
18   addKey("8", Eight_Key, 0x04, 8);
19   addKey("9", Nine_Key, 0x05, 8);
20 //  addKey("Language", Language_Key, 0x06, 8);
21   addKey("CH_I/II", Audio_Key, 0x08, 8);
22   addKey("tv/video", Input_Key, 0x09, 8); // "AV"
23   addKey("mute", Mute_Key, 0x0B, 8);
24   addKey("0", Zero_Key, 0x0C, 8);
25   addKey("1", One_Key, 0x0D, 8);
26   addKey("2", Two_Key, 0x0E, 8);
27   addKey("3", Three_Key, 0x0F, 8);
28   addKey("recall", PrevChannel_Key, 0x10, 8);
29   addKey("timer", Sleep_Key, 0x11, 8);
30   addKey("vol_up", VolumeUp_Key, 0x12, 8);
31   addKey("CH", Unmapped_Key, 0x13, 8);
32   addKey("Store", Unmapped_Key, 0x14, 8);
33   addKey("vol_down", VolumeDown_Key, 0x15, 8);
34   addKey("power", Power_Key, 0x17, 8);
35   addKey("ch_down", ChannelDown_Key, 0x18, 8);
36   addKey("ch_up", ChannelUp_Key, 0x19, 8);
37   addKey("HELP", Info_Key, 0x1A, 8);
38   addKey("3D-SOUND", Surround_Key, 0x1B, 8);
39   addKey("4", Four_Key, 0x1C, 8);
40   addKey("5", Five_Key, 0x1D, 8);
41   addKey("6", Six_Key, 0x1E, 8);
42   addKey("7", Seven_Key, 0x1F, 8);
43   addKey("MENU", Menu_Key, 0x40, 8);
44   addKey("OK", Select_Key, 0x43, 8);
45   addKey("return", Exit_Key, 0x44, 8);
46   addKey("green sub title", Green_Key, 0x45, 8);
47   addKey("green sub title", Captions_Key, 0x45, 8);
48   addKey("yellow pip a/b", Yellow_Key, 0x46, 8); // "U.N.L"
49   addKey("yellow pip a/b", PIPSource_Key, 0x46, 8); // "U.N.L"
50   addKey("blue pip 2 4 24", Blue_Key, 0x47, 8); // "HOLD"
51   addKey("red text", Red_Key, 0x4C, 8);
52   addKey("red text", Teletext_Key, 0x4C, 8); 
53   addKey("PSCAN100HZ", Unmapped_Key, 0x4D, 8);
54   addKey("SOUND", SoundMode_Key, 0x4F, 8);
55   addKey("X", Unmapped_Key, 0x54, 8);
56   addKey("krasn", Unmapped_Key, 0x5B, 8);
57   addKey("zelen", Unmapped_Key, 0x5C, 8);
58   addKey("Reveal", Unmapped_Key, 0x5D, 8); // "jolt"
59   addKey("zelen", Unmapped_Key, 0x5E, 8);
60 //  addKey("TV/TEXT", Teletext_Key, 0x66, 8);
61   addKey("Picture", PictureMode_Key, 0x67, 8);
62   addKey("Cancel", Clear_Key, 0x68, 8);
63   addKey("PLAY", Play_Key, 0x6B, 8);
64   addKey("STOP", Stop_Key, 0x6C, 8);
65   addKey("REV", Rewind_Key, 0x6D, 8);
66   addKey("FWD", FastForward_Key, 0x6F, 8);
67   addKey("UP", Up_Key, 0x70, 8);
68   addKey("DOWN", Down_Key, 0x71, 8);
69   addKey("RIGHT", Right_Key, 0x72, 8);
70   addKey("LEFT", Left_Key, 0x73, 8);
71 }
72
73
74 HitachiTV1a::HitachiTV1a(
75   QObject *guiObject,
76   unsigned int index)
77   : HitachiTV1(guiObject, index)
78 {
79   setKeysetName("TV Keyset 1a");
80
81   addKey("menu", Menu_Key, 0x53, 8);
82 }
83
84 HitachiTV1b::HitachiTV1b(
85   QObject *guiObject,
86   unsigned int index)
87   : HitachiTV1a(guiObject, index)
88 {
89   setKeysetName("TV Keyset 1b");
90
91   addKey("Sound+", VolumeUp_Key, 0x72, 8);
92   addKey("Sound-", VolumeDown_Key, 0x73, 8);
93   addKey("Timer", Sleep_Key, 0x6B, 8);
94 }
95
96
97 HitachiTV1c::HitachiTV1c(
98   QObject *guiObject,
99   unsigned int index)
100   : HitachiTV1(guiObject, index)
101 {
102   setKeysetName("TV Keyset 1c");
103
104   addControlledDevice(Hitachi_Make, "57F510", TV_Device);
105
106   addKey("LastChannel", PrevChannel_Key, 0x0A, 8);
107   addKey("Info", Info_Key, 0x10, 8);
108   addKey("-", Dash_Key, 0x11, 8);
109   addKey("Input1", Unmapped_Key, 0x21, 8);
110   addKey("Input2", Unmapped_Key, 0x22, 8);
111   addKey("Input3", Unmapped_Key, 0x23, 8);
112   addKey("Input4", Unmapped_Key, 0x24, 8);
113   addKey("ChannelUp", Unmapped_Key, 0x28, 8); // these four are odd
114   addKey("ChannelDown", Unmapped_Key, 0x29, 8); // duplicate?
115   addKey("VolumeDown", Unmapped_Key, 0x2A, 8); // maybe pip?
116   addKey("VolumeUp", Unmapped_Key, 0x2B, 8); // doesn't make sense
117   addKey("SELECT", Select_Key, 0x2E, 8);
118   addKey("Guide", Guide_Key, 0x35, 8);
119   addKey("CC", Captions_Key, 0x37, 8);
120   addKey("FavouriteChannel", Favorites_Key, 0x38, 8);
121   addKey("1080i/540p", Unmapped_Key, 0x3C, 8);
122   addKey("Input5", Unmapped_Key, 0x3D, 8);
123   addKey("PowerON", PowerOn_Key, 0x3E, 8);
124   addKey("PowerOFF", PowerOff_Key, 0x3F, 8);
125   addKey("Menu", Menu_Key, 0x53, 8);
126   addKey("PIP Swap", PIPSwap_Key, 0x56, 8);
127   addKey("PIP", PIP_Key, 0x58, 8);
128   addKey("Day/Night", Unmapped_Key, 0x5E, 8);
129   addKey("Freeze/Pause", Unmapped_Key, 0x61, 8); // note: have to hit "exit" to get out of frozen screen?
130   addKey("EXIT", Exit_Key, 0x64, 8);
131   addKey("16:9", Unmapped_Key, 0x65, 8);
132   addKey("16:9Zoom", Unmapped_Key, 0x66, 8);
133   addKey("4:3Standard", Unmapped_Key, 0x67, 8);
134   addKey("4:3Expanded", Unmapped_Key, 0x68, 8);
135   addKey("4:3Zoom1", Unmapped_Key, 0x69, 8);
136   addKey("4:3Zoom2", Unmapped_Key, 0x6A, 8);
137   addKey("540p", Unmapped_Key, 0x6B, 8);
138   addKey("1080i", Unmapped_Key, 0x6C, 8);
139   addKey("Aspect", AspectRatio_Key, 0x6F, 8);
140 //  addKey("ArrowRight", Right_Key, 0x72, 8);
141 //  addKey("ArrowLeft", Left_Key, 0x73, 8);
142   addKey("DayMode", Unmapped_Key, 0x74, 8);
143   addKey("NightMode", Unmapped_Key, 0x75, 8);
144   addKey("AntennaA", AntennaInput_Key, 0x76, 8);
145   addKey("AntennaB", Antenna2Input_Key, 0x77, 8);
146   addKey("CC", Unmapped_Key, 0x78, 8); // Another CC key?
147   // Many more codes available in LIRC's hitachi/CLU4341UG2 config file
148 }
149
150
151 // Taken from Hitachi 42HDM12.rmdu, a plasma HDMI monitor without a tuner
152 HitachiTV2::HitachiTV2(
153   QObject *guiObject,
154   unsigned int index)
155   : PIRKeysetMetaData(
156       "TV (monitor) Keyset 2",
157       Hitachi_Make,
158       index)
159 {
160   threadableProtocol = new NECProtocol(guiObject, index, false, true);
161
162   setPreData(0x50, 8); // This might be wrong...
163
164   addKey("Power", Power_Key, 0x17, 8);
165   addKey("Recall", PrevChannel_Key, 0xF7, 8);
166   addKey("Quick", Unmapped_Key, 0xD5, 8);
167   addKey("P.Mode", PictureMode_Key, 0x85, 8);
168   addKey("PC Adj.", Unmapped_Key, 0x27, 8);
169   addKey("Menu", Menu_Key, 0x35, 8);
170   addKey("Exit", Exit_Key, 0xD9, 8);
171   addKey("Up", Up_Key, 0xF1, 8);
172   addKey("Down", Down_Key, 0x71, 8);
173   addKey("Left", Left_Key, 0x31, 8);
174   addKey("Right", Right_Key, 0x81, 8);
175   addKey("Select", Select_Key, 0x8B, 8);
176   addKey("Return", Unmapped_Key, 0xAF, 8);
177   addKey("Video", Unmapped_Key, 0x6F, 8);
178   addKey("PC", PCInput_Key, 0x9B, 8);
179   addKey("PIP Input", PIPSource_Key, 0x39, 8);
180   addKey("PIP Swap", PIPSwap_Key, 0x65, 8);
181   addKey("Aspect", AspectRatio_Key, 0x09, 8);
182   addKey("Sleep", Sleep_Key, 0x77, 8);
183   addKey("Zoom+", Unmapped_Key, 0x15, 8);
184   addKey("Zoom-", Unmapped_Key, 0x95, 8);
185   addKey("Freeze", PIPPause_Key, 0x79, 8);
186   addKey("Mute", Mute_Key, 0x2F, 8);
187   addKey("Vol-", VolumeDown_Key, 0x57, 8);
188   addKey("Vol+", VolumeUp_Key, 0xB7, 8);
189 }
190
191
192 // See: http://www.hitachi-america.us/supportingdocs/forhome/ubcg/remote_ir_codes/2009_RC_Layouts_and_IR_Codes_L19_L26.pdf
193 HitachiTV3::HitachiTV3(
194   QObject *guiObject,
195   unsigned int index)
196   : PIRKeysetMetaData(
197       "TV Keyset 3",
198       Hitachi_Make,
199       index)
200 {
201   threadableProtocol = new NECProtocol(guiObject, index, false, true);
202
203 //  setPreData(0x0AF5, 16);
204   setPreData(0x50, 8);
205
206   addKey("8", Eight_Key, 0x04, 8);
207   addKey("9", Nine_Key, 0x05, 8);
208   addKey("CH_I/II", Audio_Key, 0x08, 8); // "AUDIO"
209   addKey("tv/video", Input_Key, 0x09, 8); // "AV", "INPUT"
210   addKey("LAST CH / ZOOM", PrevChannel_Key, 0x0A, 8);
211   addKey("LAST CH / ZOOM", Zoom_Key, 0x0A, 8);
212   addKey("mute", Mute_Key, 0x0B, 8); // "MUTE"
213   addKey("0", Zero_Key, 0x0C, 8);
214   addKey("1", One_Key, 0x0D, 8);
215   addKey("2", Two_Key, 0x0E, 8);
216   addKey("3", Three_Key, 0x0F, 8);
217
218   addKey("DASH/DISPLAY", Dash_Key, 0x11, 8);
219   addKey("DASH/DISPLAY", Info_Key, 0x11, 8);
220   addKey("vol_up", VolumeUp_Key, 0x12, 8); // "VOL +"
221   addKey("SLEEP", Sleep_Key, 0x13, 8);
222   addKey("vol_down", VolumeDown_Key, 0x15, 8); // "VOL -"
223   addKey("power", Power_Key, 0x17, 8); // "POWER"
224   addKey("4", Four_Key, 0x1C, 8);
225   addKey("5", Five_Key, 0x1D, 8);
226   addKey("6", Six_Key, 0x1E, 8);
227   addKey("7", Seven_Key, 0x1F, 8);
228
229   addKey("HDMI 2", HDMI2Input_Key, 0x20, 8);
230   addKey("AV 1", CompositeInput_Key, 0x21, 8); // "Input1"
231   addKey("COMPONENT 1", ComponentInput_Key, 0x22, 8); // "Input2"
232   addKey("COMPONENT 2", Component2Input_Key, 0x23, 8); // "Input3"
233   addKey("AV 2", Composite2Input_Key, 0x24, 8); // "Input4"
234   addKey("HDMI 3", HDMI3Input_Key, 0x25, 8);
235   addKey("CURSOR UP/CH UP", Up_Key, 0x28, 8);
236   addKey("CURSOR UP/CH UP", ChannelUp_Key, 0x28, 8);
237   addKey("CURSOR DOWN/CH DOWN", Down_Key, 0x29, 8);
238   addKey("CURSOR DOWN/CH DOWN", ChannelDown_Key, 0x29, 8);
239   addKey("VGA", PCInput_Key, 0x2C, 8);
240   addKey("ENTER", Select_Key, 0x2E, 8);
241   addKey("ENTER", Enter_Key, 0x2E, 8);
242   addKey("HDMI 1", HDMIInput_Key, 0x3D, 8);
243   addKey("POWER ON", PowerOn_Key, 0x3E, 8);
244   addKey("POWER OFF", PowerOff_Key, 0x3F, 8);
245
246   addKey("SEARCH REVERSE", Rewind_Key, 0x45, 8);
247   addKey("PLAY", Play_Key, 0x46, 8);
248   addKey("SEARCH FORWARD", FastForward_Key, 0x47, 8);
249   addKey("STOP", Stop_Key, 0x49, 8);
250   addKey("SKIP REVERSE", Previous_Key, 0x50, 8);
251   addKey("SKIP FORWARD", Next_Key, 0x52, 8);
252   addKey("MENU", Menu_Key, 0x53, 8);
253   addKey("PAUSE", Pause_Key, 0x61, 8);
254   addKey("EXIT/CANCEL", Exit_Key, 0x64, 8);
255   addKey("EXIT/CANCEL", Clear_Key, 0x64, 8);
256   addKey("ASPECT", AspectRatio_Key, 0x6F, 8);
257   addKey("CURSOR RIGHT", Right_Key, 0x72, 8);
258   addKey("CURSOR LEFT", Left_Key, 0x73, 8);
259   addKey("TV", AntennaInput_Key, 0x76, 8); // "AntennaA"
260   addKey("C.C./SUBTITLE", Captions_Key, 0x78, 8);
261   addKey("RETURN", Unmapped_Key, 0xE0, 8);
262   addKey("REPEAT A-B", RepeatAB_Key, 0xE1, 8);
263   addKey("ANGLE", Angle_Key, 0xE2, 8);
264   addKey("MARKER", Unmapped_Key, 0xE3, 8);
265   addKey("JUMP", Unmapped_Key, 0xE4, 8);
266   addKey("DVD MENU", DiscMenu_Key, 0xE6, 8);
267   addKey("TOP MENU", DiscTitle_Key, 0xE7, 8);
268   addKey("EJECT", Eject_Key, 0xE8, 8);
269   addKey("SLOW REVERSE", StepBack_Key, 0xE9, 8);
270   addKey("SLOW FORWARD", StepForward_Key, 0xEA, 8);
271   addKey("TV/DVD", Unmapped_Key, 0xEB, 8);
272   addKey("PLAY MODE", Unmapped_Key, 0xEC, 8);
273 }
274
275
276 HitachiProjector::HitachiProjector(
277   QObject *guiObject,
278   unsigned int index)
279   : PIRKeysetMetaData(
280       "Projector Keyset",
281       Hitachi_Make,
282       index)
283 {
284   threadableProtocol = new NECProtocol(guiObject, index, true, true);
285
286 //  setPreData(0xE1A2, 16);
287   setPreData(0x4587, 16);
288
289   addKey("Power", Power_Key, 0x17, 8);
290   addKey("RGB", PictureMode_Key, 0x18, 8);
291   addKey("Video", Unmapped_Key, 0x19, 8);
292   addKey("Search", Unmapped_Key, 0x1A, 8);
293   addKey("Menu", Menu_Key, 0x20, 8);
294   addKey("Enter", Select_Key, 0x21, 8);
295   addKey("Reset", Reset_Key, 0x22, 8);
296   addKey("Auto", Unmapped_Key, 0x24, 8);
297   addKey("Up", Up_Key, 0x28, 8);
298   addKey("Right", Right_Key, 0x2A, 8);
299   addKey("Down", Down_Key, 0x2C, 8);
300   addKey("Left", Left_Key, 0x2E, 8);
301   addKey("Position", Unmapped_Key, 0x30, 8);
302   addKey("Blank", Unmapped_Key, 0x41, 8);
303   addKey("Mute", Mute_Key, 0x52, 8);
304   addKey("Volume", Unmapped_Key, 0x53, 8);
305   addKey("Aspect", AspectRatio_Key, 0x7A, 8);
306   addKey("MagnifyOn", Unmapped_Key, 0xB0, 8);
307   addKey("MagnifyOff", Unmapped_Key, 0xB3, 8);
308   addKey("Freeze", Unmapped_Key, 0xB4, 8);
309   addKey("Keystone", Unmapped_Key, 0xB6, 8);
310   addKey("PageUp", PageUp_Key, 0xD0, 8);
311   addKey("PageDown", PageDown_Key, 0xD1, 8);
312   addKey("Esc", Unmapped_Key, 0xD4, 8);
313   addKey("Home", Unmapped_Key, 0xD5, 8);
314   addKey("End", Unmapped_Key, 0xD6, 8);
315 }
316
317
318 HitachiDVD1::HitachiDVD1(
319   QObject *guiObject,
320   unsigned int index)
321   : PIRKeysetMetaData(
322       "DVD Keyset 1",
323       Hitachi_Make,
324       index)
325 {
326   threadableProtocol = new NECProtocol(guiObject, index, true, true);
327
328 //  setPreData(0x01C4, 16);
329   setPreData(0x2380, 16);
330
331   addKey("Repeat", Repeat_Key, 0x00, 8);
332   addKey("Next", Next_Key, 0x02, 8);
333   addKey("Prev", Previous_Key, 0x03, 8);
334   addKey("8", Eight_Key, 0x04, 8);
335   addKey("9", Nine_Key, 0x05, 8);
336   addKey("TopMenu", DiscTitle_Key, 0x06, 8);
337   addKey("Menu", DiscMenu_Key, 0x07, 8);
338   addKey("Setup", Menu_Key, 0x08, 8);
339   addKey("OpenClose", Eject_Key, 0x09, 8);
340   addKey("Power", Power_Key, 0x0A, 8);
341   addKey("Display", Info_Key, 0x0B, 8);
342   addKey("0", Zero_Key, 0x0C, 8);
343   addKey("1", One_Key, 0x0D, 8);
344   addKey("2", Two_Key, 0x0E, 8);
345   addKey("3", Three_Key, 0x0F, 8);
346   addKey("+10", DoubleDigit_Key, 0x10, 8);
347   addKey("FF", FastForward_Key, 0x11, 8);
348   addKey("Rew", Rewind_Key, 0x12, 8);
349   addKey("Play", Play_Key, 0x14, 8);
350   addKey("Clear", Clear_Key, 0x19, 8);
351   addKey("Pause", Pause_Key, 0x1A, 8);
352   addKey("Stop", Stop_Key, 0x1B, 8);
353   addKey("4", Four_Key, 0x1C, 8);
354   addKey("5", Five_Key, 0x1D, 8);
355   addKey("6", Six_Key, 0x1E, 8);
356   addKey("7", Seven_Key, 0x1F, 8);
357   addKey("ABRepeat", RepeatAB_Key, 0x20, 8);
358   addKey("Up", Up_Key, 0x22, 8);
359   addKey("Down", Down_Key, 0x23, 8);
360   addKey("Left", Left_Key, 0x24, 8);
361   addKey("Right", Right_Key, 0x25, 8);
362   addKey("Enter", Select_Key, 0x26, 8);
363   addKey("Return", Exit_Key, 0x27, 8);
364   addKey("Angle", Angle_Key, 0x2A, 8);
365   addKey("Subtitle", Captions_Key, 0x2B, 8);
366   addKey("Audio", Audio_Key, 0x2C, 8);
367   addKey("Mode", Mode_Key, 0x2D, 8);
368   addKey("DiscNav", Guide_Key, 0x32, 8);
369   addKey("Zoom", Zoom_Key, 0x3B, 8);
370   addKey("SearchMode", Unmapped_Key, 0x3E, 8);
371   addKey("Surround", Surround_Key, 0x5D, 8);
372 }
373
374
375 HitachiAudio1::HitachiAudio1(
376   QObject *guiObject,
377   unsigned int index)
378   : PIRKeysetMetaData(
379       "Audio Keyset 1",
380       Hitachi_Make,
381       index)
382 {
383   addControlledDevice(Hitachi_Make, "FX-7", Audio_Device);
384   addControlledDevice(Hitachi_Make, "FX-77", Audio_Device);
385
386   threadableProtocol = new NECProtocol(guiObject, index, false, true);
387
388 //  setPreData(0xDA25, 16);
389   setPreData(0x5B, 8);
390
391   addKey("POWER", Power_Key, 0x00, 8);
392   addKey("VOLUME_UP", VolumeUp_Key, 0x01, 8);
393   addKey("VOLUME_DOWN", VolumeDown_Key, 0x02, 8);
394   addKey("TUNER_BAND", TunerBand_Key, 0x07, 8);
395   addKey("CASSETTE_TAPE_1/2", Unmapped_Key, 0x09, 8);
396   addKey("CD_PLAY/PAUSE", Play_Key, 0x12, 8);
397   addKey("CD_PLAY/PAUSE", Pause_Key, 0x12, 8);
398   addKey("CD_STOP", Stop_Key, 0x13, 8);
399   addKey("CD_SKIP_FWD", Next_Key, 0x14, 8);
400   addKey("CD_SKIP_BACK", Previous_Key, 0x15, 8);
401   addKey("CD_PROG", Program_Key, 0x16, 8);
402   addKey("CASSETTE_PLAY_FORWARD", Unmapped_Key, 0x19, 8);
403   addKey("CASSETTE_PLAY_BACK", Unmapped_Key, 0x1A, 8);
404   addKey("CASSETTE_FFW", Unmapped_Key, 0x1B, 8);
405   addKey("CASSETTE_REW", Unmapped_Key, 0x1C, 8);
406   addKey("CASSETTE_STOP", Unmapped_Key, 0x1D, 8);
407   addKey("CASSETTE_REC", Record_Key, 0x1F, 8);
408   addKey("1", One_Key, 0x4D, 8);
409   addKey("2", Two_Key, 0x4E, 8);
410   addKey("3", Three_Key, 0x4F, 8);
411   addKey("4", Four_Key, 0x50, 8);
412   addKey("5", Five_Key, 0x51, 8);
413   addKey("6", Six_Key, 0x52, 8);
414   addKey("7", Seven_Key, 0x53, 8);
415   addKey("8", Eight_Key, 0x54, 8);
416   addKey("9", Nine_Key, 0x55, 8);
417   addKey("10", Unmapped_Key, 0x56, 8);
418   addKey("10+/12", DoubleDigit_Key, 0x57, 8);
419   addKey("0/11", Zero_Key, 0x5B, 8);
420 }
421
422
423 HitachiVCR1::HitachiVCR1(
424   QObject *guiObject,
425   unsigned int index)
426   : PIRKeysetMetaData(
427       "VCR Keyset 1",
428       Hitachi_Make,
429       index)
430 {
431   threadableProtocol = new NECProtocol(guiObject, index, false, true);
432
433 //  setPreData(0x06F9, 16);
434   setPreData(0x60, 8);
435
436   addKey("Tracking+", TrackingPlus_Key, 0x00, 8);
437   addKey("Tracking-", TrackingMinus_Key, 0x01, 8);
438   addKey("+", Unmapped_Key, 0x02, 8);
439   addKey("-", Unmapped_Key, 0x03, 8);
440   addKey("8", Eight_Key, 0x04, 8);
441   addKey("9", Nine_Key, 0x05, 8);
442   addKey("100/ENT", PlusOneHundred_Key, 0x06, 8);
443   addKey("FF", FastForward_Key, 0x09, 8);
444   addKey("Step", StepForward_Key, 0x10, 8);
445   addKey("Rew", Rewind_Key, 0x0A, 8);
446   addKey("Stop", Stop_Key, 0x0B, 8);
447   addKey("0", Zero_Key, 0x0C, 8);
448   addKey("1", One_Key, 0x0D, 8);
449   addKey("2", Two_Key, 0x0E, 8);
450   addKey("3", Three_Key, 0x0F, 8);
451   addKey("Slow", Slow_Key, 0x11, 8);
452   addKey("Play", Play_Key, 0x14, 8);
453   addKey("CH1/2", Unmapped_Key, 0x15, 8); // "CHANNEL"
454   addKey("VCR/TV", Input_Key, 0x16, 8);
455   addKey("Power", Power_Key, 0x17, 8);
456   addKey("P-", ChannelDown_Key, 0x18, 8);
457   addKey("P+", ChannelUp_Key, 0x19, 8);
458   addKey("Pause", Pause_Key, 0x1A, 8);
459   addKey("4", Four_Key, 0x1C, 8);
460   addKey("5", Five_Key, 0x1D, 8);
461   addKey("6", Six_Key, 0x1E, 8);
462   addKey("7", Seven_Key, 0x1F, 8);
463   addKey("A.DUB", Unmapped_Key, 0x2C, 8);
464   addKey("SP/LP", VHSSpeed_Key, 0x30, 8);
465   addKey("TransAux", Unmapped_Key, 0x34, 8); // "AVX"
466   addKey("Eject", Eject_Key, 0x39, 8);
467   addKey("V.DUB", Unmapped_Key, 0x3A, 8);
468   addKey("tracking_auto", AutoTracking_Key, 0x3E, 8);
469   addKey("Menu", Menu_Key, 0x40, 8);
470   addKey("CLEAR", Reset_Key, 0x41, 8); // "reset", "0000"
471   addKey("Disp", Info_Key, 0x42, 8);
472   addKey("Enter", Select_Key, 0x44, 8);
473   addKey("Index", Unmapped_Key, 0x45, 8);
474   addKey("Count/Clock", Clock_Key, 0x46, 8);
475   addKey("SpinRight", Right_Key, 0x7F, 8);
476   addKey("SpinLeft", Left_Key, 0x7E, 8);
477   addKey("GO-TO", Unmapped_Key, 0x86, 8);
478
479 //  addKey("FRAME+", Unmapped_Key, 0x7D, 8); // This is for jog/shuttle!
480 //  addKey("FRAME-", Unmapped_Key, 0x7E, 8); // I'll get the other j/s later
481   // For more Jog/Shuttle see LIRC hitachi/VT-RM783E
482 }