]> git.sesse.net Git - vlc/commitdiff
* Doxygen doc fixes
authorClément Stenac <zorglub@videolan.org>
Fri, 23 Jan 2004 10:48:08 +0000 (10:48 +0000)
committerClément Stenac <zorglub@videolan.org>
Fri, 23 Jan 2004 10:48:08 +0000 (10:48 +0000)
* Add missing locks
* Duration sort

include/vlc_playlist.h
src/playlist/group.c
src/playlist/info.c
src/playlist/item-ext.c
src/playlist/loadsave.c
src/playlist/playlist.c
src/playlist/sort.c

index e70a8cbae03bc1f0f7e1b7c394d2a088d48001f3..9d80b914dde237e926b5ffff6152cc1e37e9fce0 100644 (file)
@@ -2,7 +2,7 @@
  * vlc_playlist.h : Playlist functions
  *****************************************************************************
  * Copyright (C) 1999-2004 VideoLAN
- * $Id: vlc_playlist.h,v 1.24 2004/01/11 00:45:06 zorglub Exp $
+ * $Id: vlc_playlist.h,v 1.25 2004/01/23 10:48:08 zorglub Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
@@ -139,6 +139,7 @@ struct playlist_t
 #define SORT_AUTHOR 2
 #define SORT_GROUP 3
 #define SORT_RANDOM 4
+#define SORT_DURATION 5
 
 #define ORDER_NORMAL 0
 #define ORDER_REVERSE 1
index 8af1d6886dcf399ea53f122d915bd4e601ed818e..04965a2b423e4771b4df7767da3d11700d287ce1 100644 (file)
@@ -2,7 +2,7 @@
  * playlist.c : Playlist groups management functions
  *****************************************************************************
  * Copyright (C) 1999-2004 VideoLAN
- * $Id: group.c,v 1.7 2004/01/11 00:45:06 zorglub Exp $
+ * $Id: group.c,v 1.8 2004/01/23 10:48:08 zorglub Exp $
  *
  * Authors: Clément Stenac <zorglub@videolan.org>
  *
@@ -48,7 +48,7 @@ playlist_group_t * playlist_CreateGroup(playlist_t * p_playlist, char *psz_name)
     {
         if( !strcasecmp( p_playlist->pp_groups[i]->psz_name , psz_name ) )
         {
-            msg_Info( p_playlist, "This group already exists !");
+            msg_Info( p_playlist, "this group already exists");
             return p_playlist->pp_groups[i];
         }
     }
@@ -81,7 +81,7 @@ playlist_group_t * playlist_CreateGroup(playlist_t * p_playlist, char *psz_name)
  *
  * \param p_playlist the playlist to remove the group from
  * \param i_id the identifier of the group to remove
- * \return 0 on success
+ * \return VLC_SUCCESS
  */
 int playlist_DeleteGroup( playlist_t *p_playlist, int i_id )
 {
@@ -131,16 +131,16 @@ char *playlist_FindGroup( playlist_t *p_playlist, int i_id )
 }
 
 /**
- * Find the Id of a group given its name
+ * Find the id of a group given its name
  *
  * \param p_playlist the playlist where to find the group
- * \param char * the name to search for
+ * \param psz_name the name to search for
  * \return the id of the group
  */
 int playlist_GroupToId( playlist_t *p_playlist, char *psz_name )
 {
     int i;
-    for( i=0 ; i< p_playlist->i_groups; i++ )
+    for( i = 0 ; i< p_playlist->i_groups; i++ )
     {
         if( p_playlist->pp_groups[i]->psz_name)
         {
@@ -150,5 +150,5 @@ int playlist_GroupToId( playlist_t *p_playlist, char *psz_name )
             }
         }
     }
-    return 0;
+    return VLC_SUCCESS;
 }
index 606fbd90a77e5311df4a40d2265694cb26fa4efb..37faaacd4608d03e301cefc529f29cf4152362b3 100644 (file)
@@ -2,7 +2,7 @@
  * info.c : Playlist info management
  *****************************************************************************
  * Copyright (C) 1999-2004 VideoLAN
- * $Id: info.c,v 1.5 2004/01/17 16:24:14 gbazin Exp $
+ * $Id: info.c,v 1.6 2004/01/23 10:48:08 zorglub Exp $
  *
  * Authors: Clément Stenac <zorglub@videolan.org>
  *
  * Get one special info
  *
  * \param p_playlist the playlist to get the info from
- * \param i_item the item on which we want the info ( -1 for current )
+ * \param i_item 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, NULL else
+ * \return the info value if any, an empty string else
 */
 char * playlist_GetInfo( playlist_t *p_playlist, int i_item,
-                      const char * psz_cat, const char *psz_name )
+                         const char * psz_cat, const char *psz_name )
 {
     /* Check the existence of the playlist */
     if( p_playlist == NULL)
@@ -69,7 +70,7 @@ char * playlist_GetInfo( playlist_t *p_playlist, int i_item,
  * \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, NULL else
+ * \return the info value if any, an empty string else
 */
 char * playlist_GetItemInfo( playlist_item_t *p_item,
                       const char * psz_cat, const char *psz_name )
@@ -94,10 +95,11 @@ char * playlist_GetItemInfo( playlist_item_t *p_item,
 }
 
 /**
- * Get one info category. Creates it if it does not exist
+ * Get one info category. Create it if it does not exist
  *
- * \param p_playlist the playlist to get the info from
- * \param i_item the item on which we want the info ( -1 for current )
+ * \param p_playlist the playlist to get the category from
+ * \param i_item the position of the item on which we want
+ *               the info ( -1 for current )
  * \param psz_cat the category we want
  * \return the info category.
  */
@@ -128,9 +130,9 @@ playlist_GetCategory( playlist_t *p_playlist, int i_item,
 }
 
 /**
- * Get one info category (no p_playlist). Creates it if it does not exist
+ * Get one info category (no p_playlist). Create it if it does not exist
  *
- * \param p_item the playlist to search categories in
+ * \param p_item the playlist item to get the category from
  * \param psz_cat the category we want
  * \return the info category.
  */
@@ -156,14 +158,15 @@ item_info_category_t *playlist_GetItemCategory( playlist_item_t *p_item,
 /**
  * Create one info category.
  *
- * \param p_playlist the playlist to get the info from
- * \param i_item the item on which we want the info ( -1 for current )
+ * \param p_playlist the playlist
+ * \param i_item the position of the item for which we create
+ *               the category ( -1 for current )
  * \param psz_cat the category we want to create
  * \return the info category.
  */
 item_info_category_t *
 playlist_CreateCategory( playlist_t *p_playlist, int i_item,
-                      const char * psz_cat )
+                         const char * psz_cat )
 {
     playlist_item_t *p_item = NULL;
 
@@ -193,8 +196,8 @@ playlist_CreateCategory( playlist_t *p_playlist, int i_item,
 /**
  * Create one info category for an item ( no p_playlist required )
  *
- * \param p_playlist the playlist to get the info from
- * \param i_item the item on which we want the info ( -1 for current )
+ * \param p_playlist the playlist
+ * \param p_item the item to create category for
  * \param psz_cat the category we want to create
  * \return the info category.
  */
@@ -230,11 +233,14 @@ playlist_CreateItemCategory( playlist_item_t *p_item, const char *psz_cat )
 /**
  * Add an info item
  *
- * \param p_playlist the playlist to get the info from
- * \param i_item the item on which we want the info ( -1 for current )
+ * \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)
- * \return the info category.
+ *                (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,
@@ -248,7 +254,7 @@ int playlist_AddInfo( playlist_t *p_playlist, int i_item,
     /* Check the existence of the playlist */
     if( p_playlist == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     /* Get a correct item */
@@ -262,7 +268,7 @@ int playlist_AddInfo( playlist_t *p_playlist, int i_item,
     }
     else
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     va_start( args, psz_format );
@@ -279,10 +285,11 @@ int playlist_AddInfo( playlist_t *p_playlist, int i_item,
 /**
  *  Add info to one 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 (must exist !)
+ * \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
- * \return the info value if any, NULL else
+ * \param psz_format printf-style info
+ * \return VLC_SUCCESS on success
 */
 int playlist_AddItemInfo( playlist_item_t *p_item,
                       const char *psz_cat, const char *psz_name,
@@ -298,7 +305,7 @@ int playlist_AddItemInfo( playlist_item_t *p_item,
     p_cat = playlist_GetItemCategory( p_item, psz_cat );
     if( p_cat == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     for( i = 0 ; i< p_cat->i_infos ; i++)
@@ -317,7 +324,7 @@ int playlist_AddItemInfo( playlist_item_t *p_item,
     {
         if( ( p_info = malloc( sizeof( item_info_t) ) ) == NULL )
         {
-            return -1;
+            return VLC_EGENERIC;
         }
         p_info->psz_name = strdup( psz_name);
     }
@@ -339,14 +346,15 @@ int playlist_AddItemInfo( playlist_item_t *p_item,
                      p_info );
     }
 
-    return 0;
+    return VLC_SUCCESS;
 }
 
 /**
  * Add a special info : option
  *
- * \param p_playlist the playlist to get the info from
- * \param i_item the item on which we want the info ( -1 for current )
+ * \param p_playlist the playlist
+ * \param i_item the position of the item on which we
+ *               add the option ( -1 for current )
  * \param psz_value the option to add
  * \return the info category.
  */
@@ -360,7 +368,7 @@ int playlist_AddOption( playlist_t *p_playlist, int i_item,
     /* Check the existence of the playlist */
     if( p_playlist == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     /* Get a correct item */
@@ -373,20 +381,20 @@ int playlist_AddOption( playlist_t *p_playlist, int i_item,
     }
     else
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     p_cat = playlist_GetCategory( p_playlist, i_item , "Options" );
 
     if( p_cat == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     if( ( p_info = malloc( sizeof( item_info_t) ) ) == NULL )
     {
         msg_Err( p_playlist, "out of memory" );
-        return -1;
+        return VLC_EGENERIC;
     }
 
     p_info->psz_name = strdup( "option" );
@@ -397,7 +405,7 @@ int playlist_AddOption( playlist_t *p_playlist, int i_item,
 
     INSERT_ELEM( p_cat->pp_infos, p_cat->i_infos, p_cat->i_infos, p_info );
 
-    return 0;
+    return VLC_SUCCESS;
 }
 
 /**
@@ -417,12 +425,12 @@ int playlist_AddItemOption( playlist_item_t *p_item,
     p_cat = playlist_GetItemCategory( p_item, "Options" );
     if( p_cat == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     if( ( p_info = malloc( sizeof( item_info_t) ) ) == NULL )
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     p_info->psz_name = strdup( "option" );
@@ -433,5 +441,5 @@ int playlist_AddItemOption( playlist_item_t *p_item,
 
     INSERT_ELEM( p_cat->pp_infos, p_cat->i_infos, p_cat->i_infos, p_info );
 
-    return 0;
+    return VLC_SUCCESS;
 }
index 5bc777b1dfe35f2f2fda20d0c9a73f362b141b56..5108b9fbc1b715f5c80418382ea0deb6da8d8107 100644 (file)
@@ -2,7 +2,7 @@
  * item-ext.c : Exported playlist item functions
  *****************************************************************************
  * Copyright (C) 1999-2004 VideoLAN
- * $Id: item-ext.c,v 1.10 2004/01/17 14:08:37 sigmunau Exp $
+ * $Id: item-ext.c,v 1.11 2004/01/23 10:48:08 zorglub Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *          Clément Stenac <zorglub@videolan.org>
@@ -32,7 +32,7 @@
 #include "vlc_playlist.h"
 
 /**
- * Add a MRL into the playlist.
+ * Add a MRL into the playlist, duration given.
  *
  * \param p_playlist the playlist to add into
  * \param psz_uri the mrl to add to the playlist
@@ -102,7 +102,7 @@ int playlist_Add( playlist_t *p_playlist, const char * psz_uri,
  * Search the position of an item by its id
  * \param p_playlist the playlist
  * \param i_id the id to find
- * \return the position, or -1 on failure
+ * \return the position, or VLC_EGENERIC on failure
  */
 int playlist_GetPositionById( playlist_t * p_playlist , int i_id )
 {
@@ -114,7 +114,7 @@ int playlist_GetPositionById( playlist_t * p_playlist , int i_id )
             return i;
         }
     }
-    return -1;
+    return VLC_EGENERIC;
 }
 
 
@@ -149,16 +149,20 @@ playlist_item_t * playlist_GetItemById( playlist_t * p_playlist , int i_id )
  * \param p_playlist the playlist
  * \param i_pos the postition of the item of which we change the group
  * \param i_group the new group
- * \return 0 on success, -1 on failure
+ * \return VLC_SUCCESS on success, VLC_EGENERIC on failure
  */
 int playlist_SetGroup( playlist_t *p_playlist, int i_pos, int i_group )
 {
     char *psz_group;
+    vlc_value_t val;
     /* Check the existence of the playlist */
     if( p_playlist == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
+
+    vlc_mutex_lock( &p_playlist->object_lock );
+
     /* Get a correct item */
     if( i_pos >= 0 && i_pos < p_playlist->i_size )
     {
@@ -169,7 +173,7 @@ int playlist_SetGroup( playlist_t *p_playlist, int i_pos, int i_group )
     }
     else
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     psz_group = playlist_FindGroup( p_playlist , i_group );
@@ -177,7 +181,11 @@ int playlist_SetGroup( playlist_t *p_playlist, int i_pos, int i_group )
     {
         p_playlist->pp_items[i_pos]->i_group = i_group ;
     }
-    return 0;
+    vlc_mutex_unlock( &p_playlist->object_lock );
+    val.b_bool = i_pos;
+    var_Set( p_playlist, "item-change", val );
+
+    return VLC_SUCCESS;
 }
 
 /**
@@ -195,8 +203,11 @@ int playlist_SetName( playlist_t *p_playlist, int i_pos, char *psz_name )
     /* Check the existence of the playlist */
     if( p_playlist == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
+
+    vlc_mutex_lock( &p_playlist->object_lock );
+
     /* Get a correct item */
     if( i_pos >= 0 && i_pos < p_playlist->i_size )
     {
@@ -207,7 +218,7 @@ int playlist_SetName( playlist_t *p_playlist, int i_pos, char *psz_name )
     }
     else
     {
-        return -1;
+        return VLC_EGENERIC;
     }
 
     if( p_playlist->pp_items[i_pos]->psz_name)
@@ -216,6 +227,8 @@ int playlist_SetName( playlist_t *p_playlist, int i_pos, char *psz_name )
     if( psz_name )
         p_playlist->pp_items[i_pos]->psz_name = strdup( psz_name );
 
+    vlc_mutex_unlock( &p_playlist->object_lock );
+
     val.b_bool = i_pos;
     var_Set( p_playlist, "item-change", val );
     return VLC_SUCCESS;
@@ -237,8 +250,11 @@ int playlist_SetDuration( playlist_t *p_playlist, int i_pos, mtime_t i_duration
     /* Check the existence of the playlist */
     if( p_playlist == NULL)
     {
-        return -1;
+        return VLC_EGENERIC;
     }
+
+    vlc_mutex_lock( &p_playlist->object_lock );
+
     /* Get a correct item */
     if( i_pos >= 0 && i_pos < p_playlist->i_size )
     {
@@ -264,6 +280,8 @@ int playlist_SetDuration( playlist_t *p_playlist, int i_pos, mtime_t i_duration
     playlist_AddInfo( p_playlist, i_pos, _("General") , _("Duration"),
                       "%s", psz_buffer );
 
+    vlc_mutex_unlock( &p_playlist->object_lock );
+
     val.b_bool = i_pos;
     var_Set( p_playlist, "item-change", val );
     return VLC_SUCCESS;
@@ -533,7 +551,7 @@ int playlist_EnableGroup( playlist_t * p_playlist, int i_group)
  * \param i_pos the position of the item to move
  * \param i_newpos the position of the item that will be behind the moved item
  *        after the move
- * \return returns 0
+ * \return returns VLC_SUCCESS
  */
 int playlist_Move( playlist_t * p_playlist, int i_pos, int i_newpos)
 {
@@ -592,5 +610,5 @@ int playlist_Move( playlist_t * p_playlist, int i_pos, int i_newpos)
     val.b_bool = VLC_TRUE;
     var_Set( p_playlist, "intf-change", val );
 
-    return 0;
+    return VLC_SUCCESS;
 }
index 064f0533b1eb90db4b61b703b1ee6e45cb4affd8..46583ca992d391c798378655c940805a5f1e9919 100644 (file)
@@ -2,7 +2,7 @@
  * loadsave.c : Playlist loading / saving functions
  *****************************************************************************
  * Copyright (C) 1999-2004 VideoLAN
- * $Id: loadsave.c,v 1.6 2004/01/22 19:35:14 gbazin Exp $
+ * $Id: loadsave.c,v 1.7 2004/01/23 10:48:08 zorglub Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
 
 
 /**
- * Import a playlist file
- *
  * Import a certain playlist file into the playlist
+ *
  * \param p_playlist the playlist to which the new items will be added
  * \param psz_filename the name of the playlistfile to import
- * \return 0 on succes
+ * \return VLC_SUCCESS on success
  */
 int playlist_Import( playlist_t * p_playlist, const char *psz_filename )
 {
@@ -55,40 +54,31 @@ int playlist_Import( playlist_t * p_playlist, const char *psz_filename )
     int i_id;
 
     msg_Dbg( p_playlist, "clearing playlist");
-
-    /* Create our "fake" playlist item */
     playlist_Clear( p_playlist );
 
 
     psz_uri = (char *)malloc(sizeof(char)*strlen(psz_filename) + 17 );
     sprintf( psz_uri, "file/playlist://%s", psz_filename);
 
+    vlc_mutex_lock( &p_playlist->object_lock );
     i_id = playlist_Add( p_playlist, psz_uri, psz_uri,
                   PLAYLIST_INSERT | PLAYLIST_GO , PLAYLIST_END);
 
     p_item = playlist_GetItemById( p_playlist, i_id );
     p_item->b_autodeletion = VLC_TRUE;
 
-    //p_playlist->i_index = 0;
-
-/*
- *     if( p_item )
-    {
-        p_playlist->p_input = input_CreateThread( p_playlist, p_item );
-    }
-    */
+    vlc_mutex_unlock( &p_playlist->object_lock );
 
     return VLC_SUCCESS;
 }
 
 /**
- * Export a playlist to a file
- *
  * Export a playlist to a certain type of playlistfile
+ *
  * \param p_playlist the playlist to export
  * \param psz_filename the location where the exported file will be saved
  * \param psz_type the type of playlist file to create.
- * \return 0 on succes
+ * \return VLC_SUCCESS on success
  */
 int playlist_Export( playlist_t * p_playlist, const char *psz_filename ,
                      const char *psz_type)
@@ -96,13 +86,13 @@ int playlist_Export( playlist_t * p_playlist, const char *psz_filename ,
     module_t *p_module;
     playlist_export_t *p_export;
 
-    msg_Info( p_playlist, "Saving playlist to file %s", psz_filename );
+    msg_Info( p_playlist, "saving playlist to file %s", psz_filename );
 
     /* Prepare the playlist_export_t structure */
     p_export = (playlist_export_t *)malloc( sizeof(playlist_export_t) );
     if( !p_export)
     {
-        msg_Err( p_playlist, "Out of memory");
+        msg_Err( p_playlist, "out of memory");
         return VLC_ENOMEM;
     }
     p_export->p_file = fopen( psz_filename, "wt" );
index 0483975ebfa00a183666e81c05c7eff146501018..d5d8280185528beda4b1be33b9089abe9256f61c 100644 (file)
@@ -2,7 +2,7 @@
  * playlist.c : Playlist management functions
  *****************************************************************************
  * Copyright (C) 1999-2004 VideoLAN
- * $Id: playlist.c,v 1.74 2004/01/11 00:11:56 zorglub Exp $
+ * $Id: playlist.c,v 1.75 2004/01/23 10:48:08 zorglub Exp $
  *
  * Authors: Samuel Hocevar <sam@zoy.org>
  *
@@ -35,7 +35,6 @@
 #include "vlc_playlist.h"
 
 #define PLAYLIST_FILE_HEADER_0_5  "# vlc playlist file version 0.5"
-#define PLAYLIST_FILE_HEADER_0_6  "# vlc playlist file version 0.6"
 
 /*****************************************************************************
  * Local prototypes
index 90a5c89765e4f1d0ea65c6eb96b8977f284a3630..ecf1346e4d2c7ccf97ce3bcfe14d8f26542686e2 100644 (file)
@@ -2,7 +2,7 @@
  * sort.c : Playlist sorting functions
  *****************************************************************************
  * Copyright (C) 1999-2004 VideoLAN
- * $Id: sort.c,v 1.8 2004/01/10 23:44:19 hartman Exp $
+ * $Id: sort.c,v 1.9 2004/01/23 10:48:08 zorglub Exp $
  *
  * Authors: Clément Stenac <zorglub@videolan.org>
  *
@@ -35,7 +35,7 @@
  * \param p_playlist the playlist
  * \param i_mode: SORT_ID, SORT_TITLE, SORT_GROUP, SORT_AUTHOR, SORT_RANDOM
  * \param i_type: ORDER_NORMAL or ORDER_REVERSE (reversed order)
- * \return 0 on success
+ * \return VLC_SUCCESS on success
  */
 int playlist_Sort( playlist_t * p_playlist , int i_mode, int i_type )
 {
@@ -70,7 +70,7 @@ int playlist_Sort( playlist_t * p_playlist , int i_mode, int i_type )
         /* Notify the interfaces */
         var_Set( p_playlist, "intf-change", val );
 
-        return 0;
+        return VLC_SUCCESS;
     }
 
     for( i_position = 0; i_position < p_playlist->i_size -1 ; i_position ++ )
@@ -95,6 +95,11 @@ int playlist_Sort( playlist_t * p_playlist , int i_mode, int i_type )
                 i_test = p_playlist->pp_items[i]->i_group -
                                  p_playlist->pp_items[i_small]->i_group;
             }
+            else if( i_mode == SORT_DURATION )
+            {
+                i_test = p_playlist->pp_items[i]->i_duration -
+                                 p_playlist->pp_items[i_small]->i_duration;
+            }
             else if( i_mode == SORT_AUTHOR )
             {
                  i_test = strcasecmp(
@@ -125,5 +130,5 @@ int playlist_Sort( playlist_t * p_playlist , int i_mode, int i_type )
     /* Notify the interfaces  */
     var_Set( p_playlist, "intf-change", val );
 
-    return 0;
+    return VLC_SUCCESS;
 }