[snappy] engine: add engine_change_speed()



commit 98a2f27afd08187e9d4036fed3fb2b2471edf63b
Author: Luis de Bethencourt <luis debethencourt com>
Date:   Tue Oct 8 14:52:09 2013 -0400

    engine: add engine_change_speed()

 src/gst_engine.c     |   21 +++++++++++++++++++++
 src/user_interface.c |    9 +++++++++
 2 files changed, 30 insertions(+), 0 deletions(-)
---
diff --git a/src/gst_engine.c b/src/gst_engine.c
index 623b71b..4b67a49 100644
--- a/src/gst_engine.c
+++ b/src/gst_engine.c
@@ -767,6 +767,27 @@ engine_init (GstEngine * engine, GstElement * sink)
   return TRUE;
 }
 
+/*              Change playback rate             */
+gboolean
+engine_change_speed (GstEngine *engine, gdouble rate)
+{
+  gint64 pos;
+  GstFormat fmt = GST_FORMAT_TIME;
+  GstSeekFlags flags;
+  GstEvent *seek_event;
+
+  /* Obtain the current position, needed for the seek event */
+  if (!gst_element_query_position (engine->player, fmt, &pos)) {
+      g_printerr ("Unable to retrieve current position.\n");
+      return FALSE;
+  }
+
+  seek_event = gst_event_new_seek (rate, fmt, GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE,
+      GST_SEEK_TYPE_SET, pos, GST_SEEK_TYPE_NONE, 0);
+  gst_element_send_event (engine->player, seek_event);
+
+  return TRUE;
+}
 
 /*               Load URI to engine              */
 void
diff --git a/src/user_interface.c b/src/user_interface.c
index 8706e2e..bb05c42 100644
--- a/src/user_interface.c
+++ b/src/user_interface.c
@@ -446,6 +446,15 @@ event_cb (ClutterStage * stage, ClutterEvent * event, UserInterface * ui)
           break;
         }
 
+        case CLUTTER_KEY_bracketright:
+       {
+         // change playback speed
+         engine_change_speed(ui->engine, 1.2);
+
+         handled = TRUE;
+         break;
+       }
+
         case CLUTTER_less:
         {
           interface_play_next_or_prev (ui, FALSE);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]