]> git.sesse.net Git - vlc/commitdiff
input_item: compress two functions into one and rename "Add" into "Post" for clarity...
authorJakob Leben <jleben@videolan.org>
Wed, 3 Feb 2010 02:47:17 +0000 (03:47 +0100)
committerJakob Leben <jleben@videolan.org>
Wed, 3 Feb 2010 02:47:17 +0000 (03:47 +0100)
24 files changed:
include/vlc_input_item.h
modules/access/cdda.c
modules/access/mms/mmsh.c
modules/demux/mp4/mp4.c
modules/demux/playlist/asx.c
modules/demux/playlist/b4s.c
modules/demux/playlist/dvb.c
modules/demux/playlist/gvp.c
modules/demux/playlist/ifo.c
modules/demux/playlist/itml.c
modules/demux/playlist/m3u.c
modules/demux/playlist/pls.c
modules/demux/playlist/podcast.c
modules/demux/playlist/qtl.c
modules/demux/playlist/ram.c
modules/demux/playlist/sgimb.c
modules/demux/playlist/shoutcast.c
modules/demux/playlist/wpl.c
modules/demux/playlist/xspf.c
modules/demux/playlist/zpl.c
modules/misc/lua/vlc.c
modules/services_discovery/upnp_intel.cpp
src/input/item.c
src/libvlccore.sym

index 72f9d39b08eed159ebd042cf000e9be297ddd474..e9940f6fbbfef50ef29a2cb07f9378ce2f124695 100644 (file)
@@ -125,46 +125,46 @@ VLC_EXPORT( void, input_item_SetName, ( input_item_t *p_item, const char *psz_na
  * Like the playlist, that there is a new sub item. With this design
  * It is not the input item's responsability to keep all the ref of
  * the input item children. */
-VLC_EXPORT( void, input_item_AddSubItem, ( input_item_t *p_parent, input_item_t *p_child ) );
+VLC_EXPORT( void, input_item_PostSubItem, ( input_item_t *p_parent, input_item_t *p_child ) );
 
 
 /**
- * Start adding multiple subitems at once.
+ * Start adding multiple subitems.
  *
- * This is a hint for the client that he should probably wait for
- * input_item_AddSubItemTree()'s input_item_subitemtree_added event before
- * processing any added subitem.
+ * Create a root node to hold a tree of subitems for given item
  */
 VLC_EXPORT( input_item_node_t *, input_item_node_Create, ( input_item_t *p_input ) );
 
-/**
- * Notify that we are done adding subitems to this tree.
- *
- * This send a input_item_subitemtree_added event.
- */
-VLC_EXPORT( void, input_item_AddSubItemTree, ( input_item_node_t *p_root ) );
-
 /**
  * Add a subitem to this input_item and to this input_item_node.
  *
- * An input_item_subitem_added event will be sent right away.
+ * A vlc_InputItemSubItemAdded event will be sent right away.
  */
 VLC_EXPORT( input_item_node_t *, input_item_node_AppendItem, ( input_item_node_t *p_node, input_item_t *p_item ) );
 
 /**
  * Add a subitem to this input_item and to this input_item_node.
  *
- * An input_item_subitem_added event will be sent right away for the subitem
+ * A vlc_InputItemSubItemAdded event will be sent right away for the subitem
  * pointed by input_item_node_t.
  */
 VLC_EXPORT( void, input_item_node_AppendNode, ( input_item_node_t *p_node, input_item_node_t *p_item ) );
 
 /**
- * Delete the result of input_item_node_Create().
+ * Delete a node created with input_item_node_Create() and all its children.
  */
 VLC_EXPORT( void, input_item_node_Delete, ( input_item_node_t *p_node ) );
 
-
+/**
+ * End adding multiple subitems.
+ *
+ * Send a notification that the item pointed to by the given root node
+ * has created new subitems that are pointed to by all the children of the node.
+ * Then delete the node and all its children.
+ *
+ * A vlc_InputItemSubItemTreeAdded event will be sent.
+ */
+VLC_EXPORT( void, input_item_node_PostAndDelete, ( input_item_node_t *p_node ) );
 
 
 /**
index 8cee1b627d40084d457676159bb255b9e6cb28bf..f68074094628c08947e07a5850b09980a9d2bc39 100644 (file)
@@ -585,8 +585,7 @@ static int GetTracks( access_t *p_access, input_item_t *p_current )
 #undef ON_EMPTY
 #undef NONEMPTY
 
-    input_item_AddSubItemTree( p_root );
-    input_item_node_Delete( p_root );
+    input_item_node_PostAndDelete( p_root );
 
     /* */
     for( int i = 0; i < i_cd_text; i++ )
index c689c2776989af966de134386165e1005398d204..d353f0cb4505d2844fc0fa5898474e74461096a4 100644 (file)
@@ -166,7 +166,7 @@ int MMSHOpen( access_t *p_access )
         /** \bug we do not autodelete here */
         p_new_loc = input_item_New( p_access, psz_location, psz_location );
         input_item_t *p_item = input_GetItem( p_input );
-        input_item_AddSubItem( p_item, p_new_loc );
+        input_item_PostSubItem( p_item, p_new_loc );
 
         vlc_gc_decref( p_new_loc );
         vlc_object_release( p_input );
index cf1827e6d5252fda551863d162eae057d14f1d47..5e772f93cfd9fb6614eae0778ea58e00c46d76f2 100644 (file)
@@ -423,7 +423,6 @@ static int Open( vlc_object_t * p_this )
                 msg_Dbg( p_demux, "adding ref = `%s'", psz_ref );
                 input_item_t *p_input = input_item_New( p_demux, psz_ref, NULL );
                 input_item_CopyOptions( p_current, p_input );
-                input_item_AddSubItem( p_current, p_input );
                 input_item_node_AppendItem( p_subitems, p_input );
                 vlc_gc_decref( p_input );
             }
@@ -434,8 +433,7 @@ static int Open( vlc_object_t * p_this )
             }
             free( psz_ref );
         }
-        input_item_AddSubItemTree( p_subitems );
-        input_item_node_Delete( p_subitems );
+        input_item_node_PostAndDelete( p_subitems );
         vlc_object_release( p_input );
     }
 
index 4d467cfd3bf3b431a053c2634a7fb41187b5c458..8d225b7393a7474fbff2f778bd443fc1ef3f6891 100644 (file)
@@ -764,8 +764,7 @@ static int Demux( demux_t *p_demux )
 #endif
     }
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref(p_current_input);
     return 0; /* Needed for correct operation of go back */
index ac33bc7debcf1b5a5ee4b963d9990632c9f43a30..d08814d96215e791eda153d2e582df8ddc4e46e6 100644 (file)
@@ -294,10 +294,7 @@ end:
     free( psz_elname );
 
     if( p_subitems )
-    {
-        input_item_AddSubItemTree( p_subitems );
-        input_item_node_Delete( p_subitems );
-    }
+        input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref( p_current_input );
     if( p_xml_reader )
index 8df00ccaf37478a2a85b6fd39a36475e155d83d4..15e057894eeaa3230540ba80fbade71ee0a0468b 100644 (file)
@@ -132,8 +132,7 @@ static int Demux( demux_t *p_demux )
         free( psz_line );
     }
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref(p_current_input);
     return 0; /* Needed for correct operation of go back */
index 316dbde079ddbe23c523644011b56a56a342f4a9..2747d985c2f66ce94c93b20b21e8c3aef5e538bd 100644 (file)
@@ -214,8 +214,7 @@ static int Demux( demux_t *p_demux )
         vlc_gc_decref( p_input );
     }
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref(p_current_input);
 
index 14660f37e36fc05afbfa3a0d0e721c9c4d9ff838..54d29db9dd48790dcde3259038a19b0f0a403eec 100644 (file)
@@ -110,7 +110,7 @@ static int Demux( demux_t *p_demux )
 
     input_item_t *p_current_input = GetCurrentItem(p_demux);
     input_item_t *p_input = input_item_New( p_demux, psz_url, psz_url );
-    input_item_AddSubItem( p_current_input, p_input );
+    input_item_PostSubItem( p_current_input, p_input );
     vlc_gc_decref( p_input );
 
     vlc_gc_decref(p_current_input);
@@ -132,7 +132,7 @@ static int DemuxDVD_VR( demux_t *p_demux )
 
     input_item_t *p_current_input = GetCurrentItem(p_demux);
     input_item_t *p_input = input_item_New( p_demux, psz_url, psz_url );
-    input_item_AddSubItem( p_current_input, p_input );
+    input_item_PostSubItem( p_current_input, p_input );
 
     vlc_gc_decref( p_input );
 
index ac4c6f053ced5c90bd50c9e4c3485edebeaac402..3d99a2216051edba090efab0ca15db0d25d325f6 100644 (file)
@@ -106,8 +106,7 @@ int Demux( demux_t *p_demux )
         { {"dict",    COMPLEX_CONTENT, {.cmplx = parse_plist_dict} } };
     parse_plist_node( p_demux, p_subitems, NULL, p_xml_reader, "plist",
                       pl_elements );
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref(p_current_input);
 
index acafc3eeb8de107fd80548343b72b05f8078d8cb..9320a6b11ebb152318fd081190a269017d37bcde 100644 (file)
@@ -254,8 +254,7 @@ static int Demux( demux_t *p_demux )
             b_cleanup = false;
         }
     }
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
     vlc_gc_decref(p_current_input);
     var_Destroy( p_demux, "m3u-extvlcopt" );
     return 0; /* Needed for correct operation of go back */
index 0089db3cda3f8abae51808096453305562c61d70..7bbdcb4e4f002d9ab0ccdb3e6d7b291f37f58ca0 100644 (file)
@@ -230,8 +230,7 @@ static int Demux( demux_t *p_demux )
     free( psz_name );
     psz_name = NULL;
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref(p_current_input);
     return 0; /* Needed for correct operation of go back */
index 6a2b256422f5ffa2813f7ed17b23ace32cb0af7c..2360adf6b5e3212c5f6d5606922538dd4646e2ef 100644 (file)
@@ -368,8 +368,7 @@ static int Demux( demux_t *p_demux )
     xml_ReaderDelete( p_xml, p_xml_reader );
     xml_Delete( p_xml );
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
     vlc_gc_decref(p_current_input);
     return 0; /* Needed for correct operation of go back */
 
@@ -393,9 +392,7 @@ error:
     if( p_xml )
         xml_Delete( p_xml );
     if( p_subitems )
-    {
         input_item_node_Delete( p_subitems );
-    }
 
     vlc_gc_decref(p_current_input);
     return -1;
index 145676a1085cbfaef8a89a2c1cf185cf8152bd8f..d10d4f5f23c8e5dad7384ab72e9317b98baf1132 100644 (file)
@@ -318,8 +318,7 @@ static int Demux( demux_t *p_demux )
             input_item_node_AppendItem( p_subitems, p_input );
             vlc_gc_decref( p_input );
         }
-        input_item_AddSubItemTree( p_subitems );
-        input_item_node_Delete( p_subitems );
+        input_item_node_PostAndDelete( p_subitems );
     }
 
     i_ret = 0; /* Needed for correct operation of go back */
index 0c6149f0e5b2d2426071cbfbd16878e03868b920..d2cb5b229444f618a7740a60c65a48df72ef09a1 100644 (file)
@@ -360,8 +360,7 @@ static int Demux( demux_t *p_demux )
             b_cleanup = false;
         }
     }
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
     vlc_gc_decref(p_current_input);
     var_Destroy( p_demux, "m3u-extvlcopt" );
     return 0; /* Needed for correct operation of go back */
index effece1702e44cb85addc653476622819607474f..07065db66422adb511421c0774cadb912b7463ea 100644 (file)
@@ -402,7 +402,7 @@ static int Demux ( demux_t *p_demux )
     if( !p_sys->psz_mcast_ip && p_sys->b_rtsp_kasenna )
         input_item_AddOption( p_child, "rtsp-kasenna", VLC_INPUT_OPTION_TRUSTED );
 
-    input_item_AddSubItem( p_current_input, p_child );
+    input_item_PostSubItem( p_current_input, p_child );
     vlc_gc_decref( p_child );
     vlc_gc_decref(p_current_input);
     return 0; /* Needed for correct operation of go back */
index a6086312065c449df9353c2edcf3d907530acb59..dcaa0559bd1c3f5811997c3d7245713bf97829c3 100644 (file)
@@ -126,7 +126,8 @@ static int Demux( demux_t *p_demux )
             goto error;
     }
 
-    input_item_AddSubItemTree( p_input_node );
+    input_item_node_PostAndDelete( p_input_node );
+    p_input_node = NULL;
 
     i_ret = 0; /* Needed for correct operation of go back */
 
@@ -136,7 +137,7 @@ error:
     if( p_xml )
         xml_Delete( p_xml );
     free( psz_eltname );
-    input_item_node_Delete( p_input_node );
+    if( p_input_node ) input_item_node_Delete( p_input_node );
     vlc_gc_decref(p_current_input);
     return i_ret;
 }
index 71209cb15b309eab40ac66ca261a3c4c24bf59ad..a73af682779f62058e56ce8331f81afe7b661e26 100644 (file)
@@ -112,8 +112,7 @@ static int Demux( demux_t *p_demux )
 
     }
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref(p_current_input);
     var_Destroy( p_demux, "wpl-extvlcopt" );
index 1933c117276a5b093d4f08b0e6591618fbf19c93..c24e0dab6120fa90254111b8ed570b24d2040ab7 100644 (file)
@@ -133,8 +133,7 @@ int Demux( demux_t *p_demux )
         }
     }
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
 end:
     vlc_gc_decref(p_current_input);
index b9ee3d23b4c3f5d363e1373a33fe587a7a3bc224..7c2efbd95efb80da712baa4333a646ab3694a209 100644 (file)
@@ -168,7 +168,6 @@ static int Demux( demux_t *p_demux )
             /* create the input item */
             input_item_t *p_input = input_item_NewExt( p_demux, psz_mrl,
                                         psz_title, 0, NULL, 0, i_duration );
-            input_item_AddSubItem( p_current_input, p_input );
             input_item_node_AppendItem( p_subitems, p_input );
             FREENULL( psz_mrl );
             FREENULL( psz_title );
@@ -202,8 +201,7 @@ static int Demux( demux_t *p_demux )
         psz_line = stream_ReadLine( p_demux->s );
     }
 
-    input_item_AddSubItemTree( p_subitems );
-    input_item_node_Delete( p_subitems );
+    input_item_node_PostAndDelete( p_subitems );
 
     vlc_gc_decref(p_current_input);
     var_Destroy( p_demux, "zpl-extvlcopt" );
index a0c38de0e8c08a522774387a5d62ca99f1da1e85..dc499033b36f68eb3db2a5b3b0f5707b8a4b6a90 100644 (file)
@@ -474,7 +474,7 @@ int __vlclua_playlist_add_internal( vlc_object_t *p_this, lua_State *L,
                     /* Append item to playlist */
                     if( p_parent ) /* Add to node */
                     {
-                        input_item_AddSubItem( p_parent, p_input );
+                        input_item_PostSubItem( p_parent, p_input );
                     }
                     else /* Play or Enqueue (preparse) */
                         /* FIXME: playlist_AddInput() can fail */
index 185ef74d385bac37983fa425526c7e2d4ed3e340..427c27ec438e049c94877070449ee25552164fbf 100644 (file)
@@ -811,9 +811,7 @@ void MediaServer::_buildPlaylist( Container* parent, input_item_node_t *p_input_
     }
 
     if( send )
-    {
-        input_item_node_Delete( p_input_node );
-    }
+        input_item_node_PostAndDelete( p_input_node );
 }
 
 void MediaServer::setInputItem( input_item_t* p_input_item )
index 5fea1217d4d8338af2112f436593a6b29d628d53..e6f17015eeb5db0d3995d660bada00a7c00f6652 100644 (file)
@@ -262,26 +262,15 @@ static void notify_subitem_added(input_item_t *p_parent, input_item_t *p_child)
  * Like the playlist, that there is a new sub item. With this design
  * It is not the input item's responsability to keep all the ref of
  * the input item children. */
-void input_item_AddSubItem( input_item_t *p_parent, input_item_t *p_child )
+void input_item_PostSubItem( input_item_t *p_parent, input_item_t *p_child )
 {
     vlc_mutex_lock( &p_parent->lock );
     p_parent->i_type = ITEM_TYPE_PLAYLIST;
     vlc_mutex_unlock( &p_parent->lock );
 
-    notify_subitem_added(p_parent, p_child);
-
     input_item_node_t *p_node = input_item_node_Create( p_parent );
     input_item_node_AppendItem( p_node, p_child );
-    input_item_AddSubItemTree( p_node );
-    input_item_node_Delete( p_node );
-}
-
-void input_item_AddSubItemTree ( input_item_node_t *p_root )
-{
-    vlc_event_t event;
-    event.type = vlc_InputItemSubItemTreeAdded;
-    event.u.input_item_subitem_tree_added.p_root = p_root;
-    vlc_event_send( &p_root->p_item->event_manager, &event );
+    input_item_node_PostAndDelete( p_node );
 }
 
 bool input_item_HasErrorWhenReading( input_item_t *p_item )
@@ -1043,3 +1032,13 @@ void input_item_node_AppendNode( input_item_node_t *p_parent, input_item_node_t
                  p_child );
     p_child->p_parent = p_parent;
 }
+
+void input_item_node_PostAndDelete( input_item_node_t *p_root )
+{
+  vlc_event_t event;
+  event.type = vlc_InputItemSubItemTreeAdded;
+  event.u.input_item_subitem_tree_added.p_root = p_root;
+  vlc_event_send( &p_root->p_item->event_manager, &event );
+
+  input_item_node_Delete( p_root );
+}
index bb515ed60287694578612b1e2787ba8b985426d4..031bf223ca57bd36e19ebe2d3bb0374846ca5cd5 100644 (file)
@@ -188,8 +188,6 @@ input_DetachResource
 input_GetItem
 input_item_AddInfo
 input_item_AddOption
-input_item_AddSubItem
-input_item_AddSubItemTree
 input_item_CopyOptions
 input_item_DelInfo
 input_item_GetDuration
@@ -208,6 +206,8 @@ input_item_node_AppendItem
 input_item_node_AppendNode
 input_item_node_Create
 input_item_node_Delete
+input_item_node_PostAndDelete
+input_item_PostSubItem
 input_item_SetDuration
 input_item_SetMeta
 input_item_SetName