[gtk/media-stream-name-collision] mediastream: Rename apis to avoid name collisions




commit 6e26cf1b0822a0885258a4ef7d56d2aba60a3c82
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jun 14 07:25:06 2021 -0400

    mediastream: Rename apis to avoid name collisions
    
    Some bindings can't handle the coexistence of
    GtkMediaStream:prepared and gtk_media_stream_prepared.
    Help them out by renaming the function to
    gtk_media_stream_set_prepared, and rename
    gtk_media_stream_unprepared as well, to match.
    
    Also rename gtk_media_stream_ended to
    gtk_media_stream_set_ended, for the same reason.
    
    The existing entry points still exist, deprecated
    and marked as non-introspectable.
    
    Update all internal uses.
    
    Fixes: #4023

 demos/gtk-demo/paintable_mediastream.c | 12 ++---
 gtk/gtkmediafile.c                     |  2 +-
 gtk/gtkmediastream.c                   | 81 +++++++++++++++++++++++++++++-----
 gtk/gtkmediastream.h                   | 17 +++++--
 modules/media/gtkffmediafile.c         | 14 +++---
 modules/media/gtkgstmediafile.c        | 22 ++++-----
 6 files changed, 110 insertions(+), 38 deletions(-)
---
diff --git a/demos/gtk-demo/paintable_mediastream.c b/demos/gtk-demo/paintable_mediastream.c
index ea1b374b76..c142cdd6c0 100644
--- a/demos/gtk-demo/paintable_mediastream.c
+++ b/demos/gtk-demo/paintable_mediastream.c
@@ -150,7 +150,7 @@ gtk_nuclear_media_stream_step (gpointer data)
    * call our pause function to pause the stream.
    */
   if (nuclear->progress >= DURATION)
-    gtk_media_stream_ended (GTK_MEDIA_STREAM (nuclear));
+    gtk_media_stream_set_ended (GTK_MEDIA_STREAM (nuclear));
 
   /* The timeout function is removed by the pause function,
    * so we can just always return this value.
@@ -267,11 +267,11 @@ gtk_nuclear_media_stream_init (GtkNuclearMediaStream *nuclear)
    * However, media streams need to tell GTK once they are initialized,
    * so we do that here.
    */
-  gtk_media_stream_prepared (GTK_MEDIA_STREAM (nuclear),
-                             FALSE,
-                             TRUE,
-                             TRUE,
-                             DURATION);
+  gtk_media_stream_set_prepared (GTK_MEDIA_STREAM (nuclear),
+                                 FALSE,
+                                 TRUE,
+                                 TRUE,
+                                 DURATION);
 }
 
 /* And finally, we add the simple constructor we declared in the header. */
diff --git a/gtk/gtkmediafile.c b/gtk/gtkmediafile.c
index 96e8c84731..53b4e5b3fc 100644
--- a/gtk/gtkmediafile.c
+++ b/gtk/gtkmediafile.c
@@ -72,7 +72,7 @@ gtk_media_file_default_open (GtkMediaFile *self)
 static void
 gtk_media_file_default_close (GtkMediaFile *self)
 {
-  gtk_media_stream_unprepared (GTK_MEDIA_STREAM (self));
+  gtk_media_stream_unset_prepared (GTK_MEDIA_STREAM (self));
 }
 
 static void
diff --git a/gtk/gtkmediastream.c b/gtk/gtkmediastream.c
index 1b3d1c1115..8e33814d1e 100644
--- a/gtk/gtkmediastream.c
+++ b/gtk/gtkmediastream.c
@@ -1012,7 +1012,7 @@ gtk_media_stream_unrealize (GtkMediaStream *self,
 }
 
 /**
- * gtk_media_stream_prepared:
+ * gtk_media_stream_set_prepared:
  * @self: a `GtkMediaStream`
  * @has_audio: %TRUE if the stream should advertise audio support
  * @has_video: %TRUE if the stream should advertise video support
@@ -1029,13 +1029,15 @@ gtk_media_stream_unrealize (GtkMediaStream *self,
  *
  * This function may not be called again until the stream has been
  * reset via [method@Gtk.MediaStream.unprepared].
+ *
+ * Since: 4.4
  */
 void
-gtk_media_stream_prepared (GtkMediaStream *self,
-                           gboolean        has_audio,
-                           gboolean        has_video,
-                           gboolean        seekable,
-                           gint64          duration)
+gtk_media_stream_set_prepared (GtkMediaStream *self,
+                               gboolean        has_audio,
+                               gboolean        has_video,
+                               gboolean        seekable,
+                               gint64          duration)
 {
   GtkMediaStreamPrivate *priv = gtk_media_stream_get_instance_private (self);
 
@@ -1072,7 +1074,7 @@ gtk_media_stream_prepared (GtkMediaStream *self,
 }
 
 /**
- * gtk_media_stream_unprepared:
+ * gtk_media_stream_unset_prepared:
  * @self: a `GtkMediaStream`
  *
  * Resets a given media stream implementation.
@@ -1080,9 +1082,11 @@ gtk_media_stream_prepared (GtkMediaStream *self,
  * [method@Gtk.MediaStream.prepared] can then be called again.
  *
  * This function will also reset any error state the stream was in.
+ *
+ * Since: 4.4
  */
 void
-gtk_media_stream_unprepared (GtkMediaStream *self)
+gtk_media_stream_unset_prepared (GtkMediaStream *self)
 {
   GtkMediaStreamPrivate *priv = gtk_media_stream_get_instance_private (self);
 
@@ -1135,6 +1139,42 @@ gtk_media_stream_unprepared (GtkMediaStream *self)
   g_object_thaw_notify (G_OBJECT (self));
 }
 
+/**
+ * gtk_media_stream_prepared: (skip)
+ * @self: a `GtkMediaStream`
+ * @has_audio: %TRUE if the stream should advertise audio support
+ * @has_video: %TRUE if the stream should advertise video support
+ * @seekable: %TRUE if the stream should advertise seekability
+ * @duration: The duration of the stream or 0 if unknown
+ *
+ * Same as gtk_media_stream_set_prepared().
+ *
+ * Deprecated: 4.4: Use [method@Gtk.MediaStream.set_prepared] instead.
+ */
+void
+gtk_media_stream_prepared (GtkMediaStream *self,
+                           gboolean        has_audio,
+                           gboolean        has_video,
+                           gboolean        seekable,
+                           gint64          duration)
+{
+  gtk_media_stream_set_prepared (self, has_audio, has_video, seekable, duration);
+}
+
+/**
+ * gtk_media_stream_unprepared: (skip)
+ * @self: a `GtkMediaStream`
+ *
+ * Same as gtk_media_stream_unset_prepared().
+ *
+ * Deprecated: 4.4: Use [method@Gtk.MediaStream.unset_prepared] instead.
+ */
+void
+gtk_media_stream_unprepared (GtkMediaStream *self)
+{
+  gtk_media_stream_unset_prepared (self);
+}
+
 /**
  * gtk_media_stream_gerror:
  * @self: a `GtkMediaStream`
@@ -1297,7 +1337,7 @@ gtk_media_stream_update (GtkMediaStream *self,
 }
 
 /**
- * gtk_media_stream_ended:
+ * gtk_media_stream_set_ended:
  * @self: a `GtkMediaStream`
  *
  * Pauses the media stream and marks it as ended.
@@ -1306,9 +1346,11 @@ gtk_media_stream_update (GtkMediaStream *self,
  * may still happen.
  *
  * The media stream must be prepared when this function is called.
+ *
+ * Since: 4.4
  */
 void
-gtk_media_stream_ended (GtkMediaStream *self)
+gtk_media_stream_set_ended (GtkMediaStream *self)
 {
   GtkMediaStreamPrivate *priv = gtk_media_stream_get_instance_private (self);
 
@@ -1326,6 +1368,25 @@ gtk_media_stream_ended (GtkMediaStream *self)
   g_object_thaw_notify (G_OBJECT (self));
 }
 
+/**
+ * gtk_media_stream_ended: (skip)
+ * @self: a `GtkMediaStream`
+ *
+ * Pauses the media stream and marks it as ended.
+ *
+ * This is a hint only, calls to GtkMediaStream.play()
+ * may still happen.
+ *
+ * The media stream must be prepared when this function is called.
+ *
+ * Deprecated: 4.4: Use [method@Gtk.MediaStream.set_ended] instead
+ */
+void
+gtk_media_stream_ended (GtkMediaStream *self)
+{
+  gtk_media_stream_set_ended (self);
+}
+
 /**
  * gtk_media_stream_seek_success:
  * @self: a `GtkMediaStream`
diff --git a/gtk/gtkmediastream.h b/gtk/gtkmediastream.h
index 8c5a0c47c8..ed892ccccf 100644
--- a/gtk/gtkmediastream.h
+++ b/gtk/gtkmediastream.h
@@ -116,20 +116,31 @@ void                    gtk_media_stream_unrealize              (GtkMediaStream
                                                                  GdkSurface      *surface);
 
 /* for implementations only */
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_4_FOR(gtk_media_stream_set_prepared)
 void                    gtk_media_stream_prepared               (GtkMediaStream *self,
                                                                  gboolean        has_audio,
                                                                  gboolean        has_video,
                                                                  gboolean        seekable,
                                                                  gint64          duration);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_4_FOR(gtk_media_stream_unset_prepared)
 void                    gtk_media_stream_unprepared             (GtkMediaStream *self);
 
+GDK_AVAILABLE_IN_4_4
+void                    gtk_media_stream_set_prepared           (GtkMediaStream *self,
+                                                                 gboolean        has_audio,
+                                                                 gboolean        has_video,
+                                                                 gboolean        seekable,
+                                                                 gint64          duration);
+GDK_AVAILABLE_IN_4_4
+void                    gtk_media_stream_unset_prepared         (GtkMediaStream *self);
+
 GDK_AVAILABLE_IN_ALL
 void                    gtk_media_stream_update                 (GtkMediaStream *self,
                                                                  gint64          timestamp);
-GDK_AVAILABLE_IN_ALL
+GDK_DEPRECATED_IN_4_4_FOR(gtk_media_stream_set_ended)
 void                    gtk_media_stream_ended                  (GtkMediaStream *self);
+GDK_AVAILABLE_IN_4_4
+void                    gtk_media_stream_set_ended              (GtkMediaStream *self);
 GDK_AVAILABLE_IN_ALL
 void                    gtk_media_stream_seek_success           (GtkMediaStream *self);
 GDK_AVAILABLE_IN_ALL
diff --git a/modules/media/gtkffmediafile.c b/modules/media/gtkffmediafile.c
index 9df9e6556f..b6b703db87 100644
--- a/modules/media/gtkffmediafile.c
+++ b/modules/media/gtkffmediafile.c
@@ -553,13 +553,13 @@ gtk_ff_media_file_open (GtkMediaFile *file)
       return;
     }
 
-  gtk_media_stream_prepared (GTK_MEDIA_STREAM (video),
-                             FALSE,
-                             video->codec_ctx != NULL,
-                             TRUE,
-                             video->format_ctx->duration != AV_NOPTS_VALUE
-                             ? av_rescale (video->format_ctx->duration, G_USEC_PER_SEC, AV_TIME_BASE)
-                             : 0);
+  gtk_media_stream_set_prepared (GTK_MEDIA_STREAM (video),
+                                 FALSE,
+                                 video->codec_ctx != NULL,
+                                 TRUE,
+                                 video->format_ctx->duration != AV_NOPTS_VALUE
+                                 ? av_rescale (video->format_ctx->duration, G_USEC_PER_SEC, AV_TIME_BASE)
+                                 : 0);
 
   gdk_paintable_invalidate_size (GDK_PAINTABLE (video));
 
diff --git a/modules/media/gtkgstmediafile.c b/modules/media/gtkgstmediafile.c
index d64fe660b5..d1ebab1506 100644
--- a/modules/media/gtkgstmediafile.c
+++ b/modules/media/gtkgstmediafile.c
@@ -137,11 +137,11 @@ gtk_gst_media_file_ensure_prepared (GtkGstMediaFile *self)
   media_info = gst_player_get_media_info (self->player);
   if (media_info)
     {
-      gtk_media_stream_prepared (GTK_MEDIA_STREAM (self),
-                                 gst_player_media_info_get_audio_streams (media_info) != NULL,
-                                 gst_player_media_info_get_video_streams (media_info) != NULL,
-                                 gst_player_media_info_is_seekable (media_info),
-                                 FROM_GST_TIME (gst_player_media_info_get_duration (media_info)));
+      gtk_media_stream_set_prepared (GTK_MEDIA_STREAM (self),
+                                     gst_player_media_info_get_audio_streams (media_info) != NULL,
+                                     gst_player_media_info_get_video_streams (media_info) != NULL,
+                                     gst_player_media_info_is_seekable (media_info),
+                                     FROM_GST_TIME (gst_player_media_info_get_duration (media_info)));
 
       g_object_unref (media_info);
     }
@@ -152,11 +152,11 @@ gtk_gst_media_file_ensure_prepared (GtkGstMediaFile *self)
        *
        * Only for seeking we can't do a thing, because with 0 duration we can't seek anywhere.
        */
-      gtk_media_stream_prepared (GTK_MEDIA_STREAM (self),
-                                 TRUE,
-                                 TRUE,
-                                 FALSE,
-                                 0);
+      gtk_media_stream_set_prepared (GTK_MEDIA_STREAM (self),
+                                     TRUE,
+                                     TRUE,
+                                     FALSE,
+                                     0);
     }
 }
 
@@ -208,7 +208,7 @@ gtk_gst_media_file_end_of_stream_cb (GstPlayer       *player,
       return;
     }
 
-  gtk_media_stream_ended (GTK_MEDIA_STREAM (self));
+  gtk_media_stream_set_ended (GTK_MEDIA_STREAM (self));
 }
 
 static void


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