6 #include <QNetworkReply>
8 // XBMC constants -- from https://github.com/xbmc/xbmc/blob/master/xbmc/guilib/Key.h
9 #define ACTION_MOVE_LEFT 1
10 #define ACTION_MOVE_RIGHT 2
11 #define ACTION_MOVE_UP 3
12 #define ACTION_MOVE_DOWN 4
13 #define ACTION_NEXT_SUBTITLE 26 // switch to next subtitle of movie. Can b used in videoFullScreen.xml window id=2005
14 #define ACTION_SUBTITLE_DELAY_MIN 52 // Decrease subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
15 #define ACTION_SUBTITLE_DELAY_PLUS 53 // Increase subtitle/movie Delay. Can b used in videoFullScreen.xml window id=2005
16 #define ACTION_AUDIO_DELAY_MIN 54 // Increase avsync delay. Can b used in videoFullScreen.xml window id=2005
17 #define ACTION_AUDIO_DELAY_PLUS 55 // Decrease avsync delay. Can b used in videoFullScreen.xml window id=2005
18 #define ACTION_AUDIO_NEXT_LANGUAGE 56 // Select next language in movie. Can b used in videoFullScreen.xml window id=2005
19 #define ACTION_ENTER 135
20 #define ACTION_SHOW_GUI 18 // toggle between GUI and movie or GUI and visualisation.
21 #define ACTION_STEP_FORWARD 20 // seek +1% in the movie. Can b used in videoFullScreen.xml window id=2005
22 #define ACTION_STEP_BACK 21 // seek -1% in the movie. Can b used in videoFullScreen.xml window id=2005
23 #define ACTION_BIG_STEP_FORWARD 22 // seek +10% in the movie. Can b used in videoFullScreen.xml window id=2005
24 #define ACTION_BIG_STEP_BACK 23 // seek -10% in the movie. Can b used in videoFullScreen.xml window id=2005
26 #define ACTION_PLAYER_PLAY 79 // Play current song. Unpauses song and sets playspeed to 1x. global action, can be used anywhere
27 #define ACTION_SELECT_ITEM 7
28 #define ACTION_HIGHLIGHT_ITEM 8
29 #define ACTION_PARENT_DIR 9
31 Xbmc::Xbmc(QObject *parent) : QObject(parent)
33 m_manager = new QNetworkAccessManager(this);
41 void Xbmc::do_command_action(int action)
44 QString server = settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString();
45 QString port = settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toString();
47 QUrl url = QUrl(QString("http://%1:%2/xbmcCmds/xbmcHttp?command=Action(%3)").arg(server).arg(port).arg(action));
49 QNetworkRequest request;
52 QNetworkReply *reply = m_manager->get(request);
53 connect(reply, SIGNAL(finished()), this, SLOT(commandActionFinished()));
56 void Xbmc::actionMoveRight()
58 do_command_action(ACTION_MOVE_RIGHT);
61 void Xbmc::actionMoveLeft()
63 do_command_action(ACTION_MOVE_LEFT);
66 void Xbmc::actionMoveUp()
68 do_command_action(ACTION_MOVE_UP);
71 void Xbmc::actionMoveDown()
73 do_command_action(ACTION_MOVE_DOWN);
76 void Xbmc::commandActionFinished()
78 QNetworkReply* reply = qobject_cast<QNetworkReply *>(sender());
80 if (reply->error() == QNetworkReply::NoError) {
81 QTextStream stream(reply);
82 QString msg = stream.readAll();
83 qDebug("Xbmc::commandActionFinished: %s", qPrintable(msg));
85 qDebug("Xbmc::commandActionFinished: error: %s", qPrintable(reply->errorString()));