Benjamin Otte
2007-Aug-02 12:00 UTC
[Swfdec] 4 commits - libswfdec-gtk/swfdec_gtk_loader.c libswfdec/swfdec_file_loader.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader.h player/swfdec_slow_loader.c
libswfdec-gtk/swfdec_gtk_loader.c | 12 +++++++----- libswfdec/swfdec_file_loader.c | 19 ++++++++++--------- libswfdec/swfdec_loader.c | 30 +++++++++++++++++++++++------- libswfdec/swfdec_loader.h | 3 ++- player/swfdec_slow_loader.c | 2 +- 5 files changed, 43 insertions(+), 23 deletions(-) New commits: diff-tree 013119a40898e8308caba54d3921d3c477f239c8 (from f39100edec77edb7207f67dea4182f8c78ac0ed0) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 2 14:01:21 2007 +0200 pass the parent loader to SwfdecLoader->load() diff --git a/libswfdec-gtk/swfdec_gtk_loader.c b/libswfdec-gtk/swfdec_gtk_loader.c index d2ec771..bc3894a 100644 --- a/libswfdec-gtk/swfdec_gtk_loader.c +++ b/libswfdec-gtk/swfdec_gtk_loader.c @@ -116,14 +116,14 @@ swfdec_gtk_loader_finish (SoupMessage *m } static void -swfdec_gtk_loader_load (SwfdecLoader *loader, +swfdec_gtk_loader_load (SwfdecLoader *loader, SwfdecLoader *parent, SwfdecLoaderRequest request, const char *data, gsize data_len) { const SwfdecURL *url = swfdec_loader_get_url (loader); if (g_ascii_strcasecmp (swfdec_url_get_protocol (url), "http") != 0 && g_ascii_strcasecmp (swfdec_url_get_protocol (url), "https") != 0) { - SWFDEC_LOADER_CLASS (swfdec_gtk_loader_parent_class)->load (loader, request, data, data_len); + SWFDEC_LOADER_CLASS (swfdec_gtk_loader_parent_class)->load (loader, parent, request, data, data_len); } else { SwfdecGtkLoader *gtk = SWFDEC_GTK_LOADER (loader); SwfdecGtkLoaderClass *klass = SWFDEC_GTK_LOADER_GET_CLASS (gtk); @@ -179,6 +179,6 @@ swfdec_gtk_loader_new (const char *uri) url = swfdec_url_new (uri); loader = g_object_new (SWFDEC_TYPE_GTK_LOADER, "url", url, NULL); swfdec_url_free (url); - swfdec_gtk_loader_load (loader, SWFDEC_LOADER_REQUEST_DEFAULT, NULL, 0); + swfdec_gtk_loader_load (loader, NULL, SWFDEC_LOADER_REQUEST_DEFAULT, NULL, 0); return loader; } diff --git a/libswfdec/swfdec_file_loader.c b/libswfdec/swfdec_file_loader.c index 1eb29fc..9bbb635 100644 --- a/libswfdec/swfdec_file_loader.c +++ b/libswfdec/swfdec_file_loader.c @@ -39,7 +39,7 @@ G_DEFINE_TYPE (SwfdecFileLoader, swfdec_file_loader, SWFDEC_TYPE_LOADER) static void -swfdec_file_loader_load (SwfdecLoader *loader, SwfdecLoaderRequest request, +swfdec_file_loader_load (SwfdecLoader *loader, SwfdecLoader *parent, SwfdecLoaderRequest request, const char *data, gsize data_len) { const SwfdecURL *url; diff --git a/libswfdec/swfdec_loader.c b/libswfdec/swfdec_loader.c index 7a22b34..9193f0b 100644 --- a/libswfdec/swfdec_loader.c +++ b/libswfdec/swfdec_loader.c @@ -254,7 +254,7 @@ swfdec_loader_load (SwfdecLoader *loader url = swfdec_url_new_relative (loader->url, url_string); ret = g_object_new (G_OBJECT_CLASS_TYPE (klass), "url", url, NULL); swfdec_url_free (url); - klass->load (ret, request, data, data_len); + klass->load (ret, loader, request, data, data_len); return ret; } diff --git a/libswfdec/swfdec_loader.h b/libswfdec/swfdec_loader.h index 3f5db15..f0bd717 100644 --- a/libswfdec/swfdec_loader.h +++ b/libswfdec/swfdec_loader.h @@ -70,8 +70,9 @@ struct _SwfdecLoaderClass { GObjectClass object_class; - /* iitializes the loader. The URL will be set already. */ + /* initialize the loader. The URL will be set already. */ void (* load) (SwfdecLoader * loader, + SwfdecLoader * parent, SwfdecLoaderRequest request, const char * data, gsize data_len); diff --git a/player/swfdec_slow_loader.c b/player/swfdec_slow_loader.c index 603627a..4983052 100644 --- a/player/swfdec_slow_loader.c +++ b/player/swfdec_slow_loader.c @@ -111,7 +111,7 @@ swfdec_slow_loader_initialize (SwfdecSlo } static void -swfdec_slow_loader_load (SwfdecLoader *loader, +swfdec_slow_loader_load (SwfdecLoader *loader, SwfdecLoader *parent, SwfdecLoaderRequest request, const char *data, gsize data_len) { SwfdecSlowLoader *slow = SWFDEC_SLOW_LOADER (loader); diff-tree f39100edec77edb7207f67dea4182f8c78ac0ed0 (from bc7a31d8af9989ba3e42d9bd9431989f713cd847) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 2 13:32:20 2007 +0200 notify when URL changes diff --git a/libswfdec/swfdec_loader.c b/libswfdec/swfdec_loader.c index 4be84d1..7a22b34 100644 --- a/libswfdec/swfdec_loader.c +++ b/libswfdec/swfdec_loader.c @@ -353,6 +353,7 @@ swfdec_loader_open (SwfdecLoader *loader if (url) { swfdec_url_free (loader->url); loader->url = swfdec_url_new (url); + g_object_notify (G_OBJECT (loader), "url"); } if (loader->player) swfdec_player_add_external_action (loader->player, loader, swfdec_loader_perform_open, NULL); diff-tree bc7a31d8af9989ba3e42d9bd9431989f713cd847 (from 8e84cd0b6b34869ad07ff61bb44869ad201dea8c) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 2 13:31:29 2007 +0200 make url a construct-only property diff --git a/libswfdec-gtk/swfdec_gtk_loader.c b/libswfdec-gtk/swfdec_gtk_loader.c index fa2cf44..d2ec771 100644 --- a/libswfdec-gtk/swfdec_gtk_loader.c +++ b/libswfdec-gtk/swfdec_gtk_loader.c @@ -172,11 +172,13 @@ SwfdecLoader * swfdec_gtk_loader_new (const char *uri) { SwfdecLoader *loader; + SwfdecURL *url; g_return_val_if_fail (uri != NULL, NULL); - loader = g_object_new (SWFDEC_TYPE_GTK_LOADER, NULL); - loader->url = swfdec_url_new (uri); + url = swfdec_url_new (uri); + loader = g_object_new (SWFDEC_TYPE_GTK_LOADER, "url", url, NULL); + swfdec_url_free (url); swfdec_gtk_loader_load (loader, SWFDEC_LOADER_REQUEST_DEFAULT, NULL, 0); return loader; } diff --git a/libswfdec/swfdec_file_loader.c b/libswfdec/swfdec_file_loader.c index 54308c8..1eb29fc 100644 --- a/libswfdec/swfdec_file_loader.c +++ b/libswfdec/swfdec_file_loader.c @@ -49,7 +49,7 @@ swfdec_file_loader_load (SwfdecLoader *l url = swfdec_loader_get_url (loader); if (!g_str_equal (swfdec_url_get_protocol (url), "file")) { - swfdec_loader_error (loader, "Don't know how to handle other protocols than file"); + swfdec_loader_error (loader, "Don't know how to handle this protocol"); return; } if (swfdec_url_get_host (url)) { @@ -99,27 +99,28 @@ swfdec_file_loader_new (const char *file SwfdecBuffer *buf; SwfdecLoader *loader; GError *error = NULL; - char *url; + char *url_string; + SwfdecURL *url; g_return_val_if_fail (filename != NULL, NULL); buf = swfdec_buffer_new_from_file (filename, &error); if (g_path_is_absolute (filename)) { - url = g_strconcat ("file://", filename, NULL); + url_string = g_strconcat ("file://", filename, NULL); } else { char *abs, *cur; cur = g_get_current_dir (); abs = g_build_filename (cur, filename, NULL); g_free (cur); - url = g_strconcat ("file://", abs, NULL); + url_string = g_strconcat ("file://", abs, NULL); g_free (abs); } - loader = g_object_new (SWFDEC_TYPE_FILE_LOADER, NULL); - loader->url = swfdec_url_new (url); - g_assert (loader->url); - g_free (url); + url = swfdec_url_new (url_string); + g_free (url_string); + loader = g_object_new (SWFDEC_TYPE_FILE_LOADER, "url", url, NULL); + swfdec_url_free (url); if (buf == NULL) { swfdec_loader_error (loader, error->message); g_error_free (error); diff --git a/libswfdec/swfdec_loader.c b/libswfdec/swfdec_loader.c index ae4992d..4be84d1 100644 --- a/libswfdec/swfdec_loader.c +++ b/libswfdec/swfdec_loader.c @@ -89,7 +89,8 @@ enum { PROP_EOF, PROP_DATA_TYPE, PROP_SIZE, - PROP_LOADED + PROP_LOADED, + PROP_URL }; G_DEFINE_ABSTRACT_TYPE (SwfdecLoader, swfdec_loader, G_TYPE_OBJECT) @@ -116,6 +117,9 @@ swfdec_loader_get_property (GObject *obj case PROP_LOADED: g_value_set_ulong (value, swfdec_loader_get_loaded (loader)); break; + case PROP_URL: + g_value_set_boxed (value, loader->url); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); break; @@ -136,6 +140,13 @@ swfdec_loader_set_property (GObject *obj if (loader->size == 0 && g_value_get_ulong (value) > 0) swfdec_loader_set_size (loader, g_value_get_ulong (value)); break; + case PROP_URL: + loader->url = g_value_dup_boxed (value); + if (loader->url == NULL) { + g_warning ("must set a valid URL"); + loader->url = swfdec_url_new (""); + } + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec); break; @@ -180,6 +191,9 @@ swfdec_loader_class_init (SwfdecLoaderCl g_object_class_install_property (object_class, PROP_LOADED, g_param_spec_ulong ("loaded", "loaded", "bytes already loaded", 0, G_MAXULONG, 0, G_PARAM_READWRITE)); + g_object_class_install_property (object_class, PROP_URL, + g_param_spec_boxed ("url", "url", "URL for this file", + SWFDEC_TYPE_URL, G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); } static void @@ -224,11 +238,12 @@ swfdec_loader_perform_push (gpointer loa } SwfdecLoader * -swfdec_loader_load (SwfdecLoader *loader, const char *url, +swfdec_loader_load (SwfdecLoader *loader, const char *url_string, SwfdecLoaderRequest request, const char *data, gsize data_len) { SwfdecLoader *ret; SwfdecLoaderClass *klass; + SwfdecURL *url; g_return_val_if_fail (SWFDEC_IS_LOADER (loader), NULL); g_return_val_if_fail (url != NULL, NULL); @@ -236,9 +251,9 @@ swfdec_loader_load (SwfdecLoader *loader klass = SWFDEC_LOADER_GET_CLASS (loader); g_return_val_if_fail (klass->load != NULL, NULL); - ret = g_object_new (G_OBJECT_CLASS_TYPE (klass), NULL); - ret->url = swfdec_url_new_relative (loader->url, url); - g_assert (ret->url); + url = swfdec_url_new_relative (loader->url, url_string); + ret = g_object_new (G_OBJECT_CLASS_TYPE (klass), "url", url, NULL); + swfdec_url_free (url); klass->load (ret, request, data, data_len); return ret; } diff-tree 8e84cd0b6b34869ad07ff61bb44869ad201dea8c (from 91a700e70f6215216fa03f166f37ded1d7e62afd) Author: Benjamin Otte <otte at gnome.org> Date: Thu Aug 2 13:14:24 2007 +0200 use right property enum value diff --git a/libswfdec/swfdec_loader.c b/libswfdec/swfdec_loader.c index 9e8a9a5..ae4992d 100644 --- a/libswfdec/swfdec_loader.c +++ b/libswfdec/swfdec_loader.c @@ -177,7 +177,7 @@ swfdec_loader_class_init (SwfdecLoaderCl g_object_class_install_property (object_class, PROP_SIZE, g_param_spec_ulong ("size", "size", "amount of bytes in loader", 0, G_MAXULONG, 0, G_PARAM_READWRITE)); - g_object_class_install_property (object_class, PROP_SIZE, + g_object_class_install_property (object_class, PROP_LOADED, g_param_spec_ulong ("loaded", "loaded", "bytes already loaded", 0, G_MAXULONG, 0, G_PARAM_READWRITE)); }
Seemingly Similar Threads
- 10 commits - doc/swfdec-docs.sgml doc/swfdec-sections.txt libswfdec-gtk/swfdec_gtk_loader.c libswfdec/Makefile.am libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_buffer.c libswfdec/swfdec_debugger.c libswfdec/swfdec.h
- 15 commits - configure.ac doc/swfdec-sections.txt libswfdec-gtk/Makefile.am libswfdec-gtk/swfdec_gtk_loader.c libswfdec/Makefile.am libswfdec/swfdec_as_object.c libswfdec/swfdec_as_object.h libswfdec/swfdec_file_loader.c libswfdec/swfdec_file_loader.h
- 4 commits - libswfdec-gtk/swfdec_gtk_loader.c libswfdec/swfdec_as_context.c libswfdec/swfdec_as_frame.c libswfdec/swfdec_as_frame_internal.h libswfdec/swfdec_as_interpret.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader.h libswfdec/swfdec_load_object.c
- 5 commits - configure.ac doc/Makefile.am doc/swfdec-sections.txt libswfdec/swfdec_js_net_stream.c libswfdec/swfdec_loader.c libswfdec/swfdec_loader.h libswfdec/swfdec_net_stream.c
- 4 commits - configure.ac doc/Makefile.am doc/swfdec-docs.sgml doc/swfdec-sections.txt doc/swfdec.types libswfdec-gtk/Makefile.am libswfdec-gtk/swfdec-gtk.h libswfdec-gtk/swfdec_gtk_loader.c libswfdec-gtk/swfdec_gtk_loader.h