[snappy] engine: add engine_change_speed()
- From: Luis de Bethencourt <luisbg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [snappy] engine: add engine_change_speed()
- Date: Tue, 8 Oct 2013 18:52:23 +0000 (UTC)
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]