summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorTim-Philipp Müller <tim@centricular.com>2015-02-26 10:20:20 +0000
committerTim-Philipp Müller <tim@centricular.com>2015-02-26 11:00:26 +0000
commit0c8967348ff1d894f1ce20ec14f33b0f94e2228c (patch)
tree44e0140d2fe0f4d6d84c97d00354f4e87f010812 /tools
parentc243f386c93a40affd388d160da7d1b899640291 (diff)
gst-play: stash current playback rate in app structure
https://bugzilla.gnome.org/show_bug.cgi?id=745174
Diffstat (limited to 'tools')
-rw-r--r--tools/gst-play.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/tools/gst-play.c b/tools/gst-play.c
index 6800faa0c..a53c1e682 100644
--- a/tools/gst-play.c
+++ b/tools/gst-play.c
@@ -65,6 +65,8 @@ typedef struct
/* configuration */
gboolean gapless;
+
+ gdouble rate;
} GstPlay;
static gboolean quiet = FALSE;
@@ -163,6 +165,8 @@ play_new (gchar ** uris, const gchar * audio_sink, const gchar * video_sink,
if (initial_volume != -1)
play_set_relative_volume (play, initial_volume - 1.0);
+ play->rate = 1.0;
+
return play;
}
@@ -676,7 +680,6 @@ static void
keyboard_cb (const gchar * key_input, gpointer user_data)
{
GstPlay *play = (GstPlay *) user_data;
- static gdouble rate = 1.0;
switch (g_ascii_tolower (key_input[0])) {
case ' ':
@@ -696,16 +699,16 @@ keyboard_cb (const gchar * key_input, gpointer user_data)
play_prev (play);
break;
case '+':
- rate += 0.5;
- change_rate (play, rate);
+ play->rate += 0.5;
+ change_rate (play, play->rate);
break;
case '-':
- rate -= 0.5;
- change_rate (play, rate);
+ play->rate -= 0.5;
+ change_rate (play, play->rate);
break;
case 'd':
- rate *= -1.0;
- change_rate (play, rate);
+ play->rate *= -1.0;
+ change_rate (play, play->rate);
break;
case 27: /* ESC */
if (key_input[1] == '\0') {