Memory Management Improved
[pierogi] / keysets / tivo.cpp
1 #include "tivo.h"
2 #include "protocols/lircprotocol.h"
3
4 Tivo1::Tivo1(
5   unsigned int index)
6   : PIRKeysetMetaData(
7       "Tivo Keyset 1",
8       Tivo_Make,
9       index)
10 {
11 }
12
13
14 void Tivo1::populateProtocol(
15   QObject *guiObject)
16 {
17   if (threadableProtocol)
18   {
19     // If the pointer is not null, the keyset must already be populated.
20     return;
21   }
22
23   LIRCProtocol *lp = new LIRCProtocol(
24     guiObject, index,
25     560, 560,
26     560, 1680,
27     110000, true);
28
29   threadableProtocol = lp;
30
31   lp->setHeaderPair(9000, 4500);
32   lp->setTrailerPulse(560);
33   lp->setRepeatPair(9000, 2250);
34
35   setPreData(0xA10C, 16);
36
37 //  setCarrierFrequency(40000);
38
39   addKey("TIVO", Power_Key, 0x000F, 16);
40   addKey("LIVETV", LiveTV_Key, 0x8807, 16);
41   addKey("UP", Up_Key, 0x2807, 16);
42   addKey("DOWN", Down_Key, 0x6807, 16);
43   addKey("RIGHT", Right_Key, 0xA807, 16);
44   addKey("LEFT", Left_Key, 0xE807, 16);
45   addKey("THUMBSDOWN", Unmapped_Key, 0x1807, 16);
46   addKey("THUMBSUP", Unmapped_Key, 0x5807, 16);
47   addKey("SELECT", Select_Key, 0x9807, 16);
48   addKey("RECORD", Record_Key, 0x040B, 16);
49   addKey("PLAY", Play_Key, 0x840B, 16);
50   addKey("CH+", ChannelUp_Key, 0x7807, 16);
51   addKey("CH-", ChannelDown_Key, 0xF807, 16);
52   addKey("REV", Rewind_Key, 0x440B, 16);
53   addKey("FWD", FastForward_Key, 0x240B, 16);
54   addKey("PAUSE", Pause_Key, 0xC40B, 16);
55   addKey("SLOW", Slow_Key, 0xA40B, 16);
56   addKey("REPLAY", Replay_Key, 0x640B, 16);
57   addKey("JUMPTOEND", Advance_Key, 0xE40B, 16);
58   addKey("1", One_Key, 0x140B, 16);
59   addKey("2", Two_Key, 0x940B, 16);
60   addKey("3", Three_Key, 0x540B, 16);
61   addKey("4", Four_Key, 0xD40B, 16);
62   addKey("5", Five_Key, 0x340B, 16);
63   addKey("6", Six_Key, 0xB40B, 16);
64   addKey("7", Seven_Key, 0x740B, 16);
65   addKey("8", Eight_Key, 0xF40B, 16);
66   addKey("9", Nine_Key, 0x0C03, 16);
67   addKey("0", Zero_Key, 0x8C03, 16);
68   addKey("CLEAR", Clear_Key, 0x4C03, 16);
69   addKey("ENTER/LAST", Enter_Key, 0xCC03, 16);
70   addKey("ENTER/LAST", PrevChannel_Key, 0xCC03, 16);
71   addKey("WINDOW", PIP_Key, 0x220D, 16);
72   addKey("INFO", Info_Key, 0xC807, 16);
73   addKey("GUIDE", Guide_Key, 0x6C03, 16);
74   addKey("MUTE", Mute_Key, 0xD807, 16);
75 }
76
77
78 Tivo1a::Tivo1a(
79   unsigned int index)
80   : Tivo1(index)
81 {
82   setKeysetName("Tivo Keyset 1a");
83 }
84
85
86 void Tivo1a::populateProtocol(
87   QObject *guiObject)
88 {
89   if (threadableProtocol)
90   {
91     // If the pointer is not null, the keyset must already be populated.
92     return;
93   }
94
95   Tivo1::populateProtocol(guiObject);
96
97   addKey("TIVO", Power_Key, 0xE00F, 16);
98   addKey("TVPOWER", Unmapped_Key, 0x0807, 16);
99   addKey("TVINPUT", Input_Key, 0x2C03, 16);
100   addKey("VOL+", VolumeUp_Key, 0x3807, 16);
101   addKey("VOL-", VolumeDown_Key, 0xB807, 16);
102 }
103
104
105 Tivo1b::Tivo1b(
106   unsigned int index)
107   : Tivo1(index)
108 {
109   setKeysetName("Tivo Keyset 1b");
110 }
111
112
113 void Tivo1b::populateProtocol(
114   QObject *guiObject)
115 {
116   if (threadableProtocol)
117   {
118     // If the pointer is not null, the keyset must already be populated.
119     return;
120   }
121
122   Tivo1::populateProtocol(guiObject);
123
124   addKey("tivo", Power_Key, 0xF00F, 16);
125   addKey("tvpower", Unmapped_Key, 0x48B7, 16);
126   addKey("vol+", VolumeUp_Key, 0x6897, 16);
127   addKey("vol-", VolumeDown_Key, 0xE817, 16);
128 //  addKey("mute", Mute_Key, 0xA857, 16); // Why two mute keys?
129   addKey("exit", Exit_Key, 0xA20D, 16);
130   addKey("list", Unmapped_Key, 0x620D, 16);
131 }
132
133
134 Tivo1c::Tivo1c(
135   unsigned int index)
136   : Tivo1(index)
137 {
138   setKeysetName("Tivo Keyset 1c");
139 }
140
141
142 void Tivo1c::populateProtocol(
143   QObject *guiObject)
144 {
145   if (threadableProtocol)
146   {
147     // If the pointer is not null, the keyset must already be populated.
148     return;
149   }
150
151   Tivo1::populateProtocol(guiObject);
152
153   addKey("TIVO", Power_Key, 0x500F, 16);
154   addKey("TV_POWER", Unmapped_Key, 0x0807, 16);
155   addKey("TV_INPUT", Input_Key, 0x2C03, 16);
156   addKey("VOL_UP", VolumeUp_Key, 0x3807, 16);
157   addKey("VOL_DOWN", VolumeDown_Key, 0xB807, 16);
158 }
159
160
161 Tivo1d::Tivo1d(
162   unsigned int index)
163   : Tivo1(index)
164 {
165   setKeysetName("Tivo Keyset 1d");
166 }
167
168
169 void Tivo1d::populateProtocol(
170   QObject *guiObject)
171 {
172   if (threadableProtocol)
173   {
174     // If the pointer is not null, the keyset must already be populated.
175     return;
176   }
177
178   Tivo1::populateProtocol(guiObject);
179
180   addKey("TIVO", Power_Key, 0x400F, 16);
181   addKey("TVPWR", Unmapped_Key, 0x0807, 16);
182   addKey("GUIDE", Guide_Key, 0x8807, 16);
183   addKey("MENU", Menu_Key, 0x4807, 16);
184   addKey("VOL+", VolumeUp_Key, 0x3807, 16);
185   addKey("VOL-", VolumeDown_Key, 0xB807, 16);
186 }