summaryrefslogtreecommitdiff
path: root/plparse/totem-pl-parser-smil.c
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2008-05-07 17:14:24 +0000
committerBastien Nocera <hadess@src.gnome.org>2008-05-07 17:14:24 +0000
commitb5336dc92cc2906c7da7d0138009de857d34f7a6 (patch)
treeb52e900d969c6437f33bfe265174a61baf593792 /plparse/totem-pl-parser-smil.c
parent3a796d57c5c011c51815e377d1d694826809e84b (diff)
downloadtotem-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.c25
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;
}