4ef3104453845b9a6efe2652eac05632f12981c5
[simple-xmbc-rem] / src / mainwindow.h
1 // checksum 0x9a77 version 0x20001
2 /*
3   This file was generated by the Mobile Qt Application wizard of Qt Creator.
4   MainWindow is a convenience class containing mobile device specific code
5   such as screen orientation handling.
6   It is recommended not to modify this file, since newer versions of Qt Creator
7   may offer an updated version of it.
8 */
9
10 #ifndef MAINWINDOW_H
11 #define MAINWINDOW_H
12
13 #include <QMainWindow>
14 #include <QTcpSocket>
15 #include <QStateMachine>
16 #include <QState>
17 #include <QAbstractButton>
18 #include <QNetworkAccessManager>
19
20 namespace Ui {
21     class MainWindow;
22 }
23
24 class DisconnectedState : public QState
25 {
26 public:
27     DisconnectedState(QAbstractButton* button, QTcpSocket* socket, QState* parent = 0);
28
29 protected:
30     void onEntry(QEvent *event);
31     void onExit(QEvent *event);
32     QTcpSocket* m_socket;
33 };
34
35 class ConnectingState : public QState
36 {
37     Q_OBJECT
38 public:
39     ConnectingState(QAbstractButton* button, QTcpSocket* socket, QState* parent = 0);
40
41 signals:
42     void connected();
43     void failed();
44
45 private slots:
46     void onSocketError(QAbstractSocket::SocketError err);
47
48 protected:
49     void onEntry(QEvent *event);
50     void onExit(QEvent *event);
51     QTcpSocket* m_socket;
52 };
53
54 class ConnectedState : public QState
55 {
56     Q_OBJECT
57 public:
58     ConnectedState(QAbstractButton* button, QTcpSocket* socket, QState* parent = 0);
59
60 private slots:
61     void onSocketError(QAbstractSocket::SocketError err);
62     void onSocketData();
63
64 signals:
65     void disconnected();
66
67 protected:
68     void onEntry(QEvent *event);
69     void onExit(QEvent *event);
70     QTcpSocket* m_socket;
71 };
72
73 class DisconnectingState : public QState
74 {
75     Q_OBJECT
76 public:
77     DisconnectingState(QAbstractButton* button, QTcpSocket* socket, QState* parent = 0);
78
79 signals:
80     void disconnected();
81
82 private slots:
83     void onSocketError(QAbstractSocket::SocketError err);
84
85 protected:
86     void onEntry(QEvent *event);
87     void onExit(QEvent *event);
88     QTcpSocket* m_socket;
89 };
90
91 class MainWindow : public QMainWindow
92 {
93     Q_OBJECT
94 public:
95     enum ScreenOrientation {
96         ScreenOrientationLockPortrait,
97         ScreenOrientationLockLandscape,
98         ScreenOrientationAuto
99     };
100
101     explicit MainWindow(QWidget *parent = 0);
102     virtual ~MainWindow();
103
104     void setOrientation(ScreenOrientation orientation);
105     void showExpanded();
106
107 private slots:
108     // auto-connected slots
109     void on_actionSetup_triggered();
110     void on_videoPlayerStateBtn_clicked();
111     void on_videoPlayerPlayPauseBtn_clicked();
112     void on_videoPlayerStopBtn_clicked();
113     void on_videoPlayerSkipPreviousBtn_clicked();
114     void on_videoPlayerSkipNextBtn_clicked();
115     void on_videoPlayerBigSkipBackwardBtn_clicked();
116     void on_videoPlayerBigSkipForwardBtn_clicked();
117     void on_videoPlayerSmallSkipBackwardBtn_clicked();
118     void on_videoPlayerSmallSkipForwardBtn_clicked();
119     void on_videoPlayerGetTimeBtn_clicked();
120     void on_xbmcGetVolumeBtn_clicked();
121     void on_xbmcToggleMuteBtn_clicked();
122     void on_xbmcPlayBtn_clicked();
123     void on_xbmcQuitBtn_clicked();
124     void on_playerGetActivePlayers_clicked();
125     void on_actionLeftBtn_clicked();
126
127     void onNetworAccesskManagerReplyFinished(QNetworkReply* reply);
128
129     void on_actionRightBtn_clicked();
130     void on_actionUpBtn_clicked();
131     void on_actionDownBtn_clicked();
132     void on_actionEnterBtn_clicked();
133     void on_actionPlayBtn_clicked();
134     void on_actionSelectItemBtn_clicked();
135     void on_actionParentDirBtn_clicked();
136
137 private:
138     void pendingNetworkOperation(bool pending);
139
140     void createStates();
141     void createTransitions();
142     void createConnections();
143
144     QTcpSocket m_serverSocket;
145     QNetworkAccessManager *m_manager;
146     Ui::MainWindow *m_ui;
147
148     QStateMachine m_stateMachine;
149
150     DisconnectedState* m_disconnectedState;
151     ConnectingState* m_connectingState;
152     ConnectedState* m_connectedState;
153     DisconnectingState* m_disconnectingState;
154 };
155
156 #endif // MAINWINDOW_H