X-Git-Url: http://git.maemo.org/git/?p=simple-xmbc-rem;a=blobdiff_plain;f=src%2Fxbmc.cpp;fp=src%2Fxbmc.cpp;h=ce7d41f6ce40919c955efb9c931b1f47c69f7e77;hp=5730eb565cf941001698d27f934e5d2419eedd35;hb=e26dfb2c1f62e05d195a2ebf30c647eb6e99fe58;hpb=f040856118b714b1b1a07c247687747064a4a3fc diff --git a/src/xbmc.cpp b/src/xbmc.cpp index 5730eb5..ce7d41f 100644 --- a/src/xbmc.cpp +++ b/src/xbmc.cpp @@ -11,34 +11,37 @@ #define ACTION_MOVE_RIGHT 2 #define ACTION_MOVE_UP 3 #define ACTION_MOVE_DOWN 4 +#define ACTION_SELECT_ITEM 7 +#define ACTION_HIGHLIGHT_ITEM 8 +#define ACTION_PARENT_DIR 9 +#define ACTION_PAUSE 12 +#define ACTION_STOP 13 +#define ACTION_NEXT_ITEM 14 +#define ACTION_PREV_ITEM 15 +#define ACTION_FORWARD 16 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_* +#define ACTION_REWIND 17 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_* +#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_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 - #define ACTION_VOLUME_UP 88 #define ACTION_VOLUME_DOWN 89 #define ACTION_MUTE 91 +#define ACTION_CONTEXT_MENU 117 // pops up the context menu +#define ACTION_ENTER 135 -#define ACTION_PAUSE 12 -#define ACTION_STOP 13 -#define ACTION_NEXT_ITEM 14 -#define ACTION_PREV_ITEM 15 -#define ACTION_FORWARD 16 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_* -#define ACTION_REWIND 17 // Can be used to specify specific action in a window, Playback control is handled in ACTION_PLAYER_* +// 0xF000 -> 0xF200 is reserved for the keyboard; a keyboard press is either +#define KEY_VKEY 0xF000 // a virtual key/functional key e.g. cursor left +#define KEY_ASCII 0xF100 // a printable character in the range of TRUE ASCII (from 0 to 127) // FIXME make it clean and pure unicode! remove the need for KEY_ASCII +#define KEY_UNICODE 0xF200 // another printable character whose range is not included in this KEY code Xbmc::Xbmc(QObject *parent) : QObject(parent) { @@ -143,3 +146,33 @@ void Xbmc::actionStop() { do_command_action(ACTION_STOP); } + +void Xbmc::actionShowGui() +{ + do_command_action(ACTION_SHOW_GUI); +} + +void Xbmc::actionSendKeyEsc() +{ + do_send_key(KEY_ASCII + 0x1B); // ESC +} + +void Xbmc::actionContextMenu() +{ + do_command_action(ACTION_CONTEXT_MENU); +} + +void Xbmc::do_send_key(int key) +{ + QSettings settings; + QString server = settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString(); + QString port = settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toString(); + + QUrl url = QUrl(QString("http://%1:%2/xbmcCmds/xbmcHttp?command=SendKey(%3)").arg(server).arg(port).arg(key)); + + QNetworkRequest request; + request.setUrl(url); + + QNetworkReply *reply = m_manager->get(request); + connect(reply, SIGNAL(finished()), this, SLOT(commandActionFinished())); +}