|
@@ -0,0 +1,107 @@
|
|
|
+Fix pause/play
|
|
|
+
|
|
|
+The current player state is now notified via the state-changed signal,
|
|
|
+and in the GTK UI it was only used to keep track of the desired state.
|
|
|
+
|
|
|
+This is a backport of upstream commit 738479c7a0.
|
|
|
+
|
|
|
+Upstream-Status: Backport
|
|
|
+Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
|
|
|
+
|
|
|
+---
|
|
|
+ gtk/gtk-play.c | 8 ++++++--
|
|
|
+ lib/gst/player/gstplayer.c | 12 ------------
|
|
|
+ lib/gst/player/gstplayer.h | 2 --
|
|
|
+ 3 files changed, 6 insertions(+), 16 deletions(-)
|
|
|
+
|
|
|
+diff --git a/gtk/gtk-play.c b/gtk/gtk-play.c
|
|
|
+index 6e7a098..e2b605a 100644
|
|
|
+--- a/gtk/gtk-play.c
|
|
|
++++ b/gtk/gtk-play.c
|
|
|
+@@ -34,6 +34,7 @@ typedef struct
|
|
|
+ GtkWidget *info_bar;
|
|
|
+ GtkWidget *volume_button;
|
|
|
+ gulong seekbar_value_changed_signal_id;
|
|
|
++ gboolean playing;
|
|
|
+ } GtkPlay;
|
|
|
+
|
|
|
+ /* Compat stubs */
|
|
|
+@@ -118,12 +119,13 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play)
|
|
|
+ {
|
|
|
+ GtkWidget *image;
|
|
|
+
|
|
|
+- if (gst_player_is_playing (play->player)) {
|
|
|
++ if (play->playing) {
|
|
|
+ gst_player_pause (play->player);
|
|
|
+ image =
|
|
|
+ gtk_image_new_from_icon_name ("media-playback-start",
|
|
|
+ GTK_ICON_SIZE_BUTTON);
|
|
|
+ gtk_button_set_image (GTK_BUTTON (play->play_pause_button), image);
|
|
|
++ play->playing = FALSE;
|
|
|
+ } else {
|
|
|
+ gchar *title;
|
|
|
+
|
|
|
+@@ -136,6 +138,7 @@ play_pause_clicked_cb (GtkButton * button, GtkPlay * play)
|
|
|
+ title = gst_player_get_uri (play->player);
|
|
|
+ set_title (play, title);
|
|
|
+ g_free (title);
|
|
|
++ play->playing = TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+@@ -335,7 +338,7 @@ video_dimensions_changed_cb (GstPlayer * unused, gint width, gint height,
|
|
|
+ static void
|
|
|
+ eos_cb (GstPlayer * unused, GtkPlay * play)
|
|
|
+ {
|
|
|
+- if (gst_player_is_playing (play->player)) {
|
|
|
++ if (play->playing) {
|
|
|
+ GList *next = NULL;
|
|
|
+ gchar *uri;
|
|
|
+
|
|
|
+@@ -452,6 +455,7 @@ main (gint argc, gchar ** argv)
|
|
|
+ }
|
|
|
+
|
|
|
+ play.player = gst_player_new ();
|
|
|
++ play.playing = TRUE;
|
|
|
+
|
|
|
+ g_object_set (play.player, "dispatch-to-main-context", TRUE, NULL);
|
|
|
+
|
|
|
+diff --git a/lib/gst/player/gstplayer.c b/lib/gst/player/gstplayer.c
|
|
|
+index 069b284..78e7ba1 100644
|
|
|
+--- a/lib/gst/player/gstplayer.c
|
|
|
++++ b/lib/gst/player/gstplayer.c
|
|
|
+@@ -1422,18 +1422,6 @@ gst_player_set_uri (GstPlayer * self, const gchar * val)
|
|
|
+ g_object_set (self, "uri", val, NULL);
|
|
|
+ }
|
|
|
+
|
|
|
+-gboolean
|
|
|
+-gst_player_is_playing (GstPlayer * self)
|
|
|
+-{
|
|
|
+- gboolean val;
|
|
|
+-
|
|
|
+- g_return_val_if_fail (GST_IS_PLAYER (self), FALSE);
|
|
|
+-
|
|
|
+- g_object_get (self, "is-playing", &val, NULL);
|
|
|
+-
|
|
|
+- return val;
|
|
|
+-}
|
|
|
+-
|
|
|
+ GstClockTime
|
|
|
+ gst_player_get_position (GstPlayer * self)
|
|
|
+ {
|
|
|
+diff --git a/lib/gst/player/gstplayer.h b/lib/gst/player/gstplayer.h
|
|
|
+index 6933dd7..35fb5bb 100644
|
|
|
+--- a/lib/gst/player/gstplayer.h
|
|
|
++++ b/lib/gst/player/gstplayer.h
|
|
|
+@@ -93,8 +93,6 @@ gchar * gst_player_get_uri (GstPlayer * player);
|
|
|
+ void gst_player_set_uri (GstPlayer * player,
|
|
|
+ const gchar * uri);
|
|
|
+
|
|
|
+-gboolean gst_player_is_playing (GstPlayer * player);
|
|
|
+-
|
|
|
+ GstClockTime gst_player_get_position (GstPlayer * player);
|
|
|
+ GstClockTime gst_player_get_duration (GstPlayer * player);
|
|
|
+
|
|
|
+--
|
|
|
+2.1.4
|
|
|
+
|