
Data Structures | |
| struct | demux_sys_t |
Functions | |
| static int | Control (demux_t *p_demux, int i_query, va_list args) |
| dummy function for demux callback interface | |
| static int | Demux (demux_t *p_demux) |
| demuxer function for XSPF parsing | |
| int | Import_xspf (vlc_object_t *p_this) |
| XSPF submodule initialization function. | |
| void | Close_xspf (vlc_object_t *p_this) |
| static bool | parse_playlist_node (demux_t *p_demux, input_item_node_t *p_input_node, xml_reader_t *p_xml_reader, const char *psz_element) |
| parse the root node of a XSPF playlist | |
| static bool | parse_tracklist_node (demux_t *p_demux, input_item_node_t *p_input_node, xml_reader_t *p_xml_reader, const char *psz_element) |
| parses the tracklist node which only may contain <track>s | |
| static bool | parse_track_node (demux_t *p_demux, input_item_node_t *p_input_node, xml_reader_t *p_xml_reader, const char *psz_element) |
| parse one track element | |
| static bool | set_item_info (input_item_t *p_input, const char *psz_name, char *psz_value) |
| handles the supported <track> sub-elements | |
| static bool | set_option (input_item_t *p_input, const char *psz_name, char *psz_value) |
| handles the <vlc:option> elements | |
| static bool | parse_extension_node (demux_t *p_demux, input_item_node_t *p_input_node, xml_reader_t *p_xml_reader, const char *psz_element) |
| parse the extension node of a XSPF playlist | |
| static bool | parse_extitem_node (demux_t *p_demux, input_item_node_t *p_input_node, xml_reader_t *p_xml_reader, const char *psz_element) |
| parse the extension item node of a XSPF playlist | |
| static bool | skip_element (demux_t *p_demux, input_item_node_t *p_input_node, xml_reader_t *p_xml_reader, const char *psz_element) |
| skips complex element content that we can't manage | |
| void Close_xspf | ( | vlc_object_t * | p_this | ) |
References i, demux_sys_t::i_tracklist_entries, demux_t::p_sys, p_sys, demux_sys_t::pp_tracklist, demux_sys_t::psz_base, and vlc_gc_decref.
| static int Control | ( | demux_t * | p_demux, | |
| int | i_query, | |||
| va_list | args | |||
| ) | [static] |
| int Demux | ( | demux_t * | p_demux | ) | [static] |
demuxer function for XSPF parsing
References GetCurrentItem(), i, demux_sys_t::i_track_id, demux_sys_t::i_tracklist_entries, input_item_node_AppendItem(), input_item_node_Create(), input_item_node_PostAndDelete(), msg_Err, demux_t::p_sys, parse_playlist_node(), demux_sys_t::pp_tracklist, demux_sys_t::psz_base, psz_name, demux_t::s, vlc_gc_decref, xml_Create, xml_Delete(), XML_READER_STARTELEM, xml_ReaderCreate, xml_ReaderDelete, xml_ReaderName, xml_ReaderNodeType, and xml_ReaderRead.
| int Import_xspf | ( | vlc_object_t * | p_this | ) |
XSPF submodule initialization function.
References DEMUX_BY_EXTENSION_OR_FORCED_MSG, and VLC_SUCCESS.
| static bool parse_extension_node | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element | |||
| ) | [static] |
parse the extension node of a XSPF playlist
References xml_elem_hnd_t::cmplx, COMPLEX_CONTENT, FREE_ATT, FREE_NAME, FREE_VALUE, input_item_NewWithType(), input_item_node_AppendItem(), ITEM_TYPE_DIRECTORY, msg_Dbg, msg_Err, msg_Warn, xml_elem_hnd_t::name, parse_extitem_node(), xml_elem_hnd_t::pf_handler, psz_name, psz_value, resolve_xml_special_chars(), set_option(), SIMPLE_CONTENT, xml_elem_hnd_t::smpl, xml_elem_hnd_t::type, UNKNOWN_CONTENT, vlc_gc_decref, VLC_OBJECT, VLC_SUCCESS, XML_READER_ENDELEM, XML_READER_NONE, XML_READER_STARTELEM, XML_READER_TEXT, xml_ReaderName, xml_ReaderNextAttr, xml_ReaderNodeType, xml_ReaderRead, and xml_ReaderValue.
Referenced by parse_playlist_node(), and parse_track_node().
| static bool parse_extitem_node | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element | |||
| ) | [static] |
parse the extension item node of a XSPF playlist
References input_item_node_AppendItem(), msg_Err, msg_Warn, psz_name, psz_value, vlc_gc_decref, VLC_SUCCESS, VLC_UNUSED, xml_ReaderName, xml_ReaderNextAttr, xml_ReaderRead, and xml_ReaderValue.
Referenced by parse_extension_node().
| static bool parse_playlist_node | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element | |||
| ) | [static] |
parse the root node of a XSPF playlist
| p_demux | demuxer instance | |
| p_input_item | current input item | |
| p_xml_reader | xml reader instance | |
| psz_element | name of element to parse |
References xml_elem_hnd_t::cmplx, COMPLEX_CONTENT, FREE_ATT, FREE_NAME, FREE_VALUE, msg_Err, msg_Warn, xml_elem_hnd_t::name, parse_extension_node(), parse_tracklist_node(), xml_elem_hnd_t::pf_handler, psz_name, psz_value, set_item_info(), SIMPLE_CONTENT, skip_element(), xml_elem_hnd_t::smpl, strdup(), xml_elem_hnd_t::type, UNKNOWN_CONTENT, VLC_SUCCESS, XML_READER_ENDELEM, XML_READER_NONE, XML_READER_STARTELEM, XML_READER_TEXT, xml_ReaderName, xml_ReaderNextAttr, xml_ReaderNodeType, xml_ReaderRead, and xml_ReaderValue.
Referenced by Demux().
| static bool parse_track_node | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element | |||
| ) | [static] |
parse one track element
| COMPLEX_INTERFACE |
References asprintf(), xml_elem_hnd_t::cmplx, COMPLEX_CONTENT, FREE_ATT, FREE_NAME, FREE_VALUE, demux_sys_t::i_track_id, demux_sys_t::i_tracklist_entries, input_item_CopyOptions(), input_item_GetURI(), input_item_New, input_item_node_AppendNode(), input_item_node_Create(), input_item_SetURI(), msg_Err, xml_elem_hnd_t::name, p_sys, parse_extension_node(), xml_elem_hnd_t::pf_handler, demux_sys_t::pp_tracklist, demux_sys_t::psz_base, psz_name, psz_value, set_item_info(), SIMPLE_CONTENT, xml_elem_hnd_t::smpl, xml_elem_hnd_t::type, UNKNOWN_CONTENT, vlc_gc_decref, XML_READER_ENDELEM, XML_READER_NONE, XML_READER_STARTELEM, XML_READER_TEXT, xml_ReaderName, xml_ReaderNodeType, xml_ReaderRead, and xml_ReaderValue.
Referenced by parse_tracklist_node().
| static bool parse_tracklist_node | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element | |||
| ) | [static] |
parses the tracklist node which only may contain <track>s
References msg_Dbg, msg_Err, parse_track_node(), psz_name, VLC_UNUSED, XML_READER_ENDELEM, XML_READER_STARTELEM, xml_ReaderName, xml_ReaderNodeType, and xml_ReaderRead.
Referenced by parse_playlist_node().
| static bool set_item_info | ( | input_item_t * | p_input, | |
| const char * | psz_name, | |||
| char * | psz_value | |||
| ) | [static] |
handles the supported <track> sub-elements
References input_item_SetAlbum(), input_item_SetArtist(), input_item_SetArtURL, input_item_SetDescription(), input_item_SetDuration(), input_item_SetTitle(), input_item_SetTrackNum, psz_name, psz_value, and resolve_xml_special_chars().
Referenced by parse_playlist_node(), and parse_track_node().
| static bool set_option | ( | input_item_t * | p_input, | |
| const char * | psz_name, | |||
| char * | psz_value | |||
| ) | [static] |
handles the <vlc:option> elements
References input_item_AddOption(), psz_name, psz_value, and resolve_xml_special_chars().
Referenced by parse_extension_node().
| static bool skip_element | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element | |||
| ) | [static] |
skips complex element content that we can't manage
References VLC_UNUSED, XML_READER_ENDELEM, xml_ReaderName, xml_ReaderNodeType, and xml_ReaderRead.
1.5.6