First attempt to implement RC6 Protocol
[pierogi] / keysets / hitachi.cpp
1 #include "hitachi.h"
2 #include "necprotocol.h"
3
4 HitachiTV1::HitachiTV1(
5   QObject *guiObject,
6   unsigned int index)
7   : PIRKeysetMetaData(
8       "TV Keyset 1",
9       Hitachi_Make,
10       index)
11 {
12   threadableProtocol = new NECProtocol(guiObject, index);
13
14   setPreData(0x0AF5, 16);
15
16   addKey("1", One_Key, 0xB04F, 16);
17   addKey("2", Two_Key, 0x708F, 16);
18   addKey("3", Three_Key, 0xF00F, 16);
19   addKey("4", Four_Key, 0x38C7, 16);
20   addKey("5", Five_Key, 0xB847, 16);
21   addKey("6", Six_Key, 0x7887, 16);
22   addKey("7", Seven_Key, 0xF807, 16);
23   addKey("8", Eight_Key, 0x20DF, 16);
24   addKey("9", Nine_Key, 0xA05F, 16);
25   addKey("0", Zero_Key, 0x30CF, 16);
26   addKey("ch_down", ChannelDown_Key, 0x18E7, 16);
27   addKey("ch_up", ChannelUp_Key, 0x9867, 16);
28   addKey("recall", PrevChannel_Key, 0x08F7, 16);
29   addKey("tv/video", Input_Key, 0x906F, 16); // "AV"
30   addKey("power", Power_Key, 0xE817, 16);
31   addKey("vol_up", VolumeUp_Key, 0x48B7, 16);
32   addKey("vol_down", VolumeDown_Key, 0xA857, 16);
33   addKey("timer", Sleep_Key, 0x8877, 16);
34   addKey("return", Exit_Key, 0x22DD, 16);
35   addKey("mute", Mute_Key, 0xD02F, 16);
36   addKey("krasn", Unmapped_Key, 0xDA25, 16);
37   addKey("zelen", Unmapped_Key, 0x7A85, 16);
38   addKey("Reveal", Unmapped_Key, 0xBA45, 16); // "jolt"
39   addKey("zelen", Unmapped_Key, 0x3AC5, 16);
40   addKey("OK", Select_Key, 0xC23D, 16);
41   addKey("FWD", FastForward_Key, 0xF609, 16);
42   addKey("REV", Rewind_Key, 0xB649, 16);
43   addKey("PLAY", Play_Key, 0xD629, 16);
44   addKey("STOP", Stop_Key, 0x36C9, 16);
45   addKey("HELP", Info_Key, 0x58A7, 16);
46   addKey("CH", Unmapped_Key, 0xC837, 16);
47   addKey("MENU", Menu_Key, 0x02FD, 16);
48   addKey("PSCAN100HZ", Unmapped_Key, 0xB24D, 16);
49   addKey("X", Unmapped_Key, 0x2AD5, 16);
50   addKey("3D-SOUND", Surround_Key, 0xD827, 16);
51   addKey("UP", Up_Key, 0x0EF1, 16);
52   addKey("DOWN", Down_Key, 0x8E71, 16);
53   addKey("CH_I/II", Unmapped_Key, 0x10EF, 16);
54   addKey("TV/TEXT", Unmapped_Key, 0x6699, 16);
55   addKey("SOUND", SoundMode_Key, 0xF20D, 16);
56   addKey("Picture", PictureMode_Key, 0xE619, 16);
57   addKey("Red", Red_Key, 0x32CD, 16);
58   addKey("SUB", Unmapped_Key, 0xA25D, 16);
59   addKey("U.N.L", Unmapped_Key, 0x629D, 16);
60   addKey("HOLD", Unmapped_Key, 0xE21D, 16);
61   addKey("Cancel", Clear_Key, 0x16E9, 16);
62   addKey("Store", Unmapped_Key, 0x28D7, 16);
63   addKey("Language", Language_Key, 0x609F, 16);
64 }
65
66
67 HitachiTV1a::HitachiTV1a(
68   QObject *guiObject,
69   unsigned int index)
70   : HitachiTV1(guiObject, index)
71 {
72   setKeysetName("TV Keyset 1a");
73
74   addKey("menu", Menu_Key, 0xCA35, 16);
75 }
76
77 HitachiTV1b::HitachiTV1b(
78   QObject *guiObject,
79   unsigned int index)
80   : HitachiTV1a(guiObject, index)
81 {
82   setKeysetName("TV Keyset 1b");
83
84   addKey("Sound+", VolumeUp_Key, 0x4EB1, 16);
85   addKey("Sound-", VolumeDown_Key, 0xCE31, 16);
86   addKey("Timer", Sleep_Key, 0xD629, 16);
87 }
88
89
90 HitachiTV1c::HitachiTV1c(
91   QObject *guiObject,
92   unsigned int index)
93   : HitachiTV1(guiObject, index)
94 {
95   setKeysetName("TV Keyset 1c");
96
97   addControlledDevice(Hitachi_Make, "57F510", TV_Device);
98
99   addKey("LastChannel", PrevChannel_Key, 0x50AF, 16);
100   addKey("Info", Info_Key, 0x08F7, 16);
101   addKey("Input1", Unmapped_Key, 0x847B, 16);
102   addKey("Input2", Unmapped_Key, 0x44BB, 16);
103   addKey("Input3", Unmapped_Key, 0xC43B, 16);
104   addKey("Input4", Unmapped_Key, 0x24DB, 16);
105   addKey("ChannelUp", Unmapped_Key, 0x14EB, 16); // these four are odd
106   addKey("ChannelDown", Unmapped_Key, 0x946B, 16); // duplicate?
107   addKey("VolumeDown", Unmapped_Key, 0x54AB, 16); // maybe pip?
108   addKey("VolumeUp", Unmapped_Key, 0xD42B, 16); // doesn't make sense
109   addKey("SELECT", Select_Key, 0x748B, 16);
110   addKey("CC", Captions_Key, 0xEC13, 16);
111   addKey("FavouriteChannel", Favorites_Key, 0x1CE3, 16);
112   addKey("1080i/540p", Unmapped_Key, 0x3CC3, 16);
113   addKey("Input5", Unmapped_Key, 0xBC43, 16);
114   addKey("PowerON", Unmapped_Key, 0x7C83, 16);
115   addKey("PowerOFF", Unmapped_Key, 0xFC03, 16);
116   addKey("Menu", Menu_Key, 0xCA35, 16);
117   addKey("PIP", PIP_Key, 0x1AE5, 16);
118   addKey("Day/Night", Unmapped_Key, 0x7A85, 16);
119   addKey("Freeze/Pause", Unmapped_Key, 0x8679, 16);
120   addKey("EXIT", Exit_Key, 0x26D9, 16);
121   addKey("16:9", Unmapped_Key, 0xA659, 16);
122   addKey("16:9Zoom", Unmapped_Key, 0x6699, 16);
123   addKey("4:3Standard", Unmapped_Key, 0xE619, 16);
124   addKey("4:3Expanded", Unmapped_Key, 0x16E9, 16);
125   addKey("4:3Zoom1", Unmapped_Key, 0x9669, 16);
126   addKey("4:3Zoom2", Unmapped_Key, 0x56A9, 16);
127   addKey("540p", Unmapped_Key, 0xD629, 16);
128   addKey("1080i", Unmapped_Key, 0x36C9, 16);
129   addKey("Aspect", AspectRatio_Key, 0xF609, 16);
130   addKey("ArrowRight", Right_Key, 0x4EB1, 16);
131   addKey("ArrowLeft", Left_Key, 0xCE31, 16);
132   addKey("DayMode", Unmapped_Key, 0x2ED1, 16);
133   addKey("NightMode", Unmapped_Key, 0xAE51, 16);
134   addKey("AntennaA", Unmapped_Key, 0x6E91, 16);
135   addKey("AntennaB", Unmapped_Key, 0xEE11, 16);
136   addKey("CC", Unmapped_Key, 0x1EE1, 16); // Another CC key?
137   addKey("Guide", Guide_Key, 0xAC53, 16);
138   // Many more codes available in LIRC's hitachi/CLU4341UG2 config file
139 }
140
141
142 HitachiProjector::HitachiProjector(
143   QObject *guiObject,
144   unsigned int index)
145   : PIRKeysetMetaData(
146       "Projector Keyset",
147       Hitachi_Make,
148       index)
149 {
150   threadableProtocol = new NECProtocol(guiObject, index);
151
152   setPreData(0xE1A2, 16);
153
154   addKey("Power", Power_Key, 0xE817, 16);
155   addKey("PageUp", Unmapped_Key, 0x0BF4, 16);
156   addKey("PageDown", Unmapped_Key, 0x8B74, 16);
157   addKey("Home", Unmapped_Key, 0xAB54, 16);
158   addKey("End", Unmapped_Key, 0x6B94, 16);
159   addKey("Enter", Select_Key, 0x847B, 16);
160   addKey("Left", Left_Key, 0x748B, 16);
161   addKey("Right", Right_Key, 0x54AB, 16);
162   addKey("Up", Up_Key, 0x14EB, 16);
163   addKey("Down", Down_Key, 0x34CB, 16);
164   addKey("Menu", Menu_Key, 0x04FB, 16);
165   addKey("Reset", Reset_Key, 0x44BB, 16);
166   addKey("Esc", Unmapped_Key, 0x2BD4, 16);
167   addKey("Position", Unmapped_Key, 0x0CF3, 16);
168   addKey("Freeze", Unmapped_Key, 0x2DD2, 16);
169   addKey("Keystone", Unmapped_Key, 0x6D92, 16);
170   addKey("Search", Unmapped_Key, 0x58A7, 16);
171   addKey("RGB", PictureMode_Key, 0x18E7, 16);
172   addKey("Video", Unmapped_Key, 0x9867, 16);
173   addKey("Aspect", AspectRatio_Key, 0x5EA1, 16);
174   addKey("MagnifyOn", Unmapped_Key, 0x0DF2, 16);
175   addKey("MagnifyOff", Unmapped_Key, 0xCD32, 16);
176   addKey("Volume", Unmapped_Key, 0xCA35, 16);
177   addKey("Mute", Mute_Key, 0x4AB5, 16);
178   addKey("Auto", Unmapped_Key, 0x24DB, 16);
179   addKey("Blank", Unmapped_Key, 0x827D, 16);
180 }
181
182
183 HitachiDVD1::HitachiDVD1(
184   QObject *guiObject,
185   unsigned int index)
186   : PIRKeysetMetaData(
187       "DVD Keyset 1",
188       Hitachi_Make,
189       index)
190 {
191   threadableProtocol = new NECProtocol(guiObject, index);
192
193   setPreData(0x01C4, 16);
194
195   addKey("Power", Power_Key, 0x50AF, 16);
196   addKey("Surround", Surround_Key, 0xBA45, 16);
197   addKey("SearchMode", Unmapped_Key, 0x7C83, 16);
198   addKey("OpenClose", Eject_Key, 0x906F, 16);
199   addKey("ABRepeat", Unmapped_Key, 0x04FB, 16);
200   addKey("1", One_Key, 0xB04F, 16);
201   addKey("2", Two_Key, 0x708F, 16);
202   addKey("3", Three_Key, 0xF00F, 16);
203   addKey("4", Four_Key, 0x38C7, 16);
204   addKey("5", Five_Key, 0xB847, 16);
205   addKey("6", Six_Key, 0x7887, 16);
206   addKey("7", Seven_Key, 0xF807, 16);
207   addKey("8", Eight_Key, 0x20DF, 16);
208   addKey("9", Nine_Key, 0xA05F, 16);
209   addKey("0", Zero_Key, 0x30CF, 16);
210   addKey("Repeat", Unmapped_Key, 0x00FF, 16);
211   addKey("Mode", Unmapped_Key, 0xB44B, 16);
212   addKey("Zoom", Unmapped_Key, 0xDC23, 16);
213   addKey("Clear", Clear_Key, 0x9867, 16);
214   addKey("+10", DoubleDigit_Key, 0x08F7, 16);
215   addKey("Angle", Unmapped_Key, 0x54AB, 16);
216   addKey("Subtitle", Captions_Key, 0xD42B, 16);
217   addKey("Audio", Language_Key, 0x34CB, 16);
218   addKey("Display", Info_Key, 0xD02F, 16);
219   addKey("Menu", DiscMenu_Key, 0xE01F, 16);
220   addKey("TopMenu", DiscTitle_Key, 0x609F, 16);
221   addKey("Up", Up_Key, 0x44BB, 16);
222   addKey("Left", Left_Key, 0x24DB, 16);
223   addKey("Enter", Select_Key, 0x649B, 16);
224   addKey("Right", Right_Key, 0xA45B, 16);
225   addKey("Down", Down_Key, 0xC43B, 16);
226   addKey("Return", Exit_Key, 0xE41B, 16);
227   addKey("Setup", Menu_Key, 0x10EF, 16);
228   addKey("DiscNav", Guide_Key, 0x4CB3, 16);
229   addKey("Prev", Previous_Key, 0xC03F, 16);
230   addKey("Next", Next_Key, 0x40BF, 16);
231   addKey("Stop", Stop_Key, 0xD827, 16);
232   addKey("Play", Play_Key, 0x28D7, 16);
233   addKey("Rew", Rewind_Key, 0x48B7, 16);
234   addKey("Pause", Pause_Key, 0x58A7, 16);
235   addKey("FF", FastForward_Key, 0x8877, 16);
236 }
237
238
239 HitachiAudio1::HitachiAudio1(
240   QObject *guiObject,
241   unsigned int index)
242   : PIRKeysetMetaData(
243       "Audio Keyset 1",
244       Hitachi_Make,
245       index)
246 {
247   addControlledDevice(Hitachi_Make, "FX-7", Audio_Device);
248   addControlledDevice(Hitachi_Make, "FX-77", Audio_Device);
249
250   threadableProtocol = new NECProtocol(guiObject, index);
251
252   setPreData(0xDA25, 16);
253
254   addKey("1", One_Key, 0xB24D, 16);
255   addKey("2", Two_Key, 0x728D, 16);
256   addKey("3", Three_Key, 0xF20D, 16);
257   addKey("4", Four_Key, 0x0AF5, 16);
258   addKey("5", Five_Key, 0x8A75, 16);
259   addKey("6", Six_Key, 0x4AB5, 16);
260   addKey("7", Seven_Key, 0xCA35, 16);
261   addKey("8", Eight_Key, 0x2AD5, 16);
262   addKey("9", Nine_Key, 0xAA55, 16);
263   addKey("10", Unmapped_Key, 0x6A95, 16);
264   addKey("0/11", Zero_Key, 0xDA25, 16);
265   addKey("10+/12", DoubleDigit_Key, 0xEA15, 16);
266   addKey("CD_SKIP_BACK", Previous_Key, 0xA857, 16);
267   addKey("CD_SKIP_FWD", Next_Key, 0x28D7, 16);
268   addKey("CD_STOP", Stop_Key, 0xC837, 16);
269   addKey("CD_PLAY/PAUSE", Play_Key, 0x48B7, 16);
270   addKey("CD_PLAY/PAUSE", Pause_Key, 0x48B7, 16);
271   addKey("CD_PROG", Program_Key, 0x6897, 16);
272   addKey("CASSETTE_PLAY_BACK", Unmapped_Key, 0x58A7, 16);
273   addKey("CASSETTE_STOP", Unmapped_Key, 0xB847, 16);
274   addKey("CASSETTE_PLAY_FORWARD", Unmapped_Key, 0x9867, 16);
275   addKey("CASSETTE_REC", Record_Key, 0xF807, 16);
276   addKey("CASSETTE_TAPE_1/2", Unmapped_Key, 0x906F, 16);
277   addKey("CASSETTE_REW", Unmapped_Key, 0x38C7, 16);
278   addKey("CASSETTE_FFW", Unmapped_Key, 0xD827, 16);
279   addKey("VOLUME_DOWN", VolumeDown_Key, 0x40BF, 16);
280   addKey("VOLUME_UP", VolumeUp_Key, 0x807F, 16);
281   addKey("TUNER_BAND", Input_Key, 0xE01F, 16);
282   addKey("POWER", Power_Key, 0x00FF, 16);
283 }
284
285
286 HitachiVCR1::HitachiVCR1(
287   QObject *guiObject,
288   unsigned int index)
289   : PIRKeysetMetaData(
290       "VCR Keyset 1",
291       Hitachi_Make,
292       index)
293 {
294   threadableProtocol = new NECProtocol(guiObject, index);
295
296   setPreData(0x06F9, 16);
297
298   addKey("Power", Power_Key, 0xE817, 16);
299   addKey("Eject", Eject_Key, 0x9C63, 16);
300   addKey("VCR/TV", Input_Key, 0x6897, 16);
301   addKey("P+", ChannelUp_Key, 0x9867, 16);
302   addKey("P-", ChannelDown_Key, 0x18E7, 16);
303   addKey("Play", Play_Key, 0x28D7, 16);
304   addKey("FF", FastForward_Key, 0x906F, 16);
305   addKey("Rew", Rewind_Key, 0x50AF, 16);
306   addKey("Stop", Stop_Key, 0xD02F, 16);
307   addKey("Pause", Pause_Key, 0x58A7, 16);
308   addKey("Step", StepForward_Key, 0x08F7, 16);
309   addKey("SpinRight", Right_Key, 0xFE01, 16);
310   addKey("SpinLeft", Left_Key, 0x7E81, 16);
311   addKey("Enter", Select_Key, 0x22DD, 16);
312   addKey("TransAux", Unmapped_Key, 0x2CD3, 16); // "AVX"
313   addKey("1", One_Key, 0xB04F, 16);
314   addKey("2", Two_Key, 0x708F, 16);
315   addKey("3", Three_Key, 0xF00F, 16);
316   addKey("4", Four_Key, 0x38C7, 16);
317   addKey("5", Five_Key, 0xB847, 16);
318   addKey("6", Six_Key, 0x7887, 16);
319   addKey("7", Seven_Key, 0xF807, 16);
320   addKey("8", Eight_Key, 0x20DF, 16);
321   addKey("9", Nine_Key, 0xA05F, 16);
322   addKey("0", Zero_Key, 0x30CF, 16);
323   addKey("Menu", Menu_Key, 0x02FD, 16);
324   addKey("Disp", Info_Key, 0x42BD, 16);
325   addKey("Index", Unmapped_Key, 0xA25D, 16);
326   addKey("SP/LP", VHSSpeed_Key, 0x0CF3, 16);
327   addKey("Count/Clock", Unmapped_Key, 0x629D, 16);
328   addKey("CLEAR", Reset_Key, 0x827D, 16); // "reset", "0000"
329   addKey("Slow", Unmapped_Key, 0x8877, 16);
330   addKey("CH1/2", Unmapped_Key, 0xA857, 16); // "CHANNEL"
331   addKey("A.DUB", Unmapped_Key, 0x34CB, 16);
332   addKey("V.DUB", Unmapped_Key, 0x5CA3, 16);
333   addKey("Tracking+", TrackingPlus_Key, 0x00FF, 16);
334   addKey("Tracking-", TrackingMinus_Key, 0x807F, 16);
335   addKey("100/ENT", PlusOneHundred_Key, 0x609F, 16);
336   addKey("-", Unmapped_Key, 0xC03F, 16);
337   addKey("+", Unmapped_Key, 0x40BF, 16);
338   addKey("GO-TO", Unmapped_Key, 0x619E, 16);
339   addKey("FRAME+", Unmapped_Key, 0xBE41, 16); // This is for jog/shuttle!
340   addKey("FRAME-", Unmapped_Key, 0x7E81, 16); // I'll get the other j/s later
341   // For more Jog/Shuttle see LIRC hitachi/VT-RM783E
342   addKey("tracking_auto", AutoTracking_Key, 0x7C83, 16);
343 }