From 767819540a2998ab640b9efb40e2c60af48b5a1d Mon Sep 17 00:00:00 2001 From: Derk-Jan Hartman Date: Sat, 10 Jan 2004 14:24:33 +0000 Subject: [PATCH] * Fixed some doxygen comments. * Added SORT_ID * remember last sorting and ordering in playlist struct --- include/vlc_playlist.h | 15 ++++++++------ src/playlist/item-ext.c | 46 ++++++++++++++++++++--------------------- src/playlist/playlist.c | 4 +++- src/playlist/sort.c | 14 ++++++++++--- 4 files changed, 46 insertions(+), 33 deletions(-) diff --git a/include/vlc_playlist.h b/include/vlc_playlist.h index d10d7ef697..78fa63e392 100644 --- a/include/vlc_playlist.h +++ b/include/vlc_playlist.h @@ -2,7 +2,7 @@ * vlc_playlist.h : Playlist functions ***************************************************************************** * Copyright (C) 1999-2004 VideoLAN - * $Id: vlc_playlist.h,v 1.22 2004/01/10 03:36:03 hartman Exp $ + * $Id: vlc_playlist.h,v 1.23 2004/01/10 14:24:33 hartman Exp $ * * Authors: Samuel Hocevar * @@ -120,14 +120,16 @@ struct playlist_t input_thread_t * p_input; /**< the input thread ascosiated * with the current item */ int i_last_id; /**< Last id to an item */ + int i_sort; /**< Last sorting applied to the playlist */ + int i_order; /**< Last ordering applied to the playlist */ /*@}*/ }; -#define SORT_TITLE 0 -#define SORT_AUTHOR 1 -#define SORT_GROUP 2 -#define SORT_RANDOM 3 -#define SORT_ID 4 +#define SORT_ID 0 +#define SORT_TITLE 1 +#define SORT_AUTHOR 2 +#define SORT_GROUP 3 +#define SORT_RANDOM 4 #define ORDER_NORMAL 0 #define ORDER_REVERSE 1 @@ -199,6 +201,7 @@ VLC_EXPORT( int, playlist_AddOption, (playlist_t *, int, const char *, ...) ); VLC_EXPORT( int, playlist_AddItemOption, (playlist_item_t *, const char *, ...) ); /* Playlist sorting */ +#define playlist_SortID(p, i) playlist_Sort( p, SORT_ID, i) #define playlist_SortTitle(p, i) playlist_Sort( p, SORT_TITLE, i) #define playlist_SortAuthor(p, i) playlist_Sort( p, SORT_AUTHOR, i) #define playlist_SortGroup(p, i) playlist_Sort( p, SORT_GROUP, i) diff --git a/src/playlist/item-ext.c b/src/playlist/item-ext.c index 96b1ae89f2..9f3fb2db06 100644 --- a/src/playlist/item-ext.c +++ b/src/playlist/item-ext.c @@ -2,7 +2,7 @@ * item-ext.c : Exported playlist item functions ***************************************************************************** * Copyright (C) 1999-2004 VideoLAN - * $Id: item-ext.c,v 1.6 2004/01/10 03:36:03 hartman Exp $ + * $Id: item-ext.c,v 1.7 2004/01/10 14:24:33 hartman Exp $ * * Authors: Samuel Hocevar * Clément Stenac @@ -151,11 +151,11 @@ playlist_item_t * playlist_GetItemById( playlist_t * p_playlist , int i_id ) * Set the group of a playlist item * * \param p_playlist the playlist - * \param i_item the item of which we change the group (position) + * \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 */ -int playlist_SetGroup( playlist_t *p_playlist, int i_item, int i_group ) +int playlist_SetGroup( playlist_t *p_playlist, int i_pos, int i_group ) { char *psz_group; /* Check the existence of the playlist */ @@ -164,12 +164,12 @@ int playlist_SetGroup( playlist_t *p_playlist, int i_item, int i_group ) return -1; } /* Get a correct item */ - if( i_item >= 0 && i_item < p_playlist->i_size ) + if( i_pos >= 0 && i_pos < p_playlist->i_size ) { } else if( p_playlist->i_size > 0 ) { - i_item = p_playlist->i_index; + i_pos = p_playlist->i_index; } else { @@ -179,7 +179,7 @@ int playlist_SetGroup( playlist_t *p_playlist, int i_item, int i_group ) psz_group = playlist_FindGroup( p_playlist , i_group ); if( psz_group != NULL) { - p_playlist->pp_items[i_item]->i_group = i_group ; + p_playlist->pp_items[i_pos]->i_group = i_group ; } return 0; } @@ -188,11 +188,11 @@ int playlist_SetGroup( playlist_t *p_playlist, int i_item, int i_group ) * Set the name of a playlist item * * \param p_playlist the playlist - * \param i_item the item of which we change the name + * \param i_pos the position of the item of which we change the name * \param psz_name the new name * \return VLC_SUCCESS on success, VLC_EGENERIC on failure */ -int playlist_SetName( playlist_t *p_playlist, int i_item, char *psz_name ) +int playlist_SetName( playlist_t *p_playlist, int i_pos, char *psz_name ) { vlc_value_t val; @@ -202,25 +202,25 @@ int playlist_SetName( playlist_t *p_playlist, int i_item, char *psz_name ) return -1; } /* Get a correct item */ - if( i_item >= 0 && i_item < p_playlist->i_size ) + if( i_pos >= 0 && i_pos < p_playlist->i_size ) { } else if( p_playlist->i_size > 0 ) { - i_item = p_playlist->i_index; + i_pos = p_playlist->i_index; } else { return -1; } - if( p_playlist->pp_items[i_item]->psz_name) - free( p_playlist->pp_items[i_item]->psz_name ); + if( p_playlist->pp_items[i_pos]->psz_name) + free( p_playlist->pp_items[i_pos]->psz_name ); if( psz_name ) - p_playlist->pp_items[i_item]->psz_name = strdup( psz_name ); + p_playlist->pp_items[i_pos]->psz_name = strdup( psz_name ); - val.b_bool = i_item; + val.b_bool = i_pos; var_Set( p_playlist, "item-change", val ); return VLC_SUCCESS; } @@ -229,11 +229,11 @@ int playlist_SetName( playlist_t *p_playlist, int i_item, char *psz_name ) * Set the duration of a playlist item * * \param p_playlist the playlist - * \param i_item the item of which we change the name + * \param i_pos the position of the item of which we change the duration * \param i_duration the duration to set * \return VLC_SUCCESS on success, VLC_EGENERIC on failure */ -int playlist_SetDuration( playlist_t *p_playlist, int i_item, mtime_t i_duration ) +int playlist_SetDuration( playlist_t *p_playlist, int i_pos, mtime_t i_duration ) { char psz_buffer[MSTRTIME_MAX_SIZE]; vlc_value_t val; @@ -244,19 +244,19 @@ int playlist_SetDuration( playlist_t *p_playlist, int i_item, mtime_t i_duration return -1; } /* Get a correct item */ - if( i_item >= 0 && i_item < p_playlist->i_size ) + if( i_pos >= 0 && i_pos < p_playlist->i_size ) { } else if( p_playlist->i_size > 0 ) { - i_item = p_playlist->i_index; + i_pos = p_playlist->i_index; } else { return VLC_EGENERIC; } - p_playlist->pp_items[i_item]->i_duration = i_duration; + p_playlist->pp_items[i_pos]->i_duration = i_duration; if( i_duration != -1 ) { secstotimestr( psz_buffer, i_duration/1000000 ); @@ -265,10 +265,10 @@ int playlist_SetDuration( playlist_t *p_playlist, int i_item, mtime_t i_duration { memcpy( psz_buffer, "--:--:--", sizeof("--:--:--") ); } - playlist_AddInfo( p_playlist, i_item, _("General") , _("Duration"), + playlist_AddInfo( p_playlist, i_pos, _("General") , _("Duration"), "%s", psz_buffer ); - val.b_bool = i_item; + val.b_bool = i_pos; var_Set( p_playlist, "item-change", val ); return VLC_SUCCESS; } @@ -457,7 +457,7 @@ int playlist_Enable( playlist_t * p_playlist, int i_pos ) * Disables a playlist group * * \param p_playlist the playlist to disable from. - * \param i_pos the id of the group to disable + * \param i_group the id of the group to disable * \return returns 0 */ int playlist_DisableGroup( playlist_t * p_playlist, int i_group) @@ -491,7 +491,7 @@ int playlist_DisableGroup( playlist_t * p_playlist, int i_group) * Enables a playlist group * * \param p_playlist the playlist to enable from. - * \param i_pos the id of the group to enable + * \param i_group the id of the group to enable * \return returns 0 */ int playlist_EnableGroup( playlist_t * p_playlist, int i_group) diff --git a/src/playlist/playlist.c b/src/playlist/playlist.c index 1209e96475..a8bb06c95d 100644 --- a/src/playlist/playlist.c +++ b/src/playlist/playlist.c @@ -2,7 +2,7 @@ * playlist.c : Playlist management functions ***************************************************************************** * Copyright (C) 1999-2004 VideoLAN - * $Id: playlist.c,v 1.72 2004/01/06 08:50:20 zorglub Exp $ + * $Id: playlist.c,v 1.73 2004/01/10 14:24:33 hartman Exp $ * * Authors: Samuel Hocevar * @@ -101,6 +101,8 @@ playlist_t * __playlist_Create ( vlc_object_t *p_parent ) p_playlist->pp_groups = NULL; p_playlist->i_last_group = 0; p_playlist->i_last_id = 0; + p_playlist->i_sort = SORT_ID; + p_playlist->i_order = ORDER_NORMAL; playlist_CreateGroup( p_playlist, "Normal" ); diff --git a/src/playlist/sort.c b/src/playlist/sort.c index 1e777f6ddd..374e6ce02d 100644 --- a/src/playlist/sort.c +++ b/src/playlist/sort.c @@ -2,7 +2,7 @@ * sort.c : Playlist sorting functions ***************************************************************************** * Copyright (C) 1999-2004 VideoLAN - * $Id: sort.c,v 1.6 2004/01/10 03:36:03 hartman Exp $ + * $Id: sort.c,v 1.7 2004/01/10 14:24:33 hartman Exp $ * * Authors: Clément Stenac * @@ -33,7 +33,7 @@ /** * Sort the playlist * \param p_playlist the playlist - * \param i_mode: SORT_TITLE, SORT_GROUP, SORT_AUTHOR, SORT_RANDOM SORT_ID + * \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 */ @@ -46,6 +46,9 @@ int playlist_Sort( playlist_t * p_playlist , int i_mode, int i_type ) vlc_mutex_lock( &p_playlist->object_lock ); + p_playlist->i_sort = i_mode; + p_playlist->i_order = i_type; + if( i_mode == SORT_RANDOM ) { for( i_position = 0; i_position < p_playlist->i_size ; i_position ++ ) @@ -77,7 +80,12 @@ int playlist_Sort( playlist_t * p_playlist , int i_mode, int i_type ) { int i_test = 0; - if( i_mode == SORT_TITLE ) + if( i_mode == SORT_ID ) + { + i_test = p_playlist->pp_items[i]->i_id, + p_playlist->pp_items[i_small]->i_id; + } + else if( i_mode == SORT_TITLE ) { i_test = strcasecmp( p_playlist->pp_items[i]->psz_name, p_playlist->pp_items[i_small]->psz_name ); -- 2.39.2