From: Tim-Philipp Müller Date: Wed, 29 Apr 2015 14:44:59 +0000 (+0100) Subject: gst-play: add some more key navigation mappings X-Git-Tag: 1.6.0~330 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a8d1d22469a522dc5dcf0cde01cc7a3ae31aac5;p=platform%2Fupstream%2Fgst-plugins-base.git gst-play: add some more key navigation mappings And don't feed multi-character key descriptors to the event handler, it won't be what it expects. --- diff --git a/tools/gst-play.c b/tools/gst-play.c index 3e90e7c1b..8d2bfe9d7 100644 --- a/tools/gst-play.c +++ b/tools/gst-play.c @@ -376,17 +376,30 @@ play_bus_msg (GstBus * bus, GstMessage * msg, gpointer user_data) GstNavigationMessageType mtype = gst_navigation_message_get_type (msg); if (mtype == GST_NAVIGATION_MESSAGE_EVENT) { GstEvent *ev; + if (gst_navigation_message_parse_event (msg, &ev)) { GstNavigationEventType e_type = gst_navigation_event_get_type (ev); switch (e_type) { case GST_NAVIGATION_EVENT_KEY_PRESS: { const gchar *key; + if (gst_navigation_event_parse_key_event (ev, &key)) { + GST_INFO ("Key press: %s", key); + if (strcmp (key, "Left") == 0) key = GST_PLAY_KB_ARROW_LEFT; else if (strcmp (key, "Right") == 0) key = GST_PLAY_KB_ARROW_RIGHT; + else if (strcmp (key, "Up") == 0) + key = GST_PLAY_KB_ARROW_UP; + else if (strcmp (key, "Down") == 0) + key = GST_PLAY_KB_ARROW_DOWN; + else if (strcmp (key, "space") == 0) + key = " "; + else if (strlen (key) > 1) + break; + keyboard_cb (key, user_data); } break;