mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-23 08:46:40 +00:00
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.
This commit is contained in:
parent
44e571c5e9
commit
5a8d1d2246
1 changed files with 13 additions and 0 deletions
|
@ -376,17 +376,30 @@ play_bus_msg (GstBus * bus, GstMessage * msg, gpointer user_data)
|
||||||
GstNavigationMessageType mtype = gst_navigation_message_get_type (msg);
|
GstNavigationMessageType mtype = gst_navigation_message_get_type (msg);
|
||||||
if (mtype == GST_NAVIGATION_MESSAGE_EVENT) {
|
if (mtype == GST_NAVIGATION_MESSAGE_EVENT) {
|
||||||
GstEvent *ev;
|
GstEvent *ev;
|
||||||
|
|
||||||
if (gst_navigation_message_parse_event (msg, &ev)) {
|
if (gst_navigation_message_parse_event (msg, &ev)) {
|
||||||
GstNavigationEventType e_type = gst_navigation_event_get_type (ev);
|
GstNavigationEventType e_type = gst_navigation_event_get_type (ev);
|
||||||
switch (e_type) {
|
switch (e_type) {
|
||||||
case GST_NAVIGATION_EVENT_KEY_PRESS:
|
case GST_NAVIGATION_EVENT_KEY_PRESS:
|
||||||
{
|
{
|
||||||
const gchar *key;
|
const gchar *key;
|
||||||
|
|
||||||
if (gst_navigation_event_parse_key_event (ev, &key)) {
|
if (gst_navigation_event_parse_key_event (ev, &key)) {
|
||||||
|
GST_INFO ("Key press: %s", key);
|
||||||
|
|
||||||
if (strcmp (key, "Left") == 0)
|
if (strcmp (key, "Left") == 0)
|
||||||
key = GST_PLAY_KB_ARROW_LEFT;
|
key = GST_PLAY_KB_ARROW_LEFT;
|
||||||
else if (strcmp (key, "Right") == 0)
|
else if (strcmp (key, "Right") == 0)
|
||||||
key = GST_PLAY_KB_ARROW_RIGHT;
|
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);
|
keyboard_cb (key, user_data);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in a new issue