First attempt to implement RC6 Protocol
[pierogi] / keysets / goldstar.cpp
1 #include "goldstar.h"
2 #include "necprotocol.h"
3 #include "rc5protocol.h"
4
5 GoldStarTV1::GoldStarTV1(
6   QObject *guiObject,
7   unsigned int index)
8   : PIRKeysetMetaData(
9       "105-210A TV",
10       GoldStar_Make,
11       index)
12 {
13   addControlledDevice(GoldStar_Make, "105-210A", TV_Device);
14
15   threadableProtocol = new NECProtocol(guiObject, index);
16
17   setPreData(0x20DF, 16);
18
19   addKey("power", Power_Key, 0x10EF, 16);
20   addKey("mute", Mute_Key, 0x906F, 16);
21   addKey("1", One_Key, 0x8877, 16);
22   addKey("2", Two_Key, 0x48B7, 16);
23   addKey("3", Three_Key, 0xC837, 16);
24   addKey("4", Four_Key, 0x28D7, 16);
25   addKey("5", Five_Key, 0xA857, 16);
26   addKey("6", Six_Key, 0x6897, 16);
27   addKey("7", Seven_Key, 0xE817, 16);
28   addKey("8", Eight_Key, 0x18E7, 16);
29   addKey("9", Nine_Key, 0x9867, 16);
30   addKey("0", Zero_Key, 0x08F7, 16);
31   addKey("lowhigh", DoubleDigit_Key, 0x38C7, 16);
32   addKey("recall", PrevChannel_Key, 0xD827, 16);
33   addKey("prup", ChannelUp_Key, 0x00FF, 16);
34   addKey("prdown", ChannelDown_Key, 0x807F, 16);
35   addKey("volup", VolumeUp_Key, 0x40BF, 16);
36   addKey("voldown", VolumeDown_Key, 0xC03F, 16);
37   addKey("ok", Select_Key, 0x22DD, 16);
38   addKey("prup", Up_Key, 0x00FF, 16);
39   addKey("voldown", Left_Key, 0xC03F, 16);
40   addKey("volup", Right_Key, 0x40BF, 16);
41   addKey("prdown", Down_Key, 0x807F, 16);
42   addKey("tvav", Input_Key, 0xD02F, 16);
43   addKey("menu", Menu_Key, 0xC23D, 16);
44   addKey("psm", Unmapped_Key, 0xF20D, 16);
45   addKey("sleep", Sleep_Key, 0x708F, 16);
46   addKey("qview", Unmapped_Key, 0x58A7, 16);
47   addKey("picture", PictureMode_Key, 0x30CF, 16);
48 }
49
50
51 GoldStarTV2::GoldStarTV2(
52   QObject *guiObject,
53   unsigned int index)
54   : PIRKeysetMetaData(
55       "TV Keyset 2",
56       GoldStar_Make,
57       index)
58 {
59   threadableProtocol = new RC5Protocol(guiObject, index, 0x40);
60
61   addKey("0", Zero_Key, 0x00, 6);
62   addKey("1", One_Key, 0x01, 6);
63   addKey("2", Two_Key, 0x02, 6);
64   addKey("3", Three_Key, 0x03, 6);
65   addKey("4", Four_Key, 0x04, 6);
66   addKey("5", Five_Key, 0x05, 6);
67   addKey("6", Six_Key, 0x06, 6);
68   addKey("7", Seven_Key, 0x07, 6);
69   addKey("8", Eight_Key, 0x08, 6);
70   addKey("9", Nine_Key, 0x09, 6);
71   addKey("MUTE", Mute_Key, 0x0D, 6);
72   addKey("POWER", Power_Key, 0x0C, 6);
73   addKey("TV", Unmapped_Key, 0x3F, 6);
74   addKey("AV", Unmapped_Key, 0x38, 6);
75   addKey("LOOP", Unmapped_Key, 0x22, 6);
76   addKey("-/--", DoubleDigit_Key, 0x0A, 6);
77   addKey("PP", Unmapped_Key, 0x0E, 6);
78   addKey("MENU", Menu_Key, 0x3B, 6);
79   addKey("OK", Select_Key, 0x25, 6);
80   addKey("OK", Enter_Key, 0x25, 6);
81   addKey("VOL-", VolumeDown_Key, 0x11, 6);
82   addKey("VOL+", VolumeUp_Key, 0x10, 6);
83   addKey("PROG-", ChannelDown_Key, 0x21, 6);
84   addKey("PROG+", ChannelUp_Key, 0x20, 6);
85   addKey("<=", Unmapped_Key, 0x0B, 6);
86   addKey("=", Unmapped_Key, 0x3C, 6);
87   addKey("RED", Red_Key, 0x37, 6);
88   addKey("GREEN", Green_Key, 0x36, 6);
89   addKey("YELLOW", Yellow_Key, 0x32, 6);
90   addKey("BLUE", Blue_Key, 0x34, 6);
91   addKey("=/", Unmapped_Key, 0x2E, 6);
92   addKey("=o", Unmapped_Key, 0x2A, 6);
93   addKey("=?", Unmapped_Key, 0x2C, 6);
94   addKey("=i", Unmapped_Key, 0x35, 6);
95   addKey("=^", Unmapped_Key, 0x2B, 6);
96   addKey(">=<", Unmapped_Key, 0x29, 6);
97   addKey("=X", Unmapped_Key, 0x2D, 6);
98   addKey("=M", Unmapped_Key, 0x3E, 6);
99 }
100
101
102 GoldStarVCR1::GoldStarVCR1(
103   QObject *guiObject,
104   unsigned int index)
105   : PIRKeysetMetaData(
106       "VCR Keyset 1",
107       GoldStar_Make,
108       index)
109 {
110   addControlledDevice(GoldStar_Make, "GSE-Q204P", VCR_Device);
111   addControlledDevice(GoldStar_Make, "QUISY 500", VCR_Device);
112
113   threadableProtocol = new NECProtocol(guiObject, index);
114
115   setPreData(0x7689, 16);
116
117   addKey("power", Power_Key, 0x28D7, 16);
118   addKey("eject", Eject_Key, 0x00FF, 16);
119   addKey("a_trk", AutoTracking_Key, 0xFA05, 16);
120   addKey("tracking+", TrackingPlus_Key, 0x22DD, 16);
121   addKey("tracking-", TrackingMinus_Key, 0xA25D, 16);
122   addKey("prog+", ChannelUp_Key, 0x18E7, 16);
123   addKey("prog-", ChannelDown_Key, 0x9867, 16);
124   addKey("child_lock", Unmapped_Key, 0xFC03, 16);
125   addKey("play", Play_Key, 0x10EF, 16);
126   addKey("<rew", Rewind_Key, 0x40BF, 16);
127   addKey("ff>", FastForward_Key, 0xC03F, 16);
128   addKey("pause||", Pause_Key, 0xD02F, 16);
129   addKey("stop", Stop_Key, 0x807F, 16);
130   addKey("record", Record_Key, 0x906F, 16);
131   addKey("reset", Reset_Key, 0xB24D, 16);
132   addKey("clock_count", Unmapped_Key, 0x32CD, 16); // "memory"
133   addKey("show_view", Unmapped_Key, 0xE21D, 16);
134   addKey("menu", Menu_Key, 0x6897, 16);
135   addKey("up", Up_Key, 0x41BE, 16);
136   addKey("down", Down_Key, 0x916E, 16);
137   addKey("right", Right_Key, 0x09F6, 16);
138   addKey("left", Left_Key, 0xC13E, 16);
139 //  addKey("ok", Enter_Key, 0x718E, 16);
140   addKey("ok", Select_Key, 0x718E, 16);
141   addKey("clear", Clear_Key, 0xF807, 16);
142   addKey("display", Info_Key, 0x7887, 16);
143   addKey("1", One_Key, 0xA05F, 16);
144   addKey("2", Two_Key, 0x609F, 16);
145   addKey("3", Three_Key, 0xE01F, 16);
146   addKey("4", Four_Key, 0x30CF, 16);
147   addKey("5", Five_Key, 0xB04F, 16);
148   addKey("6", Six_Key, 0x708F, 16);
149   addKey("7", Seven_Key, 0xF00F, 16);
150   addKey("8", Eight_Key, 0x38C7, 16);
151   addKey("9", Nine_Key, 0xB847, 16);
152   addKey("0", Zero_Key, 0x20DF, 16);
153   addKey("preset", Unmapped_Key, 0x728D, 16);
154   addKey("viss", Unmapped_Key, 0x827D, 16);
155   addKey("vps", Unmapped_Key, 0x926D, 16);
156   addKey("tv_vcr", Input_Key, 0xA857, 16);
157   addKey("sp/lp", VHSSpeed_Key, 0x12ED, 16);
158   addKey("length", Unmapped_Key, 0xD22D, 16);
159   addKey("start", Unmapped_Key, 0x52AD, 16);
160   addKey("f/a", Unmapped_Key, 0x08F7, 16);
161 }
162
163
164 GoldStarVCR1a::GoldStarVCR1a(
165   QObject *guiObject,
166   unsigned int index)
167   : GoldStarVCR1(guiObject, index)
168 {
169   setKeysetName("VCR Keyset 1a");
170
171   addKey("slow", Unmapped_Key, 0xC837, 16);
172   addKey("slow+", Unmapped_Key, 0x58A7, 16);
173   addKey("slow-", Unmapped_Key, 0xD827, 16);
174 }
175
176
177 GoldStarVCR1b::GoldStarVCR1b(
178   QObject *guiObject,
179   unsigned int index)
180   : GoldStarVCR1(guiObject, index)
181 {
182   setKeysetName("VCR Keyset 1b");
183
184   addKey("BACK", Exit_Key, 0x32CD, 16);
185 }
186
187
188 GoldStarVCR1c::GoldStarVCR1c(
189   QObject *guiObject,
190   unsigned int index)
191   : GoldStarVCR1(guiObject, index)
192 {
193   setKeysetName("VCR Keyset 1c");
194
195   addKey("trk+", TrackingPlus_Key, 0x7788, 16);
196   addKey("trk-", TrackingMinus_Key, 0xB748, 16);
197   addKey("a.trk", AutoTracking_Key, 0x17E8, 16);
198   addKey("a.repeart", Unmapped_Key, 0xAF50, 16);
199 }
200
201
202 GoldStarVCR1d::GoldStarVCR1d(
203   QObject *guiObject,
204   unsigned int index)
205   : GoldStarVCR1(guiObject, index)
206 {
207   setKeysetName("VCR Keyset 1d");
208   
209   addKey("TU_AV", Input_Key, 0x6A95, 16);
210 }
211
212
213 // Based on LIRC 6710S-6000A config file
214 GoldStarCD1::GoldStarCD1(
215   QObject *guiObject,
216   unsigned int index)
217   : PIRKeysetMetaData(
218       "CD Player Keyset 1",
219       GoldStar_Make,
220       index)
221 {
222   addControlledDevice(GoldStar_Make, "FFH-272A/L", Audio_Device);
223
224   NECProtocol *np = new NECProtocol(
225     guiObject,
226     index,
227     600, 500,
228     600, 1600,
229     108000, true);
230
231   threadableProtocol = np;
232
233   np->setHeaderPair(4500, 4500);
234   np->setTrailerPulse(600);
235   np->setRepeatPair(600, 1600);
236   np->setRepeatNeedsHeader(true);
237
238   setPreData(0x0808, 16);
239   setPostData(0x1, 1);
240
241   addKey("power", Power_Key, 0x3C43, 15);
242   addKey("mute", Mute_Key, 0x7C03, 15);
243   addKey("cd", Unmapped_Key, 0x601F, 15);
244   addKey("tape", Unmapped_Key, 0x0877, 15);
245   addKey("aux", Unmapped_Key, 0x4837, 15);
246   addKey("fm", Unmapped_Key, 0x007F, 15);
247   addKey("mw", Unmapped_Key, 0x403F, 15);
248   addKey("lw", Unmapped_Key, 0x205F, 15);
249   addKey("pre-", ChannelDown_Key, 0x245B, 15);
250   addKey("pre+", ChannelUp_Key, 0x641B, 15);
251   addKey("ply/pau", Play_Key, 0x106F, 15);
252   addKey("stop", Stop_Key, 0x502F, 15);
253   addKey("prev", Previous_Key, 0x304F, 15);
254   addKey("next", Next_Key, 0x700F, 15);
255   addKey("prog", Unmapped_Key, 0x5926, 15);
256   addKey("repeat", Replay_Key, 0x3946, 15);
257   addKey("random", Unmapped_Key, 0x057A, 15);
258   addKey("dskip", Unmapped_Key, 0x2956, 15);
259   addKey("remain", Unmapped_Key, 0x453A, 15);
260   addKey("eqpatt", Unmapped_Key, 0x017E, 15);
261   addKey("vol-", VolumeDown_Key, 0x344B, 15);
262   addKey("vol+", VolumeUp_Key, 0x740B, 15);
263 }