
Data Structures | |
| struct | demux_sys_t |
Defines | |
| #define | SAVE_INFO(name, value) if( !strcmp( psz_name, name ) ) { p_track->value = strdup( psz_value ); } |
| #define | SET_INFO(type, prop) if( p_track->prop ) {input_item_Set##type( p_input_item, p_track->prop );} |
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 iTML parsing | |
| int | Import_iTML (vlc_object_t *p_this) |
| iTML submodule initialization function | |
| void | Close_iTML (vlc_object_t *p_this) |
| static bool | parse_plist_node (demux_t *p_demux, input_item_node_t *p_input_node, track_elem_t *p_track, xml_reader_t *p_xml_reader, const char *psz_element, xml_elem_hnd_t *p_handlers) |
| parse the root node of the playlist | |
| static bool | parse_dict (demux_t *p_demux, input_item_node_t *p_input_node, track_elem_t *p_track, xml_reader_t *p_xml_reader, const char *psz_element, xml_elem_hnd_t *p_handlers) |
| parse a <dict> | |
| static bool | parse_plist_dict (demux_t *p_demux, input_item_node_t *p_input_node, track_elem_t *p_track, xml_reader_t *p_xml_reader, const char *psz_element, xml_elem_hnd_t *p_handlers) |
| static bool | parse_tracks_dict (demux_t *p_demux, input_item_node_t *p_input_node, track_elem_t *p_track, xml_reader_t *p_xml_reader, const char *psz_element, xml_elem_hnd_t *p_handlers) |
| static bool | parse_track_dict (demux_t *p_demux, input_item_node_t *p_input_node, track_elem_t *p_track, xml_reader_t *p_xml_reader, const char *psz_element, xml_elem_hnd_t *p_handlers) |
| static track_elem_t * | new_track () |
| static void | free_track (track_elem_t *p_track) |
| static bool | save_data (track_elem_t *p_track, const char *psz_name, char *psz_value) |
| static bool | add_meta (input_item_t *p_input_item, track_elem_t *p_track) |
| handles the supported <track> sub-elements | |
| static bool | skip_element (demux_t *p_demux, input_item_node_t *p_input_node, track_elem_t *p_track, xml_reader_t *p_xml_reader, const char *psz_element, xml_elem_hnd_t *p_handlers) |
| skips complex element content that we can't manage | |
| #define SAVE_INFO | ( | name, | |||
| value | ) | if( !strcmp( psz_name, name ) ) { p_track->value = strdup( psz_value ); } |
Referenced by save_data().
| #define SET_INFO | ( | type, | |||
| prop | ) | if( p_track->prop ) {input_item_Set##type( p_input_item, p_track->prop );} |
Referenced by add_meta().
| static bool add_meta | ( | input_item_t * | p_input_item, | |
| track_elem_t * | p_track | |||
| ) | [static] |
handles the supported <track> sub-elements
References name, and SET_INFO.
Referenced by parse_track_dict().
| void Close_iTML | ( | vlc_object_t * | p_this | ) |
References demux_t::p_sys.
| static int Control | ( | demux_t * | p_demux, | |
| int | i_query, | |||
| va_list | args | |||
| ) | [static] |
| int Demux | ( | demux_t * | p_demux | ) | [static] |
demuxer function for iTML parsing
References COMPLEX_CONTENT, GetCurrentItem(), demux_sys_t::i_ntracks, input_item_node_Create(), input_item_node_PostAndDelete(), msg_Err, demux_t::p_sys, parse_plist_dict(), parse_plist_node(), 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.
| static void free_track | ( | track_elem_t * | p_track | ) | [static] |
References track_elem_t::album, track_elem_t::artist, track_elem_t::duration, FREENULL, track_elem_t::genre, track_elem_t::location, track_elem_t::name, and track_elem_t::trackNum.
Referenced by parse_track_dict().
| int Import_iTML | ( | vlc_object_t * | p_this | ) |
iTML submodule initialization function
References DEMUX_BY_EXTENSION_OR_FORCED_MSG, and VLC_SUCCESS.
| static track_elem_t* new_track | ( | void | ) | [static] |
References track_elem_t::album, track_elem_t::artist, track_elem_t::duration, track_elem_t::genre, track_elem_t::location, track_elem_t::name, and track_elem_t::trackNum.
Referenced by parse_track_dict().
| static bool parse_dict | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| track_elem_t * | p_track, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element, | |||
| xml_elem_hnd_t * | p_handlers | |||
| ) | [static] |
parse a <dict>
| COMPLEX_INTERFACE |
References xml_elem_hnd_t::cmplx, COMPLEX_CONTENT, FREE_ATT, FREE_ATT_KEY, FREE_NAME, msg_Err, xml_elem_hnd_t::name, xml_elem_hnd_t::pf_handler, psz_name, psz_value, xml_elem_hnd_t::smpl, strdup(), xml_elem_hnd_t::type, XML_READER_ENDELEM, XML_READER_NONE, XML_READER_STARTELEM, XML_READER_TEXT, xml_ReaderName, xml_ReaderNodeType, xml_ReaderRead, and xml_ReaderValue.
Referenced by parse_plist_dict(), parse_plist_node(), parse_track_dict(), and parse_tracks_dict().
| static bool parse_plist_dict | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| track_elem_t * | p_track, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element, | |||
| xml_elem_hnd_t * | p_handlers | |||
| ) | [static] |
References COMPLEX_CONTENT, parse_dict(), parse_tracks_dict(), SIMPLE_CONTENT, UNKNOWN_CONTENT, and VLC_UNUSED.
Referenced by Demux().
| static bool parse_plist_node | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| track_elem_t * | p_track, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element, | |||
| xml_elem_hnd_t * | p_handlers | |||
| ) | [static] |
parse the root node of the playlist
References msg_Err, msg_Warn, parse_dict(), psz_name, psz_value, VLC_SUCCESS, VLC_UNUSED, xml_ReaderName, xml_ReaderNextAttr, and xml_ReaderValue.
Referenced by Demux().
| static bool parse_track_dict | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| track_elem_t * | p_track, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element, | |||
| xml_elem_hnd_t * | p_handlers | |||
| ) | [static] |
References add_meta(), track_elem_t::album, track_elem_t::artist, COMPLEX_CONTENT, free_track(), track_elem_t::genre, demux_sys_t::i_ntracks, input_item_New, input_item_node_AppendItem(), track_elem_t::location, msg_Dbg, msg_Err, msg_Info, track_elem_t::name, new_track(), demux_t::p_sys, parse_dict(), save_data(), SIMPLE_CONTENT, skip_element(), track_elem_t::trackNum, UNKNOWN_CONTENT, vlc_gc_decref, and VLC_UNUSED.
Referenced by parse_tracks_dict().
| static bool parse_tracks_dict | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| track_elem_t * | p_track, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element, | |||
| xml_elem_hnd_t * | p_handlers | |||
| ) | [static] |
References COMPLEX_CONTENT, demux_sys_t::i_ntracks, msg_Info, demux_t::p_sys, parse_dict(), parse_track_dict(), SIMPLE_CONTENT, UNKNOWN_CONTENT, and VLC_UNUSED.
Referenced by parse_plist_dict().
| static bool save_data | ( | track_elem_t * | p_track, | |
| const char * | psz_name, | |||
| char * | psz_value | |||
| ) | [static] |
References track_elem_t::duration, name, resolve_xml_special_chars(), and SAVE_INFO.
Referenced by parse_track_dict().
| static bool skip_element | ( | demux_t * | p_demux, | |
| input_item_node_t * | p_input_node, | |||
| track_elem_t * | p_track, | |||
| xml_reader_t * | p_xml_reader, | |||
| const char * | psz_element, | |||
| xml_elem_hnd_t * | p_handlers | |||
| ) | [static] |
skips complex element content that we can't manage
References VLC_UNUSED, XML_READER_ENDELEM, xml_ReaderName, xml_ReaderNodeType, and xml_ReaderRead.
Referenced by parse_playlist_node(), and parse_track_dict().
1.5.6