From b5336dc92cc2906c7da7d0138009de857d34f7a6 Mon Sep 17 00:00:00 2001 From: Bastien Nocera Date: Wed, 7 May 2008 17:14:24 +0000 Subject: Port playlist writers to GIO, removed totem_pl_parser_resolve_url and 2008-05-07 Bastien Nocera * 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 --- plparse/totem-pl-parser-smil.c | 25 ++++++++++--------------- 1 file changed, 10 insertions(+), 15 deletions(-) (limited to 'plparse/totem-pl-parser-smil.c') 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; } -- cgit v1.2.1