Possible Uninstall Fix, plus cleanup, more keysets
[pierogi] / mainwindow.h
1 #ifndef MAINWINDOW_H
2 #define MAINWINDOW_H
3
4 #include <QtGui/QMainWindow>
5
6 #include "pirkeynames.h"
7 #include "pirmodprobe.h"
8
9 class QListWidgetItem;
10 class PIRSelectKeysetForm;
11 class PIRSecondaryForm;
12 class PIRDocumentationForm;
13 class PIRAboutForm;
14 class PIRKeysetManager;
15
16 namespace Ui {
17     class MainWindow;
18 }
19
20 class MainWindow : public QMainWindow
21 {
22   Q_OBJECT
23
24 public:
25   enum ScreenOrientation {
26     ScreenOrientationLockPortrait,
27     ScreenOrientationLockLandscape,
28     ScreenOrientationAuto
29   };
30
31   explicit MainWindow(QWidget *parent = 0);
32   virtual ~MainWindow();
33
34   // Note that this will only have an effect on Symbian and Fremantle.
35   void setOrientation(ScreenOrientation orientation);
36
37   void showExpanded();
38
39   void startRepeating(
40     PIRKeyName name);
41
42   void stopRepeating();
43
44 signals:
45   // Main keys
46   void powerEnabled(bool);
47   void volumeUpEnabled(bool);
48   void volumeDownEnabled(bool);
49   void channelUpEnabled(bool);
50   void channelDownEnabled(bool);
51
52   // Utility keys:
53   void redEnabled(bool);
54   void greenEnabled(bool);
55   void yellowEnabled(bool);
56   void blueEnabled(bool);
57   void aspectRatioEnabled(bool);
58   void surroundEnabled(bool);
59   void audioEnabled(bool);
60   void infoEnabled(bool);
61   void captionsEnabled(bool);
62   void inputEnabled(bool);
63   void muteEnabled(bool);
64   void sleepEnabled(bool);
65
66   // Keypad
67   void zeroEnabled(bool);
68   void oneEnabled(bool);
69   void twoEnabled(bool);
70   void threeEnabled(bool);
71   void fourEnabled(bool);
72   void fiveEnabled(bool);
73   void sixEnabled(bool);
74   void sevenEnabled(bool);
75   void eightEnabled(bool);
76   void nineEnabled(bool);
77   void enterEnabled(bool);
78   void clearEnabled(bool);
79   void dashEnabled(bool);
80   void plusOneHundredEnabled(bool);
81   void doubleDigitEnabled(bool);
82   void prevChannelEnabled(bool);
83
84   // Menu Keys
85   void menuEnabled(bool);
86   void upEnabled(bool);
87   void downEnabled(bool);
88   void leftEnabled(bool);
89   void rightEnabled(bool);
90   void selectEnabled(bool);
91   void exitEnabled(bool);
92   void guideEnabled(bool);
93   void discMenuEnabled(bool);
94
95   // Media keys
96   void playEnabled(bool);
97   void pauseEnabled(bool);
98   void stopEnabled(bool);
99   void fastForwardEnabled(bool);
100   void reverseEnabled(bool);
101   void nextEnabled(bool);
102   void previousEnabled(bool);
103   void stepForwardEnabled(bool);
104   void stepBackEnabled(bool);
105   void advanceEnabled(bool);
106   void replayEnabled(bool);
107   void ejectEnabled(bool);
108
109 /*
110   // Media2 Keys
111   void discTitleEnabled(bool);
112   void discSelectEnabled(bool);
113   void vhsSpeedEnabled(bool);
114   void trackingMinusEnabled(bool);
115   void trackingPlusEnabled(bool);
116   void autoTrackingEnabled(bool);
117   void pageUpEnabled(bool);
118   void pageDownEnabled(bool);
119   void slowEnabled(bool);
120   void slowPlusEnabled(bool);
121   void slowMinusEnabled(bool);
122   void programEnabled(bool);
123   void tunerBandEnabled(bool);
124   void repeatEnabled(bool);
125   void repeatABEnabled(bool);
126   void randomEnabled(bool);
127
128   // TV Keys
129   void pictureModeEnabled(bool);
130   void soundModeEnabled(bool);
131   void liveTVEnabled(bool);
132   void favoritesEnabled(bool);
133   void teletextEnabled(bool);
134   void teletextHoldEnabled(bool);
135   void teletextRevealEnabled(bool);
136   void teletextSizeEnabled(bool);
137   void pipEnabled(bool);
138   void pipSwapEnabled(bool);
139   void pipMoveEnabled(bool);
140   void pipSourceEnabled(bool);
141   void pipChannelUpEnabled(bool);
142   void pipChannelDownEnabled(bool);
143   void pipPauseEnabled(bool);
144   void pipSizeEnabled(bool);
145 */
146
147   void keysetMakeChanged(QString);
148   void keysetNameChanged(QString);
149
150   void buttonPressed(
151     unsigned int keysetID,
152     PIRKeyName name);
153
154   void buttonReleased();
155
156 public slots:
157   void receivedExternalWarning(
158     const char *warning);
159
160 private slots:
161   // Main tab slots:
162   void on_powerButton_pressed();
163   void on_powerButton_released();
164   void on_mainChannelUpButton_pressed();
165   void on_mainChannelUpButton_released();
166   void on_mainChannelDownButton_pressed();
167   void on_mainChannelDownButton_released();
168   void on_mainVolumeUp_pressed();
169   void on_mainVolumeUp_released();
170   void on_mainVolumeDownButton_pressed();
171   void on_mainVolumeDownButton_released();
172
173   // Utility tab slots:
174   void on_redButton_pressed();
175   void on_redButton_released();
176   void on_greenButton_pressed();
177   void on_greenButton_released();
178   void on_yellowButton_pressed();
179   void on_yellowButton_released();
180   void on_blueButton_pressed();
181   void on_blueButton_released();
182   void on_aspectRatioButton_pressed();
183   void on_aspectRatioButton_released();
184   void on_surroundButton_pressed();
185   void on_surroundButton_released();
186   void on_audioButton_pressed();
187   void on_audioButton_released();
188   void on_infoButton_pressed();
189   void on_infoButton_released();
190   void on_captionButton_pressed();
191   void on_captionButton_released();
192   void on_inputButton_pressed();
193   void on_inputButton_released();
194   void on_sleepButton_pressed();
195   void on_sleepButton_released();
196   void on_muteButton_pressed();
197   void on_muteButton_released();
198
199   // Keypad tab slots:
200   void on_oneButton_pressed();
201   void on_oneButton_released();
202   void on_twoButton_pressed();
203   void on_twoButton_released();
204   void on_threeButton_pressed();
205   void on_threeButton_released();
206   void on_fourButton_pressed();
207   void on_fourButton_released();
208   void on_fiveButton_pressed();
209   void on_fiveButton_released();
210   void on_sixButton_pressed();
211   void on_sixButton_released();
212   void on_sevenButton_pressed();
213   void on_sevenButton_released();
214   void on_eightButton_pressed();
215   void on_eightButton_released();
216   void on_nineButton_pressed();
217   void on_nineButton_released();
218   void on_zeroButton_pressed();
219   void on_zeroButton_released();
220   void on_enterButton_pressed();
221   void on_enterButton_released();
222   void on_clearButton_pressed();
223   void on_clearButton_released();
224   void on_prevChannelButton_pressed();
225   void on_prevChannelButton_released();
226   void on_plusOneHundredButton_pressed();
227   void on_plusOneHundredButton_released();
228   void on_dashButton_pressed();
229   void on_dashButton_released();
230   void on_doubleDigitButton_pressed();
231   void on_doubleDigitButton_released();
232
233   // Menu tab slots:
234   void on_upButton_pressed();
235   void on_upButton_released();
236   void on_leftButton_pressed();
237   void on_leftButton_released();
238   void on_rightButton_pressed();
239   void on_rightButton_released();
240   void on_downButton_pressed();
241   void on_downButton_released();
242   void on_selectButton_pressed();
243   void on_selectButton_released();
244   void on_menuButton_pressed();
245   void on_menuButton_released();
246   void on_exitButton_pressed();
247   void on_exitButton_released();
248   void on_guideButton_pressed();
249   void on_guideButton_released();
250   void on_discMenuButton_pressed();
251   void on_discMenuButton_released();
252
253   // Media tab slots:
254   void on_mediaPreviousButton_pressed();
255   void on_mediaPreviousButton_released();
256   void on_mediaNextButton_pressed();
257   void on_mediaNextButton_released();
258   void on_replayButton_pressed();
259   void on_replayButton_released();
260   void on_advanceButton_pressed();
261   void on_advanceButton_released();
262   void on_stepBackButton_pressed();
263   void on_stepBackButton_released();
264   void on_stepForwardButton_pressed();
265   void on_stepForwardButton_released();
266   void on_reverseButton_pressed();
267   void on_reverseButton_released();
268   void on_fastForwardButton_pressed();
269   void on_fastForwardButton_released();
270   void on_playButton_pressed();
271   void on_playButton_released();
272   void on_pauseButton_pressed();
273   void on_pauseButton_released();
274   void on_stopButton_pressed();
275   void on_stopButton_released();
276   void on_ejectButton_pressed();
277   void on_ejectButton_released();
278
279 /*
280   // Media2 tab slots:
281   void on_discTitleButton_pressed();
282   void on_discTitleButton_released();
283   void on_discSelectButton_pressed();
284   void on_discSelectButton_released();
285   void on_vhsSpeedButton_pressed();
286   void on_vhsSpeedButton_released();
287   void on_trackingPlusButton_pressed();
288   void on_trackingPlusButton_released();
289   void on_trackingMinusButton_pressed();
290   void on_trackingMinusButton_released();
291   void on_autoTrackingButton_pressed();
292   void on_autoTrackingButton_released();
293   void on_pageUpButton_pressed();
294   void on_pageUpButton_released();
295   void on_pageDownButton_pressed();
296   void on_pageDownButton_released();
297   void on_slowButton_pressed();
298   void on_slowButton_released();
299   void on_slowMinusButton_pressed();
300   void on_slowMinusButton_released();
301   void on_slowPlusButton_pressed();
302   void on_slowPlusButton_released();
303   void on_programButton_pressed();
304   void on_programButton_released();
305   void on_tunerBandButton_pressed();
306   void on_tunerBandButton_released();
307   void on_repeatButton_pressed();
308   void on_repeatButton_released();
309   void on_repeatABButton_pressed();
310   void on_repeatABButton_released();
311   void on_randomButton_pressed();
312   void on_randomButton_released();
313
314   // TV Tab slots:
315   void on_pictureModeButton_pressed();
316   void on_pictureModeButton_released();
317   void on_soundModeButton_pressed();
318   void on_soundModeButton_released();
319   void on_liveTVButton_pressed();
320   void on_liveTVButton_released();
321   void on_favoritesButton_pressed();
322   void on_favoritesButton_released();
323   void on_teletextButton_pressed();
324   void on_teletextButton_released();
325   void on_teletextHoldButton_pressed();
326   void on_teletextHoldButton_released();
327   void on_teletextRevealButton_pressed();
328   void on_teletextRevealButton_released();
329   void on_teletextSizeButton_pressed();
330   void on_teletextSizeButton_released();
331   void on_pipOnOffButton_pressed();
332   void on_pipOnOffButton_released();
333   void on_pipSwapButton_pressed();
334   void on_pipSwapButton_released();
335   void on_pipPositionButton_pressed();
336   void on_pipPositionButton_released();
337   void on_pipSourceButton_pressed();
338   void on_pipSourceButton_released();
339   void on_pipChannelUpButton_pressed();
340   void on_pipChannelUpButton_released();
341   void on_pipChannelDownButton_pressed();
342   void on_pipChannelDownButton_released();
343   void on_pipPauseButton_pressed();
344   void on_pipPauseButton_released();
345   void on_pipSizeButton_pressed();
346   void on_pipSizeButton_released();
347 */
348
349   // Favorites tab actions:
350   void on_addKeysetButton_clicked();
351   void on_removeKeysetButton_clicked();
352
353   // Menu actions:
354   void on_actionSelectKeyset_triggered();
355   void on_actionSecondary_Buttons_triggered();
356   void on_actionAbout_triggered();
357   void on_actionDocumentation_triggered();
358
359   // Internal actions:
360   void keysetSelectionChanged(
361     QListWidgetItem *item);
362
363   void finalCleanup();
364
365 private:
366   void enableButtons();
367
368   void populateFavorites();
369
370   Ui::MainWindow *ui;
371
372   PIRSelectKeysetForm *selectKeysetForm;
373   PIRSecondaryForm *secondaryForm;
374   PIRDocumentationForm *documentationForm;
375   PIRAboutForm *aboutForm;
376
377   PIRKeysetManager *myKeysets;
378
379   unsigned int currentKeyset;
380
381   PIRModprobe modprobeObj;
382 };
383
384
385 #endif // MAINWINDOW_H