[rygel] examples: Add play/pause to space key
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [rygel] examples: Add play/pause to space key
- Date: Sun, 12 Jul 2020 09:22:28 +0000 (UTC)
commit 0a8d3437d89dca5d89efda8d714cf7fcf45e8d8a
Author: Jens Georg <mail jensge org>
Date: Sun Jul 12 11:21:05 2020 +0200
examples: Add play/pause to space key
For fullscreen renderer
examples/fullscreen-renderer.c | 28 ++++++++++++++++++++++++++--
1 file changed, 26 insertions(+), 2 deletions(-)
---
diff --git a/examples/fullscreen-renderer.c b/examples/fullscreen-renderer.c
index 317212ea..f1337ee8 100644
--- a/examples/fullscreen-renderer.c
+++ b/examples/fullscreen-renderer.c
@@ -130,13 +130,37 @@ static gboolean on_draw (GtkWidget *widget, cairo_t *cr, gpointer user_data)
return TRUE;
}
+static void toggle_play_pause (GstElement *element)
+{
+ GstStateChangeReturn ret;
+ GstState current = GST_STATE_NULL, pending = GST_STATE_NULL;
+
+ ret = gst_element_get_state (element, ¤t, &pending, GST_CLOCK_TIME_NONE);
+
+ if (ret != GST_STATE_CHANGE_SUCCESS)
+ return;
+
+ if (current == GST_STATE_PAUSED) {
+ gst_element_set_state (element, GST_STATE_PLAYING);
+ }
+
+ if (current == GST_STATE_PLAYING) {
+ gst_element_set_state (element, GST_STATE_PAUSED);
+ }
+}
+
static gboolean on_key_released (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
+ GdkEvent *event,
+ gpointer user_data)
{
GdkEventKey *key_event = (GdkEventKey *) event;
+ MainData *data = (MainData *) user_data;
switch (key_event->keyval) {
+ case GDK_KEY_space:
+ toggle_play_pause (data->playbin);
+
+ return FALSE;
case GDK_KEY_Escape:
case GDK_KEY_q:
case GDK_KEY_Q:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]