]> git.sesse.net Git - vlc/commitdiff
Remove playlist info accessors (as they now belong to input_item) and use vlc_input_i...
authorClément Stenac <zorglub@videolan.org>
Sun, 16 Jan 2005 14:10:47 +0000 (14:10 +0000)
committerClément Stenac <zorglub@videolan.org>
Sun, 16 Jan 2005 14:10:47 +0000 (14:10 +0000)
15 files changed:
Makefile.am
include/vlc_input.h
include/vlc_playlist.h
modules/access/cdda/info.c
modules/gui/macosx/playlistinfo.m
modules/gui/wince/iteminfo.cpp
modules/gui/wince/wince.h
modules/gui/wxwindows/iteminfo.cpp
modules/gui/wxwindows/playlist.cpp
modules/gui/wxwindows/wxwindows.h
src/input/control.c
src/input/input.c
src/playlist/info.c [deleted file]
src/playlist/item.c
src/playlist/sort.c

index 9ab3987632ba41898957f08046d4cbbd404a6839..18ebfa19dc535493d7c2195089a3ef77e1fee8a7 100644 (file)
@@ -330,7 +330,6 @@ SOURCES_libvlc_common = \
        src/playlist/view.c \
        src/playlist/item.c \
        src/playlist/item-ext.c \
-       src/playlist/info.c \
        src/playlist/services_discovery.c \
        src/input/access.c \
        src/input/clock.c \
index d27fd50835901889e80a6b24df67a8d64736d631..cae13922dc8cb79ba331ff5e90e0584f0ed31343 100644 (file)
@@ -158,6 +158,9 @@ static inline void vlc_input_item_Clean( input_item_t *p_i )
     vlc_mutex_destroy( &p_i->lock );
 }
 
+VLC_EXPORT( char *, vlc_input_item_GetInfo, ( input_item_t *p_i, const char *psz_cat,const char *psz_name ) );
+VLC_EXPORT(int, vlc_input_item_AddInfo, ( input_item_t *p_i, const char *psz_cat, const char *psz_name, const char *psz_format, ... ) );
+
 /*****************************************************************************
  * Seek point: (generalisation of chapters)
  *****************************************************************************/
index dca75130c9d5f253799aa9d43033889a5fe41ee5..96084b95fffd07e9985db29afaf26b72d3f73d52 100644 (file)
@@ -331,16 +331,6 @@ VLC_EXPORT( playlist_item_t *, playlist_ItemGetByInput, (playlist_t *,input_item
 VLC_EXPORT( playlist_item_t *, playlist_LockItemGetByInput, (playlist_t *,input_item_t * ) );
 VLC_EXPORT( int, playlist_GetPositionById, (playlist_t *,int ) );
 
-/* Info functions */
-VLC_EXPORT( char * , playlist_GetInfo, ( playlist_t * , int, const char *, const char *) );
-VLC_EXPORT( char * , playlist_ItemGetInfo, ( playlist_item_t * , const char *, const char *) );
-
-VLC_EXPORT( info_category_t*, playlist_ItemGetCategory, ( playlist_item_t *, const char *) );
-
-VLC_EXPORT( info_category_t*, playlist_ItemCreateCategory, ( playlist_item_t *, const char *) );
-
-VLC_EXPORT( int, playlist_AddInfo, (playlist_t *, int, const char * , const char *, const char *, ...) );
-VLC_EXPORT( int, playlist_ItemAddInfo, (playlist_item_t *, const char * , const char *, const char *, ...) );
 VLC_EXPORT( int, playlist_ItemAddOption, (playlist_item_t *, const char *) );
 
 /* Playlist sorting */
index dbbc27a3f07bccc4e1dce6d3486595197475ad0a..4f4ba124f8b9a8df42d67dd496f5f5a0ad9568be 100644 (file)
@@ -801,7 +801,7 @@ CDDAFormatTitle( const access_t *p_access, track_t i_track )
 #define add_playlist_track_info_str(TITLE, FIELD)                        \
     if (FIELD && strlen(FIELD))                                          \
     {                                                                    \
-        playlist_ItemAddInfo( p_item, _("Track"), _(TITLE),              \
+        vlc_input_item_AddInfo( &p_item->input, _("Track"), _(TITLE),    \
                               "%s", FIELD);                              \
     }
 
@@ -844,14 +844,14 @@ CDDACreatePlaylistItem( const access_t *p_access, cdda_data_t *p_cdda,
 }
 
 int CDDAAddMetaToItem( access_t *p_access, cdda_data_t *p_cdda,
-                       playlist_item_t *p_item, int i_track, 
-                      vlc_bool_t b_single )
+                       playlist_item_t *p_item, int i_track,
+                       vlc_bool_t b_single )
 {
     vlc_mutex_lock( &p_item->input.lock );
 
     add_playlist_track_info_str("Source",  p_cdda->psz_source);
-    playlist_ItemAddInfo( p_item, _("Track"), _("Track Number"),
-                          "%d", i_track );
+    vlc_input_item_AddInfo( &p_item->input, _("Track"), _("Track Number"),
+                           "%d", i_track );
 
     if (p_cdda->p_cdtext[i_track])
     {
index 806fc942eb3945f3fbbe76bdc94fb7e0bd831a0b..9efbbe10fb80aaa994b3e7933b42cc7d886c5d77 100644 (file)
 
         p_item->input.psz_uri = strdup( [[o_uri_txt stringValue] UTF8String] );
         p_item->input.psz_name = strdup( [[o_title_txt stringValue] UTF8String] );
-        playlist_ItemAddInfo( p_item, _("General"), _("Author"), [[o_author_txt stringValue] UTF8String]);
+        vlc_input_item_AddInfo( &p_item->input, _("General"), _("Author"), [[o_author_txt stringValue] UTF8String]);
         vlc_mutex_unlock( &p_item->input.lock );
         
         val.b_bool = VLC_TRUE;
index 2bdf1dbab1f05c8e31fe90d88baf5597cf861a79..4b897a44d4973bf7ac1120be1ce5f87ed1305c14 100644 (file)
@@ -132,18 +132,6 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp,
             70, 10 + 15 + 10 - 3, rcClient.right - 70 - 10, 15 + 6,
             hwnd, NULL, hInst, NULL);
 
-        /* Author Textbox */
-        author_label = CreateWindow( _T("STATIC"), _T("Author:"),
-                         WS_CHILD | WS_VISIBLE | SS_RIGHT ,
-                         0, 10 + 2*( 15 + 10 ), 60, 15,
-                         hwnd, NULL, hInst, NULL);
-
-        author_text = CreateWindow( _T("EDIT"),
-            _FROMMB(playlist_ItemGetInfo( p_item, _("General"), _("Author") )),
-            WS_CHILD | WS_VISIBLE | WS_BORDER | SS_LEFT | ES_AUTOHSCROLL,
-            70, 10 + 2*( 15 + 10 ) - 3, rcClient.right - 70 - 10, 15 + 6,
-            hwnd, NULL, hInst, NULL );
-
         /* CheckBox */
         checkbox_label = CreateWindow( _T("STATIC"), _T("Item Enabled:"),
             WS_CHILD | WS_VISIBLE | SS_RIGHT ,
@@ -290,10 +278,6 @@ void ItemInfoDialog::OnOk()
     if( p_item->input.psz_uri ) free( p_item->input.psz_uri );
     p_item->input.psz_uri = strdup( _TOMB(psz_uri) );
 
-    TCHAR psz_author[MAX_PATH];
-    Edit_GetText( author_text, psz_author, MAX_PATH );
-    playlist_ItemAddInfo( p_item, "General", "Author", _TOMB(psz_author) );
-
     vlc_bool_t b_old_enabled = p_item->b_enabled;
 
     playlist_t * p_playlist = (playlist_t *)
index 38dc261cc3d3ec2e5ba062fac00eb67199f6c442..67e29b77d3655e04a9880fa570e82221d1137717 100644 (file)
@@ -253,9 +253,6 @@ protected:
     HWND name_label;
     HWND name_text;
 
-    HWND author_label;
-    HWND author_text;
-
     HWND checkbox_label;
     HWND enabled_checkbox;
 
index 8c12d31b169296909a43d1462672a0bbda9bce97..b77371b5a92dfb7d03fda7b7de88b4eab1ce0704 100644 (file)
@@ -51,7 +51,6 @@ enum
 {
     Uri_Event,
     Name_Event,
-    Author_Event,
     Enabled_Event,
 };
 
@@ -155,19 +154,6 @@ wxPanel *ItemInfoDialog::InfoPanel( wxWindow* parent )
     sizer->Add( name_label, 0 , wxALIGN_LEFT |wxALL , 5  );
     sizer->Add( name_text, 1 , wxALIGN_RIGHT | wxALL , 5 );
 
-    /* Author Textbox */
-    wxStaticText *author_label =
-           new wxStaticText( info_panel, -1, wxU(_("Author")) );
-
-    author_text = new wxTextCtrl( info_panel, Uri_Event,
-                                   wxU( playlist_ItemGetInfo( p_item,
-                                          _("General"), _("Author") ) ),
-                                   wxDefaultPosition, wxSize( 300, -1 ),
-                                   wxTE_PROCESS_ENTER);
-
-    sizer->Add( author_label, 0 , wxALIGN_LEFT | wxALL , 5 );
-    sizer->Add( author_text, 1 , wxALIGN_RIGHT | wxALL , 5);
-
     /* Treeview */
     info_tree = new wxTreeCtrl( info_panel, -1, wxDefaultPosition,
                                 wxSize(220,200),
@@ -221,8 +207,6 @@ void ItemInfoDialog::OnOk( wxCommandEvent& WXUNUSED(event) )
     vlc_mutex_lock( &p_item->input.lock );
     p_item->input.psz_name = strdup( name_text->GetLineText(0).mb_str() );
     p_item->input.psz_uri = strdup( uri_text->GetLineText(0).mb_str() );
-    playlist_ItemAddInfo( p_item,"General","Author",
-                            author_text->GetLineText(0).mb_str() );
     vlc_mutex_unlock( &p_item->input.lock );
     EndModal( wxID_OK );
 }
index 9da7b9bc67956103d4ccb5212662c0dc0ba4ec99..2069eb83afc42257f4e459d8f619c2235fc876da 100644 (file)
@@ -517,7 +517,8 @@ void Playlist::UpdateTreeItem( playlist_t *p_playlist, wxTreeItemId item )
 
     wxString msg;
     wxString duration = wxU( "" );
-    char *psz_author = playlist_ItemGetInfo( p_item, _("Meta-information"),
+    char *psz_author = vlc_input_item_GetInfo( &p_item->input,
+                                                     _("Meta-information"),
                                                      _("Artist"));
     char psz_duration[MSTRTIME_MAX_SIZE];
     mtime_t dur = p_item->input.i_duration;
@@ -526,7 +527,7 @@ void Playlist::UpdateTreeItem( playlist_t *p_playlist, wxTreeItemId item )
     {
         secstotimestr( psz_duration, dur/1000000 );
         duration.Append( wxU( " ( " ) +  wxString( wxU( psz_duration ) ) +
-                         wxU( ")" ) );
+                         wxU( " )" ) );
     }
 
     if( !strcmp( psz_author, "" ) || p_item->input.b_fixed_name == VLC_TRUE )
index 796726e719d2d8dbf9da12fc50ed7c1a0dfa7da9..97c04e63d5f3b323d8f321cc461888aa677cf9db 100644 (file)
@@ -940,7 +940,6 @@ private:
 
     wxTextCtrl *uri_text;
     wxTextCtrl *name_text;
-    wxTextCtrl *author_text;
 
     wxTreeCtrl *info_tree;
     wxTreeItemId info_root;
index faade0bd2a5a59e8894efcad713741e985461313..4b3cec6e839464e703df728e62e1bdbf5258c770 100644 (file)
@@ -129,6 +129,8 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
 
         case INPUT_ADD_INFO:
         {
+            /* FIXME : Impossible to use vlc_input_item_AddInfo because of
+             * the ... problem ? */
             char *psz_cat = (char *)va_arg( args, char * );
             char *psz_name = (char *)va_arg( args, char * );
             char *psz_format = (char *)va_arg( args, char * );
@@ -204,32 +206,8 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
             int i;
             *ppsz_value = NULL;
 
-            vlc_mutex_lock( &p_input->input.p_item->lock );
-            for( i = 0; i < p_input->input.p_item->i_categories; i++ )
-            {
-                if( !strcmp( p_input->input.p_item->pp_categories[i]->psz_name,
-                             psz_cat ) ) break;
-            }
-
-            if( i != p_input->input.p_item->i_categories )
-            {
-                info_category_t *p_cat;
-                p_cat = p_input->input.p_item->pp_categories[i];
-
-                for( i = 0; i < p_cat->i_infos; i++ )
-                {
-                    if( !strcmp( p_cat->pp_infos[i]->psz_name, psz_name ) )
-                    {
-                        if( p_cat->pp_infos[i]->psz_value )
-                        {
-                            *ppsz_value =strdup(p_cat->pp_infos[i]->psz_value);
-                            i_ret = VLC_SUCCESS;
-                        }
-                        break;
-                    }
-                }
-            }
-            vlc_mutex_unlock( &p_input->input.p_item->lock );
+            *ppsz_value = vlc_input_item_GetInfo( p_input->input.p_item,
+                                                  psz_cat, psz_name );
             return i_ret;
         }
 
@@ -442,7 +420,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args )
             int i;
 
             vlc_mutex_lock( &p_input->input.p_item->lock );
-            /* Check if option already exists */            
+            /* Check if option already exists */
             for( i = 0; i < p_input->input.p_item->i_options; i++ )
             {
                 if( !strncmp( p_input->input.p_item->ppsz_options[i],
index d504db7f160eccbc24ec5f4acdb3a30ffb286493..4c5bd6370e02b56ef84a93c1584632e26e0cc6c8 100644 (file)
@@ -2442,3 +2442,104 @@ static void MRLSections( input_thread_t *p_input, char *psz_source,
              psz_source, *pi_title_start, *pi_chapter_start,
              *pi_title_end, *pi_chapter_end );
 }
+
+
+/***********************************************************************
+ * Info management functions
+ ***********************************************************************/
+char *vlc_input_item_GetInfo( input_item_t *p_i,
+                              const char *psz_cat,
+                              const char *psz_name )
+{
+    int i,j;
+
+    vlc_mutex_lock( &p_i->lock );
+
+    for( i = 0 ; i< p_i->i_categories  ; i++ )
+    {
+        info_category_t *p_cat = p_i->pp_categories[i];
+
+        if( !psz_cat || strcmp( p_cat->psz_name, psz_cat ) )
+            continue;
+
+        for( j = 0; j < p_cat->i_infos ; j++ )
+        {
+            if( !strcmp( p_cat->pp_infos[j]->psz_name, psz_name ) )
+            {
+                vlc_mutex_unlock( &p_i->lock );
+                return strdup( p_cat->pp_infos[j]->psz_value );
+            }
+        }
+    }
+    vlc_mutex_unlock( &p_i->lock );
+    return strdup( "" );
+}
+
+int vlc_input_item_AddInfo( input_item_t *p_i,
+                            const char *psz_cat,
+                            const char *psz_name,
+                            const char *psz_format, ... )
+{
+    va_list args;
+    int i;
+    info_t *p_info = NULL;
+    info_category_t *p_cat = NULL ;
+
+    vlc_mutex_lock( &p_i->lock );
+
+    for( i = 0 ; i < p_i->i_categories ; i ++ )
+    {
+        if( !strcmp( p_i->pp_categories[i]->psz_name, psz_cat ) )
+        {
+            p_cat = p_i->pp_categories[i];
+            break;
+        }
+    }
+    if( !p_cat )
+    {
+        if( ( p_cat = (info_category_t *)malloc(
+                                     sizeof( info_category_t ) ) )  == NULL )
+        {
+            vlc_mutex_unlock( &p_i->lock );
+            return VLC_EGENERIC;
+        }
+        p_cat->psz_name = strdup( psz_cat );
+        p_cat->i_infos = 0;
+        p_cat->pp_infos = 0;
+        INSERT_ELEM( p_i->pp_categories, p_i->i_categories, p_i->i_categories,
+                     p_cat );
+    }
+
+    for( i = 0; i< p_cat->i_infos; i++ )
+    {
+        if( !strcmp( p_cat->pp_infos[i]->psz_name, psz_name ) )
+        {
+            p_info = p_cat->pp_infos[i];
+            break;
+        }
+    }
+
+    if( !p_info )
+    {
+        if( ( p_info = (info_t *)malloc( sizeof( info_t ) ) ) == NULL )
+        {
+            vlc_mutex_unlock( &p_i->lock );
+            return VLC_EGENERIC;
+        }
+        INSERT_ELEM( p_cat->pp_infos, p_cat->i_infos, p_cat->i_infos, p_info );
+        p_info->psz_name = strdup( psz_name );
+    }
+    else
+    {
+        if( p_info->psz_value ) free( p_info->psz_value );
+    }
+
+    va_start( args, psz_format );
+    vasprintf( &p_info->psz_value, psz_format, args);
+    va_end( args );
+
+    vlc_mutex_unlock( &p_i->lock );
+
+    return VLC_SUCCESS;
+}
+
diff --git a/src/playlist/info.c b/src/playlist/info.c
deleted file mode 100644 (file)
index 88012c4..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-/*****************************************************************************
- * info.c : Playlist info management
- *****************************************************************************
- * Copyright (C) 1999-2004 VideoLAN
- * $Id$
- *
- * Authors: Clément Stenac <zorglub@videolan.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
- *****************************************************************************/
-#include <stdlib.h>                                      /* free(), strtol() */
-#include <stdio.h>                                              /* sprintf() */
-#include <string.h>                                            /* strerror() */
-
-#include <vlc/vlc.h>
-#include <vlc/input.h>
-
-#include "vlc_playlist.h"
-
-/**
- * Get one special info
- * Must be entered with playlist lock
- *
- * \param p_playlist the playlist to get the info from
- * \param i_pos position of the item on
- *              which we want the info ( -1 for current )
- * \param psz_cat the category in which the info is stored
- * \param psz_name the name of the info
- * \return the info value if any, an empty string else
- */
-char * playlist_GetInfo( playlist_t *p_playlist, int i_pos,
-                         const char *psz_cat, const char *psz_name )
-{
-    playlist_item_t *p_item;
-    char *psz_buffer;
-
-    /* Sanity check */
-    if( p_playlist == NULL) return strdup("");
-
-    p_item = playlist_ItemGetByPos( p_playlist, i_pos );
-    if( !p_item ) return strdup("");
-
-    vlc_mutex_lock( &p_item->input.lock );
-    psz_buffer = playlist_ItemGetInfo( p_item , psz_cat, psz_name );
-    vlc_mutex_unlock( &p_item->input.lock );
-
-    return psz_buffer;
-}
-
-/**
- *  Get one special info, from an item (no need for p_playlist)
- *
- * \param p_item the item on which we want the info
- * \param psz_cat the category in which the info is stored
- * \param psz_name the name of the info
- * \return the info value if any, an empty string else
-*/
-char * playlist_ItemGetInfo( playlist_item_t *p_item,
-                             const char * psz_cat, const char *psz_name )
-{
-     int i, j;
-
-     for( i = 0 ; i< p_item->input.i_categories ; i++ )
-     {
-         info_category_t *p_category = p_item->input.pp_categories[i];
-
-         if( !psz_cat || strcmp( p_category->psz_name , psz_cat ) ) continue;
-
-         for( j = 0 ; j< p_category->i_infos ; j++ )
-         {
-             if( !strcmp( p_category->pp_infos[j]->psz_name, psz_name) )
-             {
-                 return strdup( p_category->pp_infos[j]->psz_value );
-             }
-         }
-     }
-     return strdup("");
-}
-
-/**
- * Get one info category (no p_playlist). Create it if it does not exist
- *
- * \param p_item the playlist item to get the category from
- * \param psz_cat the category we want
- * \return the info category.
- */
-info_category_t * playlist_ItemGetCategory( playlist_item_t *p_item,
-                                            const char *psz_cat )
-{
-    int i;
-    /* Search the category */
-    for( i = 0 ; i< p_item->input.i_categories ; i++ )
-    {
-        if( !strncmp( p_item->input.pp_categories[i]->psz_name, psz_cat,
-                      strlen(psz_cat) ) )
-        {
-            return p_item->input.pp_categories[i];
-        }
-    }
-
-    /* We did not find the category, create it */
-    return playlist_ItemCreateCategory( p_item, psz_cat );
-}
-
-/**
- * Create one info category for an item ( no p_playlist required )
- *
- * \param p_item the item to create category for
- * \param psz_cat the category we want to create
- * \return the info category.
- */
-info_category_t * playlist_ItemCreateCategory( playlist_item_t *p_item,
-                                               const char *psz_cat )
-{
-    info_category_t *p_cat;
-    int i;
-
-    for( i = 0 ; i< p_item->input.i_categories ; i++)
-    {
-        if( !strcmp( p_item->input.pp_categories[i]->psz_name,psz_cat ) )
-        {
-            return p_item->input.pp_categories[i];
-        }
-    }
-
-    if( ( p_cat = malloc( sizeof( info_category_t) ) ) == NULL )
-    {
-        return NULL;
-    }
-
-    p_cat->psz_name = strdup( psz_cat);
-    p_cat->i_infos = 0;
-    p_cat->pp_infos = NULL;
-
-    INSERT_ELEM( p_item->input.pp_categories, p_item->input.i_categories,
-                 p_item->input.i_categories, p_cat );
-
-    return p_cat;
-}
-
-/**
- * Add an info item
- *
- * \param p_playlist the playlist
- * \param i_item the position of the item on which we want
- *               the info ( -1 for current )
- * \param psz_cat the category we want to put the info into
- *                (gets created if needed)
- * \param psz_name the name of the info
- * \param psz_format printf-style info
- * \return VLC_SUCCESS
- */
-int playlist_AddInfo( playlist_t *p_playlist, int i_item,
-                      const char * psz_cat, const char *psz_name,
-                      const char * psz_format, ...)
-{
-    va_list args;
-    int i_ret;
-    playlist_item_t *p_item;
-    char *psz_value;
-
-    /* Sanity check */
-    if( p_playlist == NULL) return VLC_EGENERIC;
-
-    p_item = playlist_ItemGetByPos( p_playlist, i_item );
-    if( !p_item ) return VLC_ENOOBJ;
-
-    va_start( args, psz_format );
-    vasprintf( &psz_value, psz_format, args );
-    va_end( args );
-
-    vlc_mutex_lock( &p_item->input.lock );
-    i_ret = playlist_ItemAddInfo( p_item, psz_cat, psz_name, psz_value );
-    vlc_mutex_unlock( &p_item->input.lock );
-
-    free( psz_value );
-    return i_ret;
-}
-
-/**
- *  Add info to one item ( no need for p_playlist )
- *
- * \param p_item the item for which we add the info
- * \param psz_cat the category in which the info is stored
- * \param psz_name the name of the info
- * \param psz_format printf-style info
- * \return VLC_SUCCESS on success
-*/
-int playlist_ItemAddInfo( playlist_item_t *p_item,
-                          const char *psz_cat, const char *psz_name,
-                          const char *psz_format, ... )
-{
-    va_list args;
-    int i;
-    int i_new = VLC_TRUE;
-    info_t *p_info = NULL;
-    info_category_t *p_cat;
-
-    /* Find or create the category */
-    p_cat = playlist_ItemGetCategory( p_item, psz_cat );
-    if( p_cat == NULL) return VLC_EGENERIC;
-
-    for( i = 0 ; i< p_cat->i_infos ; i++)
-    {
-        if( !strcmp( p_cat->pp_infos[i]->psz_name, psz_name ) )
-        {
-            /* This info is not new */
-            p_info = p_cat->pp_infos[i];
-            i_new = VLC_FALSE;
-            break;
-        }
-    }
-
-    /* New info, create it */
-    if( p_info == NULL )
-    {
-        if( ( p_info = malloc( sizeof( info_t) ) ) == NULL )
-        {
-            return VLC_EGENERIC;
-        }
-        p_info->psz_name = strdup( psz_name);
-    }
-    else
-    {
-        if( p_info->psz_value != NULL ) free( p_info->psz_value ) ;
-    }
-
-    va_start( args, psz_format );
-    vasprintf( &p_info->psz_value, psz_format, args );
-    va_end( args );
-
-    /* If this is new, insert it */
-    if( i_new == VLC_TRUE )
-    {
-        INSERT_ELEM( p_cat->pp_infos, p_cat->i_infos, p_cat->i_infos, p_info );
-    }
-
-    return VLC_SUCCESS;
-}
index 852b1f3b0be04491a55c036a193328451ed9d47e..0c3ad26b868a14c6c11bd71b04fcaef90bb077c0 100644 (file)
@@ -27,6 +27,7 @@
 #include <vlc/vlc.h>
 #include <vlc/input.h>
 
+#include "vlc_input.h"
 #include "vlc_playlist.h"
 
 static void GuessType( input_item_t *p_item);
@@ -87,8 +88,6 @@ playlist_item_t * playlist_ItemNewWithType( vlc_object_t *p_obj,
     if( p_item->input.i_type == ITEM_TYPE_UNKNOWN )
         GuessType( &p_item->input );
 
-    playlist_ItemCreateCategory( p_item, _("General") );
-
     return p_item;
 }
 
@@ -276,8 +275,8 @@ int playlist_ItemSetDuration( playlist_item_t *p_item, mtime_t i_duration )
         {
             memcpy( psz_buffer, "--:--:--", sizeof("--:--:--") );
         }
-        playlist_ItemAddInfo( p_item, _("General") , _("Duration"),
-                              "%s", psz_buffer );
+        vlc_input_item_AddInfo( &p_item->input, _("General") , _("Duration"),
+                                "%s", psz_buffer );
 
         return VLC_SUCCESS;
     }
index 72e1d97627298a964e9d09512955d05231befdbc..186ca255b4f1a8180f8292f22b2c484c99a1024e 100644 (file)
@@ -237,7 +237,7 @@ int playlist_NodeGroup( playlist_t * p_playlist , int i_view,
         }
         else if ( i_mode == SORT_AUTHOR )
         {
-            psz_search = playlist_ItemGetInfo( pp_items[i],
+            psz_search = vlc_input_item_GetInfo( &pp_items[i]->input,
                             _("Meta-information"), _( "Artist" ) );
         }