use http for sending commands
authorIonutz Borcoman <iborco@gmail.com>
Sat, 5 Mar 2011 15:34:02 +0000 (17:34 +0200)
committerIonutz Borcoman <iborco@gmail.com>
Thu, 10 Mar 2011 08:10:13 +0000 (10:10 +0200)
src/constants.h
src/json.cpp
src/json.h
src/main.cpp
src/mainwindow.cpp
src/mainwindow.h
src/mainwindow.ui
src/xbmcnetmoviesremote.pro

index 2adece1..5b27fa8 100644 (file)
 #define SETUP_XBMC_PORT "xbmc/port"
 #define SETUP_XBMC_PORT_DEFAULT "9090"
 
+// XBMC constants -- from https://github.com/xbmc/xbmc/blob/master/xbmc/guilib/Key.h
+#define ACTION_MOVE_LEFT                1
+#define ACTION_MOVE_RIGHT               2
+#define ACTION_MOVE_UP                  3
+#define ACTION_MOVE_DOWN                4
+#define ACTION_NEXT_SUBTITLE            26 // switch to next subtitle of movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_SUBTITLE_DELAY_MIN       52 // Decrease subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_SUBTITLE_DELAY_PLUS      53 // Increase subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_AUDIO_DELAY_MIN          54 // Increase avsync delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_AUDIO_DELAY_PLUS         55 // Decrease avsync delay. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_AUDIO_NEXT_LANGUAGE      56 // Select next language in movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_ENTER                    135
+#define ACTION_SHOW_GUI                 18 // toggle between GUI and movie or GUI and visualisation.
+#define ACTION_STEP_FORWARD             20 // seek +1% in the movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_STEP_BACK                21 // seek -1% in the movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_BIG_STEP_FORWARD         22 // seek +10% in the movie. Can b used in videoFullScreen.xml window id=2005
+#define ACTION_BIG_STEP_BACK            23 // seek -10% in the movie. Can b used in videoFullScreen.xml window id=2005
+
+#define ACTION_PLAYER_PLAY              79 // Play current song. Unpauses song and sets playspeed to 1x. global action, can be used anywhere
+#define ACTION_SELECT_ITEM              7
+#define ACTION_HIGHLIGHT_ITEM           8
+#define ACTION_PARENT_DIR               9
+
 #endif // SETTINGS_H
index 095c3f1..072fced 100644 (file)
@@ -18,3 +18,13 @@ QString JsonEngine::playerGetActivePlayers()
 {
     return serialize("Player.GetActivePlayers");
 }
+
+QString JsonEngine::videoPlayerState()
+{
+    return serialize("VideoPlayer.State");
+}
+
+QString JsonEngine::videoPlayerPlayPause()
+{
+    return serialize("VideoPlayer.PlayPause");
+}
index 38e9177..45b23a4 100644 (file)
@@ -5,12 +5,16 @@
 
 class JsonEngine
 {
-    QString serialize(const QString& method);
     static int id;
 public:
     JsonEngine();
 
     QString playerGetActivePlayers();
+    QString videoPlayerState();
+    QString videoPlayerPlayPause();
+
+    // make this private
+    QString serialize(const QString& method);
 };
 
 #endif // JSON_H
index bb6450d..bc7d350 100644 (file)
@@ -2,6 +2,7 @@
 #include "constants.h"
 
 #include <QtGui/QApplication>
+#include <QMaemo5InformationBox>
 
 int main(int argc, char *argv[])
 {
@@ -13,5 +14,6 @@ int main(int argc, char *argv[])
     mainWindow.setOrientation(MainWindow::ScreenOrientationAuto);
     mainWindow.showExpanded();
 
+
     return app.exec();
 }
index e152515..f4e57c1 100644 (file)
@@ -18,6 +18,7 @@
 #include <QSettings>
 #include <QTimer>
 #include <QTextStream>
+#include <QNetworkReply>
 
 #if defined(Q_OS_SYMBIAN) && defined(ORIENTATIONLOCK)
 #include <eikenv.h>
 #include <aknappui.h>
 #endif // Q_OS_SYMBIAN && ORIENTATIONLOCK
 
+/////////////////////////////////////////////////////////////////////
+//
+DisconnectedState::DisconnectedState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
+    : QState(parent), m_socket(socket)
+{
+    assignProperty(button, "text", "Connect");
+    assignProperty(button, "enabled", true);
+}
+
+void DisconnectedState::onEntry(QEvent */*event*/)
+{
+    qDebug("DisconnectedState::onEntry");
+}
+
+void DisconnectedState::onExit(QEvent */*event*/)
+{
+    qDebug("DisconnectedState::onExit");
+}
+
+/////////////////////////////////////////////////////////////////////
+//
+ConnectingState::ConnectingState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
+    : QState(parent), m_socket(socket)
+{
+    assignProperty(button, "text", "Connecting");
+    assignProperty(button, "enabled", false);
+}
+
+void ConnectingState::onEntry(QEvent */*event*/)
+{
+    qDebug("ConnectingState::onEntry");
+
+    connect(m_socket, SIGNAL(connected()), this, SIGNAL(connected()));
+    connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onSocketError(QAbstractSocket::SocketError)));
+
+    // TODO: we asume the socket is not already connected
+    // TODO: we should add code to do nothing if the connection is ok, or close and open a new one if the server or port changed
+    QSettings settings;
+
+    m_socket->connectToHost(settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString(),
+                            settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toInt());
+}
+
+void ConnectingState::onExit(QEvent */*event*/)
+{
+    disconnect(m_socket, 0, this, 0);
+    qDebug("ConnectingState::onExit");
+}
+
+void ConnectingState::onSocketError(QAbstractSocket::SocketError)
+{
+    qDebug("ConnectingState::onSocketError: %s", qPrintable(m_socket->errorString()));
+    emit failed();
+}
+
+/////////////////////////////////////////////////////////////////////
+//
+ConnectedState::ConnectedState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
+    : QState(parent), m_socket(socket)
+{
+    assignProperty(button, "text", "Disconnect");
+    assignProperty(button, "enabled", true);
+}
+
+void ConnectedState::onEntry(QEvent */*event*/)
+{
+    qDebug("ConnectedState::onEntry");
+
+    connect(m_socket, SIGNAL(readyRead()), this, SLOT(onSocketData()));
+    connect(m_socket, SIGNAL(disconnected()), this, SIGNAL(disconnected()));
+    connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onSocketError(QAbstractSocket::SocketError)));
+}
+
+void ConnectedState::onExit(QEvent */*event*/)
+{
+    disconnect(m_socket, 0, this, 0);
+    qDebug("ConnectedState::onExit");
+}
+
+void ConnectedState::onSocketError(QAbstractSocket::SocketError)
+{
+    qDebug("ConnectedState::onSocketError: %s", qPrintable(m_socket->errorString()));
+}
+
+void ConnectedState::onSocketData()
+{
+    QTextStream stream(m_socket);
+    QString msg = stream.readAll();
+    qDebug("ConnectedState::onSocketData: %s", qPrintable(msg));
+}
+
+/////////////////////////////////////////////////////////////////////
+//
+DisconnectingState::DisconnectingState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
+    : QState(parent), m_socket(socket)
+{
+    assignProperty(button, "text", "Disconnecting");
+    assignProperty(button, "enabled", false);
+}
+
+void DisconnectingState::onEntry(QEvent */*event*/)
+{
+    qDebug("DisconnectingState::onEntry");
+
+    connect(m_socket, SIGNAL(disconnected()), this, SIGNAL(disconnected()));
+    connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onSocketError(QAbstractSocket::SocketError)));
+
+    if (m_socket->state() != QTcpSocket::UnconnectedState) {
+        qDebug("DisconnectingState::disconnectFromHost");
+        m_socket->disconnectFromHost();
+    }
+    else {
+        qDebug("DisconnectingState::disconnect");
+        QTimer::singleShot(0, this, SIGNAL(disconnected()));
+    }
+}
+
+void DisconnectingState::onExit(QEvent */*event*/)
+{
+    disconnect(m_socket, 0, this, 0);
+    qDebug("DisconnectingState::onExit");
+}
+
+void DisconnectingState::onSocketError(QAbstractSocket::SocketError)
+{
+    qDebug("DisconnectingState::onSocketError: %s", qPrintable(m_socket->errorString()));
+}
+
+/////////////////////////////////////////////////////////////////////
+//
 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent), m_ui(new Ui::MainWindow)
 {
     m_ui->setupUi(this);
+    m_manager = new QNetworkAccessManager(this);
 
     createStates();
     createTransitions();
@@ -42,6 +174,7 @@ MainWindow::MainWindow(QWidget *parent)
 MainWindow::~MainWindow()
 {
     delete m_ui;
+    delete m_manager;
 }
 
 void MainWindow::setOrientation(ScreenOrientation orientation)
@@ -125,137 +258,144 @@ void MainWindow::createTransitions()
 
 void MainWindow::createConnections()
 {
+    connect(m_manager, SIGNAL(finished(QNetworkReply*)), this, SLOT(onNetworAccesskManagerReplyFinished(QNetworkReply*)));
 }
 
-/////////////////////////////////////////////////////////////////////
-//
-DisconnectedState::DisconnectedState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
-    : QState(parent), m_socket(socket)
+void MainWindow::on_videoPlayerStateBtn_clicked()
 {
-    assignProperty(button, "text", "Connect");
-    assignProperty(button, "enabled", true);
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().videoPlayerState();
 }
 
-void DisconnectedState::onEntry(QEvent */*event*/)
+void MainWindow::on_videoPlayerPlayPauseBtn_clicked()
 {
-    qDebug("DisconnectedState::onEntry");
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().videoPlayerPlayPause();
 }
 
-void DisconnectedState::onExit(QEvent */*event*/)
+void MainWindow::on_videoPlayerStopBtn_clicked()
 {
-    qDebug("DisconnectedState::onExit");
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.Stop");
 }
 
-/////////////////////////////////////////////////////////////////////
-//
-ConnectingState::ConnectingState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
-    : QState(parent), m_socket(socket)
+void MainWindow::on_videoPlayerSkipPreviousBtn_clicked()
 {
-    assignProperty(button, "text", "Connecting");
-    assignProperty(button, "enabled", false);
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.SkipPrevious");
 }
 
-void ConnectingState::onEntry(QEvent */*event*/)
+void MainWindow::on_videoPlayerSkipNextBtn_clicked()
 {
-    qDebug("ConnectingState::onEntry");
-
-    connect(m_socket, SIGNAL(connected()), this, SIGNAL(connected()));
-    connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onSocketError(QAbstractSocket::SocketError)));
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.SkipNext");
+}
 
-    // TODO: we asume the socket is not already connected
-    // TODO: we should add code to do nothing if the connection is ok, or close and open a new one if the server or port changed
-    QSettings settings;
+void MainWindow::on_videoPlayerBigSkipBackwardBtn_clicked()
+{
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.BigSkipBackward");
+}
 
-    m_socket->connectToHost(settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString(),
-                            settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toInt());
+void MainWindow::on_videoPlayerBigSkipForwardBtn_clicked()
+{
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.BigSkipForward");
 }
 
-void ConnectingState::onExit(QEvent */*event*/)
+void MainWindow::on_videoPlayerSmallSkipBackwardBtn_clicked()
 {
-    disconnect(m_socket, 0, this, 0);
-    qDebug("ConnectingState::onExit");
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.SmallSkipBackward");
 }
 
-void ConnectingState::onSocketError(QAbstractSocket::SocketError)
+void MainWindow::on_videoPlayerSmallSkipForwardBtn_clicked()
 {
-    qDebug("ConnectingState::onSocketError: %s", qPrintable(m_socket->errorString()));
-    emit failed();
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.SmallSkipForward");
 }
 
-/////////////////////////////////////////////////////////////////////
-//
-ConnectedState::ConnectedState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
-    : QState(parent), m_socket(socket)
+void MainWindow::on_videoPlayerGetTimeBtn_clicked()
 {
-    assignProperty(button, "text", "Disconnect");
-    assignProperty(button, "enabled", true);
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("VideoPlayer.GetTime");
 }
 
-void ConnectedState::onEntry(QEvent */*event*/)
+void MainWindow::on_xbmcGetVolumeBtn_clicked()
 {
-    qDebug("ConnectedState::onEntry");
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("XBMC.GetVolume");
+}
 
-    connect(m_socket, SIGNAL(readyRead()), this, SLOT(onSocketData()));
-    connect(m_socket, SIGNAL(disconnected()), this, SIGNAL(disconnected()));
-    connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onSocketError(QAbstractSocket::SocketError)));
+void MainWindow::on_xbmcToggleMuteBtn_clicked()
+{
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("XBMC.ToggleMute");
+}
 
-    QTextStream stream(m_socket);
-    stream << JsonEngine().playerGetActivePlayers();
+void MainWindow::on_xbmcPlayBtn_clicked()
+{
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("XBMC.Play");
+}
 
-    qDebug("ConnectedState::onEntry - request sent");
+void MainWindow::on_xbmcQuitBtn_clicked()
+{
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().serialize("XBMC.Quit");
 }
 
-void ConnectedState::onExit(QEvent */*event*/)
+void MainWindow::on_playerGetActivePlayers_clicked()
 {
-    disconnect(m_socket, 0, this, 0);
-    qDebug("ConnectedState::onExit");
+    QTextStream stream(&m_serverSocket);
+    stream << JsonEngine().playerGetActivePlayers();
 }
 
-void ConnectedState::onSocketError(QAbstractSocket::SocketError)
+void MainWindow::on_actionLeftBtn_clicked()
 {
-    qDebug("ConnectedState::onSocketError: %s", qPrintable(m_socket->errorString()));
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_MOVE_LEFT))));
 }
 
-void ConnectedState::onSocketData()
+void MainWindow::onNetworAccesskManagerReplyFinished(QNetworkReply *reply)
 {
-    QTextStream stream(m_socket);
+    QTextStream stream(reply);
     QString msg = stream.readAll();
-    qDebug("ConnectedState::onSocketData: %s", qPrintable(msg));
+    qDebug("MainWindow::onNetworAccesskManagerReplyFinished: %s", qPrintable(msg));
+
+    reply->deleteLater();
 }
 
-/////////////////////////////////////////////////////////////////////
-//
-DisconnectingState::DisconnectingState(QAbstractButton *button, QTcpSocket* socket, QState *parent)
-    : QState(parent), m_socket(socket)
+void MainWindow::on_actionRightBtn_clicked()
 {
-    assignProperty(button, "text", "Disconnecting");
-    assignProperty(button, "enabled", false);
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_MOVE_RIGHT))));
 }
 
-void DisconnectingState::onEntry(QEvent */*event*/)
+void MainWindow::on_actionUpBtn_clicked()
 {
-    qDebug("DisconnectingState::onEntry");
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_MOVE_UP))));
+}
 
-    connect(m_socket, SIGNAL(disconnected()), this, SIGNAL(disconnected()));
-    connect(m_socket, SIGNAL(error(QAbstractSocket::SocketError)), this, SLOT(onSocketError(QAbstractSocket::SocketError)));
+void MainWindow::on_actionDownBtn_clicked()
+{
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_MOVE_DOWN))));
+}
 
-    if (m_socket->state() != QTcpSocket::UnconnectedState) {
-        qDebug("DisconnectingState::disconnectFromHost");
-        m_socket->disconnectFromHost();
-    }
-    else {
-        qDebug("DisconnectingState::disconnect");
-        QTimer::singleShot(0, this, SIGNAL(disconnected()));
-    }
+void MainWindow::on_actionEnterBtn_clicked()
+{
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_ENTER))));
 }
 
-void DisconnectingState::onExit(QEvent */*event*/)
+void MainWindow::on_actionPlayBtn_clicked()
 {
-    disconnect(m_socket, 0, this, 0);
-    qDebug("DisconnectingState::onExit");
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_PLAYER_PLAY))));
 }
 
-void DisconnectingState::onSocketError(QAbstractSocket::SocketError)
+void MainWindow::on_actionSelectItemBtn_clicked()
 {
-    qDebug("DisconnectingState::onSocketError: %s", qPrintable(m_socket->errorString()));
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_SELECT_ITEM))));
+}
+
+void MainWindow::on_actionParentDirBtn_clicked()
+{
+    m_manager->get(QNetworkRequest(QUrl(QString("http://localhost:8080/xbmcCmds/xbmcHttp?command=Action(%1)").arg(ACTION_PARENT_DIR))));
 }
index beb9299..4ef3104 100644 (file)
 #ifndef MAINWINDOW_H
 #define MAINWINDOW_H
 
-#include <QtGui/QMainWindow>
+#include <QMainWindow>
 #include <QTcpSocket>
 #include <QStateMachine>
 #include <QState>
 #include <QAbstractButton>
+#include <QNetworkAccessManager>
 
 namespace Ui {
     class MainWindow;
@@ -106,6 +107,32 @@ public:
 private slots:
     // auto-connected slots
     void on_actionSetup_triggered();
+    void on_videoPlayerStateBtn_clicked();
+    void on_videoPlayerPlayPauseBtn_clicked();
+    void on_videoPlayerStopBtn_clicked();
+    void on_videoPlayerSkipPreviousBtn_clicked();
+    void on_videoPlayerSkipNextBtn_clicked();
+    void on_videoPlayerBigSkipBackwardBtn_clicked();
+    void on_videoPlayerBigSkipForwardBtn_clicked();
+    void on_videoPlayerSmallSkipBackwardBtn_clicked();
+    void on_videoPlayerSmallSkipForwardBtn_clicked();
+    void on_videoPlayerGetTimeBtn_clicked();
+    void on_xbmcGetVolumeBtn_clicked();
+    void on_xbmcToggleMuteBtn_clicked();
+    void on_xbmcPlayBtn_clicked();
+    void on_xbmcQuitBtn_clicked();
+    void on_playerGetActivePlayers_clicked();
+    void on_actionLeftBtn_clicked();
+
+    void onNetworAccesskManagerReplyFinished(QNetworkReply* reply);
+
+    void on_actionRightBtn_clicked();
+    void on_actionUpBtn_clicked();
+    void on_actionDownBtn_clicked();
+    void on_actionEnterBtn_clicked();
+    void on_actionPlayBtn_clicked();
+    void on_actionSelectItemBtn_clicked();
+    void on_actionParentDirBtn_clicked();
 
 private:
     void pendingNetworkOperation(bool pending);
@@ -115,6 +142,7 @@ private:
     void createConnections();
 
     QTcpSocket m_serverSocket;
+    QNetworkAccessManager *m_manager;
     Ui::MainWindow *m_ui;
 
     QStateMachine m_stateMachine;
index fa7ff30..e8808e2 100644 (file)
       </property>
       <widget class="QWidget" name="infoPage">
        <layout class="QVBoxLayout" name="verticalLayout">
-        <property name="margin">
-         <number>0</number>
-        </property>
+        <item>
+         <layout class="QGridLayout" name="gridLayout">
+          <item row="0" column="0">
+           <widget class="QToolButton" name="videoPlayerStateBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.State</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="1">
+           <widget class="QToolButton" name="videoPlayerPlayPauseBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.PlayPause</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="2">
+           <widget class="QToolButton" name="videoPlayerStopBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.Stop</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="0">
+           <widget class="QToolButton" name="actionLeftBtn">
+            <property name="toolTip">
+             <string>left</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="0">
+           <widget class="QToolButton" name="xbmcGetVolumeBtn">
+            <property name="toolTip">
+             <string>XBMC.GetVolume</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="0">
+           <widget class="QToolButton" name="videoPlayerBigSkipBackwardBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.BigSkipBackward</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="1">
+           <widget class="QToolButton" name="videoPlayerBigSkipForwardBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.BigSkipForward</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="2">
+           <widget class="QToolButton" name="videoPlayerSmallSkipBackwardBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.SmallSkipBackward</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="1">
+           <widget class="QToolButton" name="xbmcToggleMuteBtn">
+            <property name="toolTip">
+             <string>XBMC.ToggleMute</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="2">
+           <widget class="QToolButton" name="xbmcPlayBtn">
+            <property name="toolTip">
+             <string>XBMC.Play</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="1">
+           <widget class="QToolButton" name="actionRightBtn">
+            <property name="toolTip">
+             <string>right</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="2">
+           <widget class="QToolButton" name="actionUpBtn">
+            <property name="toolTip">
+             <string>up</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="3">
+           <widget class="QToolButton" name="videoPlayerSkipPreviousBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.SkipPrevious</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="3">
+           <widget class="QToolButton" name="videoPlayerSmallSkipForwardBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.SmallSkipForward</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="3">
+           <widget class="QToolButton" name="xbmcQuitBtn">
+            <property name="toolTip">
+             <string>XBMC.Quit</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="3">
+           <widget class="QToolButton" name="actionDownBtn">
+            <property name="toolTip">
+             <string>down</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="3" column="4">
+           <widget class="QToolButton" name="actionEnterBtn">
+            <property name="toolTip">
+             <string>enter</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="2" column="4">
+           <widget class="QToolButton" name="playerGetActivePlayers">
+            <property name="toolTip">
+             <string>playerGetActivePlayers</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="1" column="4">
+           <widget class="QToolButton" name="videoPlayerGetTimeBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.GetTime</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="0" column="4">
+           <widget class="QToolButton" name="videoPlayerSkipNextBtn">
+            <property name="toolTip">
+             <string>VideoPlayer.SkipNext</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="0">
+           <widget class="QToolButton" name="actionPlayBtn">
+            <property name="toolTip">
+             <string>play</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="1">
+           <widget class="QToolButton" name="actionSelectItemBtn">
+            <property name="toolTip">
+             <string>select item</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+          <item row="4" column="2">
+           <widget class="QToolButton" name="actionParentDirBtn">
+            <property name="toolTip">
+             <string>parent dir</string>
+            </property>
+            <property name="text">
+             <string>...</string>
+            </property>
+           </widget>
+          </item>
+         </layout>
+        </item>
         <item>
          <widget class="QTextEdit" name="textEdit">
           <property name="enabled">
index f64f4ae..c959dab 100644 (file)
@@ -9,7 +9,7 @@ DEPLOYMENTFOLDERS = # file1 dir1
 
 # Needs to be defined for Symbian
 DEFINES += NETWORKACCESS
-QT += network
+QT += network maemo5
 
 symbian:TARGET.UID3 = 0xED8FBFF1