]> git.sesse.net Git - vlc/blobdiff - modules/demux/playlist/itml.c
vcdx: Fix memleaks.
[vlc] / modules / demux / playlist / itml.c
index 612c0ea0331525aa790a215de5386b4ea26353ec..9f756a711154edf0ce9564512fea456973f58925 100644 (file)
@@ -29,7 +29,7 @@
 # include "config.h"
 #endif
 
-#include <vlc/vlc.h>
+#include <vlc_common.h>
 #include <vlc_demux.h>
 
 #include "playlist.h"
@@ -49,14 +49,14 @@ static int Demux( demux_t * );
 /**
  * \brief iTML submodule initialization function
  */
-int E_(Import_iTML)( vlc_object_t *p_this )
+int Import_iTML( vlc_object_t *p_this )
 {
     DEMUX_BY_EXTENSION_OR_FORCED_MSG( ".xml", "itml",
                                       "using iTunes Media Library reader" );
     return VLC_SUCCESS;
 }
 
-void E_(Close_iTML)( vlc_object_t *p_this )
+void Close_iTML( vlc_object_t *p_this )
 {
     demux_t *p_demux = (demux_t *)p_this;
     free( p_demux->p_sys );
@@ -114,7 +114,7 @@ int Demux( demux_t *p_demux )
     {
         xml_elem_hnd_t pl_elements[] =
             { {"dict",    COMPLEX_CONTENT, {.cmplx = parse_plist_dict} } };
-        i_ret = parse_plist_node( p_demux, p_playlist, p_current_input,
+        i_ret = parse_plist_node( p_demux, p_current_input,
                                      NULL, p_xml_reader, "plist",
                                      pl_elements );
         HANDLE_PLAY_AND_RELEASE;
@@ -137,12 +137,12 @@ static int Control( demux_t *p_demux, int i_query, va_list args )
 /**
  * \brief parse the root node of the playlist
  */
-static vlc_bool_t parse_plist_node COMPLEX_INTERFACE
+static bool parse_plist_node COMPLEX_INTERFACE
 {
     VLC_UNUSED(p_track); VLC_UNUSED(psz_element);
     char *psz_name = NULL;
     char *psz_value = NULL;
-    vlc_bool_t b_version_found = VLC_FALSE;
+    bool b_version_found = false;
 
     /* read all playlist attributes */
     while( xml_ReaderNextAttr( p_xml_reader ) == VLC_SUCCESS )
@@ -153,12 +153,12 @@ static vlc_bool_t parse_plist_node COMPLEX_INTERFACE
         {
             msg_Err( p_demux, "invalid xml stream @ <plist>" );
             FREE_ATT();
-            return VLC_FALSE;
+            return false;
         }
         /* attribute: version */
         if( !strcmp( psz_name, "version" ) )
         {
-            b_version_found = VLC_TRUE;
+            b_version_found = true;
             if( strcmp( psz_value, "1.0" ) )
                 msg_Warn( p_demux, "unsupported iTunes Media Library version" );
         }
@@ -172,7 +172,7 @@ static vlc_bool_t parse_plist_node COMPLEX_INTERFACE
     if( !b_version_found )
         msg_Warn( p_demux, "<plist> requires \"version\" attribute" );
 
-    return parse_dict( p_demux, p_playlist, p_input_item, NULL, p_xml_reader,
+    return parse_dict( p_demux, p_input_item, NULL, p_xml_reader,
                        "plist", p_handlers );
 }
 
@@ -180,7 +180,7 @@ static vlc_bool_t parse_plist_node COMPLEX_INTERFACE
  * \brief parse a <dict>
  * \param COMPLEX_INTERFACE
  */
-static vlc_bool_t parse_dict COMPLEX_INTERFACE
+static bool parse_dict COMPLEX_INTERFACE
 {
     int i_node;
     char *psz_name = NULL;
@@ -203,7 +203,7 @@ static vlc_bool_t parse_dict COMPLEX_INTERFACE
                 {
                     msg_Err( p_demux, "invalid xml stream" );
                     FREE_ATT_KEY();
-                    return VLC_FALSE;
+                    return false;
                 }
                 /* choose handler */
                 for( p_handler = p_handlers;
@@ -213,14 +213,13 @@ static vlc_bool_t parse_dict COMPLEX_INTERFACE
                 {
                     msg_Err( p_demux, "unexpected element <%s>", psz_name );
                     FREE_ATT_KEY();
-                    return VLC_FALSE;
+                    return false;
                 }
                 FREE_NAME();
                 /* complex content is parsed in a separate function */
                 if( p_handler->type == COMPLEX_CONTENT )
                 {
                     if( p_handler->pf_handler.cmplx( p_demux,
-                                                     p_playlist,
                                                      p_input_item,
                                                      NULL,
                                                      p_xml_reader,
@@ -233,7 +232,7 @@ static vlc_bool_t parse_dict COMPLEX_INTERFACE
                     else
                     {
                         FREE_ATT_KEY();
-                        return VLC_FALSE;
+                        return false;
                     }
                 }
                 break;
@@ -246,7 +245,7 @@ static vlc_bool_t parse_dict COMPLEX_INTERFACE
                 {
                     msg_Err( p_demux, "invalid xml stream" );
                     FREE_ATT_KEY();
-                    return VLC_FALSE;
+                    return false;
                 }
                 break;
 
@@ -257,13 +256,13 @@ static vlc_bool_t parse_dict COMPLEX_INTERFACE
                 {
                     msg_Err( p_demux, "invalid xml stream" );
                     FREE_ATT_KEY();
-                    return VLC_FALSE;
+                    return false;
                 }
                 /* leave if the current parent node <track> is terminated */
                 if( !strcmp( psz_name, psz_element ) )
                 {
                     FREE_ATT_KEY();
-                    return VLC_TRUE;
+                    return true;
                 }
                 /* there MUST have been a start tag for that element name */
                 if( !p_handler || !p_handler->name
@@ -272,7 +271,7 @@ static vlc_bool_t parse_dict COMPLEX_INTERFACE
                     msg_Err( p_demux, "there's no open element left for <%s>",
                              psz_name );
                     FREE_ATT_KEY();
-                    return VLC_FALSE;
+                    return false;
                 }
                 /* special case: key */
                 if( !strcmp( p_handler->name, "key" ) )
@@ -292,16 +291,16 @@ static vlc_bool_t parse_dict COMPLEX_INTERFACE
                 /* unknown/unexpected xml node */
                 msg_Err( p_demux, "unexpected xml node %i", i_node );
                 FREE_ATT_KEY();
-                return VLC_FALSE;
+                return false;
         }
         FREE_NAME();
     }
     msg_Err( p_demux, "unexpected end of xml data" );
     FREE_ATT_KEY();
-    return VLC_FALSE;
+    return false;
 }
 
-static vlc_bool_t parse_plist_dict COMPLEX_INTERFACE
+static bool parse_plist_dict COMPLEX_INTERFACE
 {
     VLC_UNUSED(p_track); VLC_UNUSED(psz_element); VLC_UNUSED(p_handlers);
     xml_elem_hnd_t pl_elements[] =
@@ -316,11 +315,11 @@ static vlc_bool_t parse_plist_dict COMPLEX_INTERFACE
           {NULL,      UNKNOWN_CONTENT, {NULL} }
         };
 
-    return parse_dict( p_demux, p_playlist, p_input_item, NULL, p_xml_reader,
+    return parse_dict( p_demux, p_input_item, NULL, p_xml_reader,
                        "dict", pl_elements );
 }
 
-static vlc_bool_t parse_tracks_dict COMPLEX_INTERFACE
+static bool parse_tracks_dict COMPLEX_INTERFACE
 {
     VLC_UNUSED(p_track); VLC_UNUSED(psz_element); VLC_UNUSED(p_handlers);
     xml_elem_hnd_t tracks_elements[] =
@@ -329,16 +328,16 @@ static vlc_bool_t parse_tracks_dict COMPLEX_INTERFACE
           {NULL,      UNKNOWN_CONTENT, {NULL} }
         };
 
-    parse_dict( p_demux, p_playlist, p_input_item, NULL, p_xml_reader,
+    parse_dict( p_demux, p_input_item, NULL, p_xml_reader,
                 "dict", tracks_elements );
 
     msg_Info( p_demux, "added %i tracks successfully",
               p_demux->p_sys->i_ntracks );
 
-    return VLC_TRUE;
+    return true;
 }
 
-static vlc_bool_t parse_track_dict COMPLEX_INTERFACE
+static bool parse_track_dict COMPLEX_INTERFACE
 {
     VLC_UNUSED(psz_element); VLC_UNUSED(p_handlers);
     input_item_t *p_new_input = NULL;
@@ -357,7 +356,7 @@ static vlc_bool_t parse_track_dict COMPLEX_INTERFACE
           {NULL,      UNKNOWN_CONTENT, {NULL} }
         };
 
-    i_ret = parse_dict( p_demux, p_playlist, p_input_item, p_track,
+    i_ret = parse_dict( p_demux, p_input_item, p_track,
                         p_xml_reader, "dict", track_elements );
 
     msg_Dbg( p_demux, "name: %s, artist: %s, album: %s, genre: %s, trackNum: %s, location: %s",
@@ -367,7 +366,7 @@ static vlc_bool_t parse_track_dict COMPLEX_INTERFACE
     {
         msg_Err( p_demux, "Track needs Location" );
         free_track( p_track );
-        return VLC_FALSE;
+        return false;
     }
 
     psz_uri = decode_URI_duplicate( p_track->location );
@@ -381,7 +380,7 @@ static vlc_bool_t parse_track_dict COMPLEX_INTERFACE
             memmove( psz_uri + 7, psz_uri + 17, strlen( psz_uri ) - 9 );
             msg_Info( p_demux, "Adding '%s'", psz_uri );
 
-            p_new_input = input_ItemNewExt( p_playlist, psz_uri,
+            p_new_input = input_ItemNewExt( p_demux, psz_uri,
                                             NULL, 0, NULL, -1 );
             input_ItemAddSubItem( p_input_item, p_new_input );
 
@@ -435,11 +434,11 @@ static void free_track( track_elem_t *p_track )
     free( p_track );
 }
 
-static vlc_bool_t save_data SIMPLE_INTERFACE
+static bool save_data SIMPLE_INTERFACE
 {
     /* exit if setting is impossible */
     if( !psz_name || !psz_value || !p_track )
-        return VLC_FALSE;
+        return false;
 
     /* re-convert xml special characters inside psz_value */
     resolve_xml_special_chars( psz_value );
@@ -458,18 +457,18 @@ static vlc_bool_t save_data SIMPLE_INTERFACE
         long i_num = atol( psz_value );
         p_track->duration = (mtime_t) i_num*1000;
     }
-    return VLC_TRUE;
+    return true;
 }
 
 /**
  * \brief handles the supported <track> sub-elements
  */
-static vlc_bool_t add_meta( input_item_t *p_input_item,
+static bool add_meta( input_item_t *p_input_item,
                             track_elem_t *p_track )
 {
     /* exit if setting is impossible */
     if( !p_input_item || !p_track )
-        return VLC_FALSE;
+        return false;
 
 #define SET_INFO( func, prop ) \
     if( p_track->prop ) { func( p_input_item, p_track->prop ); }
@@ -480,15 +479,15 @@ static vlc_bool_t add_meta( input_item_t *p_input_item,
     SET_INFO( input_item_SetGenre, genre )
     SET_INFO( input_item_SetTrackNum, trackNum )
     SET_INFO( input_item_SetDuration, duration )
-    return VLC_TRUE;
+    return true;
 }
 
 /**
  * \brief skips complex element content that we can't manage
  */
-static vlc_bool_t skip_element COMPLEX_INTERFACE
+static bool skip_element COMPLEX_INTERFACE
 {
-    VLC_UNUSED(p_demux); VLC_UNUSED(p_playlist); VLC_UNUSED(p_input_item);
+    VLC_UNUSED(p_demux); VLC_UNUSED(p_input_item);
     VLC_UNUSED(p_track); VLC_UNUSED(p_handlers);
     char *psz_endname;
 
@@ -498,15 +497,15 @@ static vlc_bool_t skip_element COMPLEX_INTERFACE
         {
             psz_endname = xml_ReaderName( p_xml_reader );
             if( !psz_endname )
-                return VLC_FALSE;
+                return false;
             if( !strcmp( psz_element, psz_endname ) )
             {
                 free( psz_endname );
-                return VLC_TRUE;
+                return true;
             }
             else
                 free( psz_endname );
         }
     }
-    return VLC_FALSE;
+    return false;
 }