Changeset 37c3eadcd507bc123f74379fcc28035691436b4b
- Timestamp:
- 26/11/03 11:45:21 (5 years ago)
- git-parent:
- Files:
-
- include/vlc_playlist.h (modified) (3 diffs)
- modules/gui/wxwindows/playlist.cpp (modified) (5 diffs)
- src/playlist/sort.c (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
include/vlc_playlist.h
rc7bc1ac r37c3ead 3 3 ***************************************************************************** 4 4 * Copyright (C) 1999, 2000, 2001, 2002 VideoLAN 5 * $Id: vlc_playlist.h,v 1.1 6 2003/11/12 08:10:21 zorglub Exp $5 * $Id: vlc_playlist.h,v 1.17 2003/11/26 10:45:21 zorglub Exp $ 6 6 * 7 7 * Authors: Samuel Hocevar <sam@zoy.org> … … 97 97 }; 98 98 99 #define SORT_TITLE 0 100 #define SORT_AUTHOR 1 101 #define SORT_GROUP 2 102 #define SORT_RANDOM 3 103 99 104 #define SORT_NORMAL 0 100 105 #define SORT_REVERSE 1 … … 133 138 VLC_EXPORT( int, playlist_GroupToId, (playlist_t *, char * ) ); 134 139 135 VLC_EXPORT( int, playlist_SortTitle, ( playlist_t *, int) ); 136 VLC_EXPORT( int, playlist_SortAuthor, ( playlist_t *, int) ); 137 VLC_EXPORT( int, playlist_SortGroup, ( playlist_t *, int) ); 140 #define playlist_SortTitle(p, i) playlist_Sort( p, SORT_TITLE, i) 141 #define playlist_SortAuthor(p, i) playlist_Sort( p, SORT_AUTHOR, i) 142 #define playlist_SortGroup(p, i) playlist_Sort( p, SORT_GROUP, i) 143 144 VLC_EXPORT( int, playlist_Sort, ( playlist_t *, int, int) ); 138 145 139 146 VLC_EXPORT( int, playlist_Move, ( playlist_t *, int, int ) ); modules/gui/wxwindows/playlist.cpp
rea1b641 r37c3ead 3 3 ***************************************************************************** 4 4 * Copyright (C) 2000-2001 VideoLAN 5 * $Id: playlist.cpp,v 1.2 6 2003/11/21 18:55:40 gbazinExp $5 * $Id: playlist.cpp,v 1.27 2003/11/26 10:45:21 zorglub Exp $ 6 6 * 7 7 * Authors: Olivier Teuli� <ipkiss@via.ecp.fr> … … 60 60 SortGroup_Event, 61 61 RSortGroup_Event, 62 Randomize_Event, 62 63 63 64 EnableSelection_Event, … … 99 100 EVT_MENU(SortGroup_Event, Playlist::OnSort) 100 101 EVT_MENU(RSortGroup_Event, Playlist::OnSort) 102 103 EVT_MENU(Randomize_Event, Playlist::OnSort) 101 104 102 105 EVT_MENU(EnableSelection_Event, Playlist::OnEnableSelection) … … 181 184 /* Create our "Sort" menu */ 182 185 wxMenu *sort_menu = new wxMenu; 183 sort_menu->Append( SortTitle_Event, wxU(_(" &Sort bytitle")) );186 sort_menu->Append( SortTitle_Event, wxU(_("Sort by &title")) ); 184 187 sort_menu->Append( RSortTitle_Event, wxU(_("&Reverse sort by title")) ); 185 188 sort_menu->AppendSeparator(); 186 sort_menu->Append( SortAuthor_Event, wxU(_(" &Sort byauthor")) );189 sort_menu->Append( SortAuthor_Event, wxU(_("Sort by &author")) ); 187 190 sort_menu->Append( RSortAuthor_Event, wxU(_("&Reverse sort by author")) ); 188 191 sort_menu->AppendSeparator(); 189 sort_menu->Append( SortGroup_Event, wxU(_(" &Sort bygroup")) );192 sort_menu->Append( SortGroup_Event, wxU(_("Sort by &group")) ); 190 193 sort_menu->Append( RSortGroup_Event, wxU(_("&Reverse sort by group")) ); 194 sort_menu->AppendSeparator(); 195 sort_menu->Append( Randomize_Event, wxU(_("&Randomize Playlist")) ); 191 196 192 197 /* Create our "Selection" menu */ … … 661 666 case RSortGroup_Event: 662 667 playlist_SortGroup( p_playlist , 1 ); 668 break; 669 case Randomize_Event: 670 playlist_Sort( p_playlist , SORT_RANDOM, SORT_NORMAL ); 663 671 break; 664 672 } src/playlist/sort.c
rfd616f9 r37c3ead 3 3 ***************************************************************************** 4 4 * Copyright (C) 1999-2001 VideoLAN 5 * $Id: sort.c,v 1. 1 2003/10/29 18:00:46zorglub Exp $5 * $Id: sort.c,v 1.2 2003/11/26 10:45:21 zorglub Exp $ 6 6 * 7 7 * Authors: Cl�nt Stenac <zorglub@videolan.org> … … 32 32 33 33 /** 34 * Sort the playlist by title34 * Sort the playlist 35 35 * \param p_playlist the playlist 36 * \param i_mode: SORT_TITLE, SORT_GROUP, SORT_AUTHOR, SORT_RANDOM 36 37 * \param i_type: SORT_NORMAL or SORT_REVERSE (reversed order) 37 38 * \return 0 on success 38 39 */ 39 int playlist_Sort Title( playlist_t * p_playlist, int i_type )40 int playlist_Sort( playlist_t * p_playlist , int i_mode, int i_type ) 40 41 { 41 42 int i , i_small , i_position; … … 44 45 vlc_mutex_lock( &p_playlist->object_lock ); 45 46 47 if( i_mode == SORT_RANDOM ) 48 { 49 for( i_position = 0; i_position < p_playlist->i_size ; i_position ++ ) 50 { 51 int i_new = rand() % (p_playlist->i_size - 1); 52 53 /* Keep the correct current index */ 54 if( i_new == p_playlist->i_index ) 55 p_playlist->i_index = i_position; 56 else if( i_position == p_playlist->i_index ) 57 p_playlist->i_index = i_new; 58 59 p_temp = p_playlist->pp_items[i_position]; 60 p_playlist->pp_items[i_position] = p_playlist->pp_items[i_new]; 61 p_playlist->pp_items[i_new] = p_temp; 62 } 63 vlc_mutex_unlock( &p_playlist->object_lock ); 64 65 return 0; 66 } 67 46 68 for( i_position = 0; i_position < p_playlist->i_size -1 ; i_position ++ ) 47 69 { … … 49 71 for( i = i_position + 1 ; i< p_playlist->i_size ; i++) 50 72 { 51 int i_test ;73 int i_test = 0; 52 74 53 i_test = strcasecmp( p_playlist->pp_items[i]->psz_name, 75 if( i_mode == SORT_TITLE ) 76 { 77 i_test = strcasecmp( p_playlist->pp_items[i]->psz_name, 54 78 p_playlist->pp_items[i_small]->psz_name ); 79 } 80 else if( i_mode == SORT_GROUP ) 81 { 82 i_test = p_playlist->pp_items[i]->i_group - 83 p_playlist->pp_items[i_small]->i_group; 84 } 85 else if( i_mode == SORT_AUTHOR ) 86 { 87 i_test = strcasecmp( p_playlist->pp_items[i]->psz_author, 88 p_playlist->pp_items[i_small]->psz_author ); 89 } 55 90 56 91 if( ( i_type == SORT_NORMAL && i_test < 0 ) || … … 74 109 return 0; 75 110 } 76 77 /**78 * Sort the playlist by author79 * \param p_playlist the playlist80 * \param i_type: SORT_NORMAL or SORT_REVERSE (reversed order)81 * \return 0 on success82 */83 int playlist_SortAuthor( playlist_t * p_playlist , int i_type )84 {85 int i , i_small , i_position;86 playlist_item_t *p_temp;87 88 vlc_mutex_lock( &p_playlist->object_lock );89 90 for( i_position = 0; i_position < p_playlist->i_size -1 ; i_position ++ )91 {92 i_small = i_position;93 for( i = i_position + 1 ; i< p_playlist->i_size ; i++)94 {95 int i_test;96 97 i_test = strcasecmp( p_playlist->pp_items[i]->psz_author,98 p_playlist->pp_items[i_small]->psz_author );99 100 if( ( i_type == SORT_NORMAL && i_test < 0 ) ||101 ( i_type == SORT_REVERSE && i_test > 0 ) )102 {103 i_small = i;104 }105 }106 /* Keep the correct current index */107 if( i_small == p_playlist->i_index )108 p_playlist->i_index = i_position;109 else if( i_position == p_playlist->i_index )110 p_playlist->i_index = i_small;111 112 p_temp = p_playlist->pp_items[i_position];113 p_playlist->pp_items[i_position] = p_playlist->pp_items[i_small];114 p_playlist->pp_items[i_small] = p_temp;115 }116 vlc_mutex_unlock( &p_playlist->object_lock );117 118 return 0;119 }120 121 int playlist_SortGroup( playlist_t * p_playlist , int i_type )122 {123 int i , i_small , i_position;124 playlist_item_t *p_temp;125 126 vlc_mutex_lock( &p_playlist->object_lock );127 128 for( i_position = 0; i_position < p_playlist->i_size -1 ; i_position ++ )129 {130 i_small = i_position;131 for( i = i_position + 1 ; i< p_playlist->i_size ; i++)132 {133 int i_test;134 135 i_test = p_playlist->pp_items[i]->i_group -136 p_playlist->pp_items[i_small]->i_group;137 138 if( ( i_type == SORT_NORMAL && i_test < 0 ) ||139 ( i_type == SORT_REVERSE && i_test > 0 ) )140 {141 i_small = i;142 }143 }144 /* Keep the correct current index */145 if( i_small == p_playlist->i_index )146 p_playlist->i_index = i_position;147 else if( i_position == p_playlist->i_index )148 p_playlist->i_index = i_small;149 150 p_temp = p_playlist->pp_items[i_position];151 p_playlist->pp_items[i_position] = p_playlist->pp_items[i_small];152 p_playlist->pp_items[i_small] = p_temp;153 }154 vlc_mutex_unlock( &p_playlist->object_lock );155 156 return 0;157 }
