diff options
author | Bastien Nocera <hadess@hadess.net> | 2008-05-07 17:14:24 +0000 |
---|---|---|
committer | Bastien Nocera <hadess@src.gnome.org> | 2008-05-07 17:14:24 +0000 |
commit | b5336dc92cc2906c7da7d0138009de857d34f7a6 (patch) | |
tree | b52e900d969c6437f33bfe265174a61baf593792 /plparse/totem-pl-parser-smil.c | |
parent | 3a796d57c5c011c51815e377d1d694826809e84b (diff) | |
download | totem-pl-parser-b5336dc92cc2906c7da7d0138009de857d34f7a6.tar.gz |
Port playlist writers to GIO, removed totem_pl_parser_resolve_url and
2008-05-07 Bastien Nocera <hadess@hadess.net>
* plparse/plparser.symbols:
* plparse/test-parser.c (main):
* plparse/totem-pl-parser-lines.c (totem_pl_parser_url_to_dos),
(totem_pl_parser_write_m3u), (totem_pl_parser_add_m3u):
* plparse/totem-pl-parser-lines.h:
* plparse/totem-pl-parser-pla.c (totem_pl_parser_write_pla),
(totem_pl_parser_add_pla):
* plparse/totem-pl-parser-pla.h:
* plparse/totem-pl-parser-pls.c (totem_pl_parser_write_pls),
(totem_pl_parser_add_pls_with_contents), (totem_pl_parser_add_pls):
* plparse/totem-pl-parser-pls.h:
* plparse/totem-pl-parser-podcast.c (totem_pl_parser_is_itms_feed):
* plparse/totem-pl-parser-private.h:
* plparse/totem-pl-parser-smil.c (parse_smil_entry),
(parse_smil_entries), (totem_pl_parser_add_smil_with_doc):
* plparse/totem-pl-parser-wm.c (parse_asx_entry),
(parse_asx_entryref), (parse_asx_entries),
(totem_pl_parser_add_asx):
* plparse/totem-pl-parser-xspf.c (totem_pl_parser_parse_xml_file),
(totem_pl_parser_write_xspf), (parse_xspf_track),
(parse_xspf_trackList), (parse_xspf_entries),
(totem_pl_parser_add_xspf):
* plparse/totem-pl-parser-xspf.h:
* plparse/totem-pl-parser.c (totem_pl_parser_write_with_title),
(totem_pl_parser_add_url_valist):
* plparse/totem-pl-parser.h: Port playlist writers to GIO, removed
totem_pl_parser_resolve_url and totem_pl_parser_relative, as those
should be replaced by their GIO equivalents, and had completely broken
semantics
Doesn't compile, file a bug and I'll kick your arse
svn path=/trunk/; revision=114
Diffstat (limited to 'plparse/totem-pl-parser-smil.c')
-rw-r--r-- | plparse/totem-pl-parser-smil.c | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/plparse/totem-pl-parser-smil.c b/plparse/totem-pl-parser-smil.c index 9e827ab..03feb66 100644 --- a/plparse/totem-pl-parser-smil.c +++ b/plparse/totem-pl-parser-smil.c @@ -38,7 +38,7 @@ #ifndef TOTEM_PL_PARSER_MINI static TotemPlParserResult parse_smil_entry (TotemPlParser *parser, - char *base, + GFile *base_file, xml_node_t *doc, xml_node_t *parent, const char *parent_title) @@ -71,11 +71,11 @@ parse_smil_entry (TotemPlParser *parser, copyright = xml_parser_get_property (node, "copyright"); if (url != NULL) { - char *fullpath; + GFile *resolved; - fullpath = totem_pl_parser_resolve_url (base, url); + resolved = g_file_resolve_relative_path (base_file, url); totem_pl_parser_add_url (parser, - TOTEM_PL_PARSER_FIELD_URL, fullpath, + TOTEM_PL_PARSER_FIELD_FILE, resolved, TOTEM_PL_PARSER_FIELD_TITLE, title ? title : parent_title, TOTEM_PL_PARSER_FIELD_ABSTRACT, abstract, TOTEM_PL_PARSER_FIELD_COPYRIGHT, copyright, @@ -83,12 +83,12 @@ parse_smil_entry (TotemPlParser *parser, TOTEM_PL_PARSER_FIELD_STARTTIME, clip_begin, TOTEM_PL_PARSER_FIELD_DURATION, dur, NULL); - g_free (fullpath); + g_object_unref (resolved); retval = TOTEM_PL_PARSER_RESULT_SUCCESS; } } else { if (parse_smil_entry (parser, - base, doc, node, parent_title) != FALSE) + base_file, doc, node, parent_title) != FALSE) retval = TOTEM_PL_PARSER_RESULT_SUCCESS; } } @@ -120,7 +120,7 @@ parse_smil_head (TotemPlParser *parser, xml_node_t *doc, xml_node_t *parent) } static TotemPlParserResult -parse_smil_entries (TotemPlParser *parser, char *base, xml_node_t *doc) +parse_smil_entries (TotemPlParser *parser, GFile *base_file, xml_node_t *doc) { TotemPlParserResult retval = TOTEM_PL_PARSER_RESULT_ERROR; const char *title; @@ -133,7 +133,7 @@ parse_smil_entries (TotemPlParser *parser, char *base, xml_node_t *doc) continue; if (g_ascii_strcasecmp (node->name, "body") == 0) { - if (parse_smil_entry (parser, base, + if (parse_smil_entry (parser, base_file, doc, node, title) != FALSE) { retval = TOTEM_PL_PARSER_RESULT_SUCCESS; } @@ -148,10 +148,9 @@ parse_smil_entries (TotemPlParser *parser, char *base, xml_node_t *doc) static TotemPlParserResult totem_pl_parser_add_smil_with_doc (TotemPlParser *parser, GFile *file, - GFile *_base_file, xml_node_t *doc) + GFile *base_file, xml_node_t *doc) { TotemPlParserResult retval = TOTEM_PL_PARSER_RESULT_UNHANDLED; - char *base; /* If the document has no root, or no name */ if(doc->name == NULL @@ -159,11 +158,7 @@ totem_pl_parser_add_smil_with_doc (TotemPlParser *parser, GFile *file, return TOTEM_PL_PARSER_RESULT_ERROR; } - base = totem_pl_parser_base_url (file); - - retval = parse_smil_entries (parser, base, doc); - - g_free (base); + retval = parse_smil_entries (parser, base_file, doc); return retval; } |