[Swfdec-commits] 2 commits - doc/swfdec-sections.txt swfdec-gtk/swfdec_gtk_loader.c swfdec-gtk/swfdec_gtk_socket.c swfdec/swfdec_file_loader.c swfdec/swfdec_loader_internal.h swfdec/swfdec_net_stream.c swfdec/swfdec_stream.c swfdec/swfdec_stream.h swfdec/swfdec_xml_socket.c test/swfdec_test_swfdec_socket.c

Benjamin Otte company at kemper.freedesktop.org
Wed Jul 16 12:03:39 PDT 2008


 doc/swfdec-sections.txt          |    5 +++--
 swfdec-gtk/swfdec_gtk_loader.c   |   17 ++++++-----------
 swfdec-gtk/swfdec_gtk_socket.c   |    2 +-
 swfdec/swfdec_file_loader.c      |    2 +-
 swfdec/swfdec_loader_internal.h  |    2 +-
 swfdec/swfdec_net_stream.c       |    2 +-
 swfdec/swfdec_stream.c           |   35 ++++++++++++++++++++++++++---------
 swfdec/swfdec_stream.h           |    3 ++-
 swfdec/swfdec_xml_socket.c       |    2 +-
 test/swfdec_test_swfdec_socket.c |    2 +-
 10 files changed, 43 insertions(+), 29 deletions(-)

New commits:
commit 8d07cd59f8ee68f55f7478c9be01d1f428e81cda
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jul 16 20:51:07 2008 +0200

    rename swfdec_stream_eof() to swfdec_stream_close() and add swfdec_stream_is_complete()

diff --git a/doc/swfdec-sections.txt b/doc/swfdec-sections.txt
index 4ca26f7..73d812c 100644
--- a/doc/swfdec-sections.txt
+++ b/doc/swfdec-sections.txt
@@ -21,10 +21,11 @@ SWFDEC_AUDIO_GET_CLASS
 <TITLE>SwfdecStream</TITLE>
 SwfdecStream
 SwfdecStreamClass
-swfdec_stream_open
 swfdec_stream_is_open
+swfdec_stream_is_complete
+swfdec_stream_open
 swfdec_stream_push
-swfdec_stream_eof
+swfdec_stream_close
 swfdec_stream_error
 swfdec_stream_errorv
 <SUBSECTION Standard>
diff --git a/swfdec-gtk/swfdec_gtk_loader.c b/swfdec-gtk/swfdec_gtk_loader.c
index a4214e7..ef95008 100644
--- a/swfdec-gtk/swfdec_gtk_loader.c
+++ b/swfdec-gtk/swfdec_gtk_loader.c
@@ -105,7 +105,7 @@ swfdec_gtk_loader_finished (SoupMessage *msg, gpointer loader)
 {
   if (SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
     swfdec_gtk_loader_ensure_open (loader);
-    swfdec_stream_eof (loader);
+    swfdec_stream_close (loader);
   } else {
     if (!SWFDEC_GTK_LOADER (loader)->opened) {
       char *real_uri = soup_uri_to_string (soup_message_get_uri (msg), FALSE);
@@ -182,17 +182,12 @@ swfdec_gtk_loader_close (SwfdecStream *stream)
 {
   SwfdecGtkLoader *gtk = SWFDEC_GTK_LOADER (stream);
 
-  if (gtk->message) {
-    gboolean eof;
-
-    g_object_get (stream, "eof", &eof, NULL);
-    if (!eof) {
-      SwfdecGtkLoaderClass *klass = SWFDEC_GTK_LOADER_GET_CLASS (gtk);
+  if (gtk->message && !swfdec_stream_is_complete (stream)) {
+    SwfdecGtkLoaderClass *klass = SWFDEC_GTK_LOADER_GET_CLASS (gtk);
 
-      soup_session_cancel_message (klass->session, gtk->message, SOUP_STATUS_CANCELLED);
-      g_object_unref (gtk->message);
-      gtk->message = NULL;
-    }
+    soup_session_cancel_message (klass->session, gtk->message, SOUP_STATUS_CANCELLED);
+    g_object_unref (gtk->message);
+    gtk->message = NULL;
   }
 }
 
diff --git a/swfdec-gtk/swfdec_gtk_socket.c b/swfdec-gtk/swfdec_gtk_socket.c
index 71ee191..275d5c4 100644
--- a/swfdec-gtk/swfdec_gtk_socket.c
+++ b/swfdec-gtk/swfdec_gtk_socket.c
@@ -82,7 +82,7 @@ swfdec_gtk_socket_do_connect (SoupSocket *sock, guint status, gpointer gtk)
 static void
 swfdec_gtk_socket_do_disconnect (SoupSocket *sock, SwfdecGtkSocket *gtk)
 {
-  swfdec_stream_eof (SWFDEC_STREAM (gtk));
+  swfdec_stream_close (SWFDEC_STREAM (gtk));
 }
 
 static void
diff --git a/swfdec/swfdec_file_loader.c b/swfdec/swfdec_file_loader.c
index c977bc8..acca0b7 100644
--- a/swfdec/swfdec_file_loader.c
+++ b/swfdec/swfdec_file_loader.c
@@ -79,7 +79,7 @@ swfdec_file_loader_load (SwfdecLoader *loader, SwfdecPlayer *player,
     swfdec_loader_set_size (loader, buffer->length);
     swfdec_stream_open (stream);
     swfdec_stream_push (stream, buffer);
-    swfdec_stream_eof (stream);
+    swfdec_stream_close (stream);
   }
   swfdec_url_free (url);
 }
diff --git a/swfdec/swfdec_stream.c b/swfdec/swfdec_stream.c
index 9e5df91..c44052f 100644
--- a/swfdec/swfdec_stream.c
+++ b/swfdec/swfdec_stream.c
@@ -87,9 +87,9 @@ struct _SwfdecStreamPrivate
 
 enum {
   PROP_0,
+  PROP_COMPLETE,
   PROP_ERROR,
   PROP_OPEN,
-  PROP_EOF
 };
 
 G_DEFINE_ABSTRACT_TYPE (SwfdecStream, swfdec_stream, G_TYPE_OBJECT)
@@ -107,7 +107,7 @@ swfdec_stream_get_property (GObject *object, guint param_id, GValue *value,
     case PROP_OPEN:
       g_value_set_boolean (value, stream->state == SWFDEC_STREAM_STATE_OPEN);
       break;
-    case PROP_EOF:
+    case PROP_COMPLETE:
       g_value_set_boolean (value, stream->state == SWFDEC_STREAM_STATE_CLOSED);
       break;
     default:
@@ -163,8 +163,8 @@ swfdec_stream_class_init (SwfdecStreamClass *klass)
   g_object_class_install_property (object_class, PROP_OPEN,
       g_param_spec_boolean ("open", "open", "TRUE while data is flowing",
 	  FALSE, G_PARAM_READABLE));
-  g_object_class_install_property (object_class, PROP_EOF,
-      g_param_spec_boolean ("eof", "eof", "TRUE when all data has been transmitted",
+  g_object_class_install_property (object_class, PROP_COMPLETE,
+      g_param_spec_boolean ("complete", "complete", "TRUE when all data has been transmitted",
 	  FALSE, G_PARAM_READABLE));
 }
 
@@ -413,6 +413,23 @@ swfdec_stream_is_open (SwfdecStream *stream)
 }
 
 /**
+ * swfdec_stream_is_complete:
+ * @stream: a #SwfdecStream
+ *
+ * Checks if all data has successfully been transmitted through the @stream 
+ * and it has been closed.
+ *
+ * Returns: %TRUE if the stream is completed, %FALSE otherwise.
+ **/
+gboolean
+swfdec_stream_is_complete (SwfdecStream *stream)
+{
+  g_return_val_if_fail (SWFDEC_IS_STREAM (stream), FALSE);
+
+  return stream->priv->state == SWFDEC_STREAM_STATE_CLOSED;
+}
+
+/**
  * swfdec_stream_push:
  * @stream: a #SwfdecStream
  * @buffer: new data to make available. The stream takes the reference
@@ -436,20 +453,20 @@ swfdec_stream_push (SwfdecStream *stream, SwfdecBuffer *buffer)
 }
 
 /**
- * swfdec_stream_eof:
+ * swfdec_stream_close:
  * @stream: a #SwfdecStream
  *
  * Indicates to @stream that no more data will follow. The stream must be open.
  **/
 void
-swfdec_stream_eof (SwfdecStream *stream)
+swfdec_stream_close (SwfdecStream *stream)
 {
   g_return_if_fail (SWFDEC_IS_STREAM (stream));
   g_return_if_fail (stream->priv->state == SWFDEC_STREAM_STATE_OPEN);
 
   stream->priv->state = SWFDEC_STREAM_STATE_CLOSED;
   g_object_notify (G_OBJECT (stream), "open");
-  g_object_notify (G_OBJECT (stream), "eof");
+  g_object_notify (G_OBJECT (stream), "complete");
   swfdec_stream_queue_processing (stream);
 }
 
diff --git a/swfdec/swfdec_stream.h b/swfdec/swfdec_stream.h
index fc61e57..343710e 100644
--- a/swfdec/swfdec_stream.h
+++ b/swfdec/swfdec_stream.h
@@ -60,9 +60,10 @@ GType		swfdec_stream_get_type		(void);
 
 void		swfdec_stream_open		(SwfdecStream *		stream);
 gboolean	swfdec_stream_is_open		(SwfdecStream *		stream);
+gboolean	swfdec_stream_is_complete	(SwfdecStream *		stream);
 void		swfdec_stream_push		(SwfdecStream *		stream,
 						 SwfdecBuffer *		buffer);
-void		swfdec_stream_eof		(SwfdecStream *		stream);
+void		swfdec_stream_close		(SwfdecStream *		stream);
 void		swfdec_stream_error		(SwfdecStream *		stream,
 						 const char *		error,
 						 ...) G_GNUC_PRINTF (2, 3);
diff --git a/test/swfdec_test_swfdec_socket.c b/test/swfdec_test_swfdec_socket.c
index 832d6bb..4cc887f 100644
--- a/test/swfdec_test_swfdec_socket.c
+++ b/test/swfdec_test_swfdec_socket.c
@@ -94,7 +94,7 @@ swfdec_test_swfdec_socket_finish (SwfdecTestPluginSocket *plugin, int error)
   if (error) {
     swfdec_stream_error (SWFDEC_STREAM (sock), "error %d", error);
   } else {
-    swfdec_stream_eof (SWFDEC_STREAM (sock));
+    swfdec_stream_close (SWFDEC_STREAM (sock));
   }
   g_object_unref (sock);
 }
commit c6b0f48029a18280f50525154fc38f3a731edcd8
Author: Benjamin Otte <otte at gnome.org>
Date:   Wed Jul 16 20:02:05 2008 +0200

    fix exit check in swfdec_stream_close()
    
    also rename it to swfdec_stream_ensure_closed()

diff --git a/swfdec/swfdec_loader_internal.h b/swfdec/swfdec_loader_internal.h
index 88d4dbf..421ac96 100644
--- a/swfdec/swfdec_loader_internal.h
+++ b/swfdec/swfdec_loader_internal.h
@@ -28,7 +28,7 @@ G_BEGIN_DECLS
 /* swfdec_stream.c */
 SwfdecBufferQueue *	swfdec_stream_get_queue		(SwfdecStream *		stream);
 const char *		swfdec_stream_describe		(SwfdecStream *		stream);
-void			swfdec_stream_close		(SwfdecStream *		stream);
+void			swfdec_stream_ensure_closed	(SwfdecStream *		stream);
 void			swfdec_stream_set_target	(SwfdecStream *		stream,
 							 SwfdecStreamTarget *	target);
 
diff --git a/swfdec/swfdec_net_stream.c b/swfdec/swfdec_net_stream.c
index 2970e43..ba0399e 100644
--- a/swfdec/swfdec_net_stream.c
+++ b/swfdec/swfdec_net_stream.c
@@ -647,7 +647,7 @@ swfdec_net_stream_set_loader (SwfdecNetStream *stream, SwfdecLoader *loader)
 
   if (stream->loader) {
     SwfdecStream *lstream = SWFDEC_STREAM (stream->loader);
-    swfdec_stream_close (lstream);
+    swfdec_stream_ensure_closed (lstream);
     swfdec_stream_set_target (lstream, NULL);
     g_object_unref (lstream);
   }
diff --git a/swfdec/swfdec_stream.c b/swfdec/swfdec_stream.c
index 40944c9..9e5df91 100644
--- a/swfdec/swfdec_stream.c
+++ b/swfdec/swfdec_stream.c
@@ -249,7 +249,7 @@ swfdec_stream_queue_processing (SwfdecStream *stream)
 }
 
 void
-swfdec_stream_close (SwfdecStream *stream)
+swfdec_stream_ensure_closed (SwfdecStream *stream)
 {
   SwfdecStreamPrivate *priv;
   SwfdecStreamClass *klass;
@@ -257,7 +257,7 @@ swfdec_stream_close (SwfdecStream *stream)
   g_return_if_fail (SWFDEC_IS_STREAM (stream));
 
   priv = stream->priv;
-  if (priv->state == SWFDEC_STREAM_STATE_ERROR &&
+  if (priv->state == SWFDEC_STREAM_STATE_ERROR ||
       priv->state == SWFDEC_STREAM_STATE_CLOSED)
     return;
 
diff --git a/swfdec/swfdec_xml_socket.c b/swfdec/swfdec_xml_socket.c
index b207fb6..a697346 100644
--- a/swfdec/swfdec_xml_socket.c
+++ b/swfdec/swfdec_xml_socket.c
@@ -330,5 +330,5 @@ swfdec_xml_socket_close (SwfdecAsContext *cx, SwfdecAsObject *object,
   xml = swfdec_xml_socket_get (object);
   if (xml == NULL)
     return;
-  swfdec_stream_close (SWFDEC_STREAM (xml->socket));
+  swfdec_stream_ensure_closed (SWFDEC_STREAM (xml->socket));
 }


More information about the Swfdec-commits mailing list