Keyset Memory Management Bugfix
[pierogi] / keysets / creative.cpp
1 #include "creative.h"
2 #include "protocols/necprotocol.h"
3
4
5 CreativeAudio1::CreativeAudio1(
6   unsigned int index)
7   : PIRKeysetMetaData(
8       "Speakers Keyset 1",
9       Creative_Make,
10       index)
11 {
12   addControlledDevice(Creative_Make, "Inspire 5700", Other_Device);
13 }
14
15
16 void CreativeAudio1::populateProtocol(
17   QObject *guiObject)
18 {
19   if (threadableProtocol)
20   {
21     // Keyset already populated.
22     return;
23   }
24
25   threadableProtocol = new NECProtocol(guiObject, index, true, true);
26
27   setPreData(0x44C1, 16);
28
29   addKey("Input Select", Input_Key, 0x37, 8);
30   addKey("vol up", VolumeUp_Key, 0x47, 8);
31   addKey("Dynamic Mode Toggle", Red_Key, 0x4F, 8); // hack
32   addKey("mute", Mute_Key, 0x77, 8);
33   addKey("power", Power_Key, 0x87, 8);
34   addKey("Dolby", NoiseReduction_Key, 0xA7, 8);
35   addKey("Dolby", Blue_Key, 0xA7, 8); // hack
36   addKey("vol down", VolumeDown_Key, 0xC7, 8);
37   addKey("Analog on/off", Green_Key, 0xD7, 8); // hack
38   addKey("Effect Select", Yellow_Key, 0xF2, 8); // hack
39
40   addKey("rear_center", Unmapped_Key, 0x17, 8);
41   addKey("center", Unmapped_Key, 0x97, 8);
42   addKey("test", Unmapped_Key, 0xF7, 8);
43   addKey("rear", Unmapped_Key, 0xE7, 8);
44   addKey("subwoofer", Unmapped_Key, 0x67, 8);
45   addKey("coaxial", Unmapped_Key, 0x27, 8);
46   addKey("optical", Unmapped_Key, 0x0F, 8);
47   addKey("stereo", Unmapped_Key, 0x2F, 8);
48   addKey("dolby_digital_ex", Unmapped_Key, 0xCF, 8);
49   addKey("ned_6", Unmapped_Key, 0xB7, 8);
50 }
51
52
53 CreativeAudio2::CreativeAudio2(
54   unsigned int index)
55   : PIRKeysetMetaData(
56       "MP3 Player Keyset 1",
57       Creative_Make,
58       index)
59 {
60 }
61
62 void CreativeAudio2::populateProtocol(
63   QObject *guiObject)
64 {
65   if (threadableProtocol)
66   {
67     // Keyset already populated.
68     return;
69   }
70
71   threadableProtocol = new NECProtocol(guiObject, index, true, true);
72
73   // This is almost possible to integrate with CreativeMisc1, if needed
74   setPreData(0xAC21, 16);
75
76   addKey("POWER", Power_Key, 0x20, 8);
77   addKey("PLAY_PAUSE", Play_Key, 0x40, 8);
78   addKey("PLAY_PAUSE", Pause_Key, 0x40, 8);
79   addKey("FAST_REVERSE", Rewind_Key, 0xA0, 8);
80   addKey("FAST_FORWARD", FastForward_Key, 0xE0, 8);
81   addKey("STOP", Stop_Key, 0x50, 8);
82   addKey("EAX", Red_Key, 0xB0, 8);
83   addKey("VOLUME_UP", VolumeUp_Key, 0xF0, 8);
84   addKey("VOLUME_DOWN", VolumeDown_Key, 0x70, 8);
85 }
86
87
88 CreativeAudio3::CreativeAudio3(
89   unsigned int index)
90   : PIRKeysetMetaData(
91       "Sound Card Keyset 1",
92       Creative_Make,
93       index)
94 {
95 }
96
97
98 void CreativeAudio3::populateProtocol(
99   QObject *guiObject)
100 {
101   if (threadableProtocol)
102   {
103     // Keyset alredy populated.
104     return;
105   }
106
107   threadableProtocol = new NECProtocol(guiObject, index, true, true);
108
109   setPreData(0x44C1, 16);
110
111   addKey("1", One_Key, 0xD1, 8);
112   addKey("2", Two_Key, 0xF1, 8);
113   addKey("3", Three_Key, 0x09, 8);
114   addKey("4", Four_Key, 0x51, 8);
115   addKey("5", Five_Key, 0x21, 8);
116   addKey("6", Six_Key, 0x1E, 8);
117   addKey("7", Seven_Key, 0x91, 8);
118   addKey("8", Eight_Key, 0xC1, 8);
119   addKey("9", Nine_Key, 0xEE, 8);
120   addKey("0", Zero_Key, 0x01, 8);
121   addKey("stop", Stop_Key, 0xA1, 8);
122   addKey("stop_eject", Eject_Key, 0xA1, 8);
123   addKey("play", Play_Key, 0x9E, 8);
124   addKey("pause", Pause_Key, 0x9E, 8);
125   addKey("slow", Slow_Key, 0xBE, 8);
126   addKey("step", StepForward_Key, 0x7E, 8);
127   addKey("prev", Previous_Key, 0xFE, 8);
128   addKey("next", Next_Key, 0x5E, 8);
129   addKey("mute", Mute_Key, 0x76, 8);
130   addKey("vol-", VolumeDown_Key, 0xC6, 8);
131   addKey("vol+", VolumeUp_Key, 0x46, 8);
132   addKey("eax", Unmapped_Key, 0x31, 8);
133   addKey("EAX_Up", Unmapped_Key, 0x69, 8);
134   addKey("EAX_Down", Unmapped_Key, 0xE9, 8);
135   addKey("options", Unmapped_Key, 0x41, 8);
136   addKey("display", Info_Key, 0x6E, 8);
137   addKey("return", Exit_Key, 0x71, 8);
138   addKey("start", Unmapped_Key, 0x11, 8);
139   addKey("close", Unmapped_Key, 0x3E, 8);
140   addKey("up", Up_Key, 0xDE, 8);
141   addKey("down", Down_Key, 0xB1, 8);
142   addKey("left", Left_Key, 0xE1, 8);
143   addKey("right", Right_Key, 0xAE, 8);
144   addKey("ok", Select_Key, 0x81, 8);
145   addKey("power", Power_Key, 0x86, 8);
146   addKey("cmss", Unmapped_Key, 0x8E, 8);
147   addKey("CMSS_Up", Unmapped_Key, 0x29, 8);
148   addKey("CMSS_Down", Unmapped_Key, 0xA9, 8);
149   addKey("record", Record_Key, 0xCE, 8);
150   addKey("24bit", Unmapped_Key, 0x89, 8); // "x-fi_crystal_on"
151   addKey("24bit_Up", Unmapped_Key, 0x49, 8); // "x-fi_crystal+"
152   addKey("24bit_Down", Unmapped_Key, 0xC9, 8); // "x-fi_crystal-"
153   addKey("3dMidi", Unmapped_Key, 0x19, 8);
154   addKey("3dMidi_Up", Unmapped_Key, 0x99, 8);
155   addKey("3dMidi_Down", Unmapped_Key, 0x59, 8);
156 }
157
158
159 CreativeAudio4::CreativeAudio4(
160   unsigned int index)
161   : PIRKeysetMetaData(
162       "Infra Keyset",
163       Creative_Make,
164       index)
165 {
166 }
167
168
169 void CreativeAudio4::populateProtocol(
170   QObject *guiObject)
171 {
172   if (threadableProtocol)
173   {
174     // Keyset already populated.
175     return;
176   }
177
178   threadableProtocol = new NECProtocol(guiObject, index, true, true);
179
180   setPreData(0xAC21, 16);
181
182   addKey("PAUSE", Pause_Key, 0x80, 8);
183   addKey("PLAY", Play_Key, 0x40, 8);
184   addKey("STOP", Stop_Key, 0xC0, 8);
185   addKey("REW", Rewind_Key, 0xA0, 8);
186   addKey("PREV", Previous_Key, 0x60, 8);
187   addKey("FF", FastForward_Key, 0xE0, 8);
188   addKey("MENU", Menu_Key, 0x20, 8);
189   addKey("MOUSE", Unmapped_Key, 0x10, 8);
190   addKey("1", One_Key, 0x90, 8);
191   addKey("2", Two_Key, 0x50, 8);
192   addKey("3", Three_Key, 0xD0, 8);
193   addKey("4", Four_Key, 0xB0, 8);
194   addKey("5", Five_Key, 0x70, 8);
195   addKey("6", Six_Key, 0xF0, 8);
196   addKey("7", Seven_Key, 0x88, 8);
197   addKey("8", Eight_Key, 0x48, 8);
198   addKey("9", Nine_Key, 0xC8, 8);
199   addKey("0", Zero_Key, 0x68, 8);
200   addKey("MUTE", Mute_Key, 0x30, 8);
201   addKey("VOL_UP", VolumeUp_Key, 0x08, 8);
202   addKey("VOL_DOWN", VolumeDown_Key, 0x28, 8);
203   addKey("SHIFT", Unmapped_Key, 0xA8, 8);
204   addKey("ENTER", Enter_Key, 0xE8, 8);
205   addKey("ZOOM", Zoom_Key, 0x18, 8);
206 }
207