[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