Damian Ivereigh <damian at cisco.com> - ac3dec uninitialized data structure fix
Damien Fouilleul <damien.fouilleul at laposte.net> - DirectShow input improvements
Daniel Fischer <dan at subsignal dot org> - Shoutcast output support
-Daniel Stränger <vlc at schmaller d0t de> - M3U improvements
+Daniel Stränger <vlc at schmaller d0t de> - M3U and playlist improvements
David Kennedy <dkennedy at tinytoad.com> - X11 fullscreen patch
David Weber <david_weber at gmx.de> - Mac OS X interface design & graphics (v0.5.0)
Davor Orel <syntheticamac at yahoo.it> - Mac OS X icons
Øyvind Kolbu <oyvindk at world-online.no> - FreeBSD patches
Paul Mackerras <paulus at linuxcare.com.au> - AltiVec IDCT and motion
Philippe Van Hecke <philippe at belnet dot be> - SAP header hash patch
+Pierre Marc Dumuid <pierre.dumuid at adelaide dot edu dot au> - Playlist patches
Régis Duchesne <regis at via.ecp.fr> - original VLC code
Remco Poortinga <poortinga at telin.nl> - IPv6 multicast patch
Rene Gollent <rgollent at u.arizona.edu> - BeOS interface fix
#define VIEW_FIRST_SORTED 4
#define VIEW_S_AUTHOR 4
#define VIEW_S_GENRE 5
+#define VIEW_S_ALBUM 6
#define VIEW_LAST_SORTED 10
#define SORT_RANDOM 5
#define SORT_DURATION 6
#define SORT_TITLE_NUMERIC 7
+#define SORT_ALBUM 8
#define ORDER_NORMAL 0
#define ORDER_REVERSE 1
#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_SortAlbum(p, i) playlist_Sort( p, SORT_ALBUM, i)
#define playlist_SortGroup(p, i) playlist_Sort( p, SORT_GROUP, i)
VLC_EXPORT( int, playlist_Sort, ( playlist_t *, int, int) );
VLC_EXPORT( int, playlist_Move, ( playlist_t *, int, int ) );
/**
* Sort the playlist.
* \param p_playlist the playlist
- * \param i_mode: SORT_ID, SORT_TITLE, SORT_AUTHOR, SORT_RANDOM
+ * \param i_mode: SORT_ID, SORT_TITLE, SORT_AUTHOR, SORT_ALBUM, SORT_RANDOM
* \param i_type: ORDER_NORMAL or ORDER_REVERSE (reversed order)
* \return VLC_SUCCESS on success
*/
*
* \param p_playlist the playlist
* \param p_node the node to sort
- * \param i_mode: SORT_ID, SORT_TITLE, SORT_AUTHOR, SORT_RANDOM
+ * \param i_mode: SORT_ID, SORT_TITLE, SORT_AUTHOR, SORT_ALBUM, SORT_RANDOM
* \param i_type: ORDER_NORMAL or ORDER_REVERSE (reversed order)
* \return VLC_SUCCESS on success
*/
*
* \param p_playlist the playlist
* \param p_node the node to sort
- * \param i_mode: SORT_ID, SORT_TITLE, SORT_AUTHOR, SORT_RANDOM
+ * \param i_mode: SORT_ID, SORT_TITLE, SORT_AUTHOR, SORT_ALBUM, SORT_RANDOM
* \param i_type: ORDER_NORMAL or ORDER_REVERSE (reversed order)
* \return VLC_SUCCESS on success
*/
i_test = strcmp( psz_b, psz_a );
}
}
+ else if( i_mode == SORT_ALBUM )
+ {
+ char *psz_a = vlc_input_item_GetInfo(
+ &pp_items[i]->input,
+ _( "Meta-information"), _("Album/movie/show title") );
+ char *psz_b = vlc_input_item_GetInfo(
+ &pp_items[i_small]->input,
+ _( "Meta-information"), _("Album/movie/show title") );
+ if( pp_items[i]->i_children == -1 &&
+ pp_items[i_small]->i_children >= 0 )
+ {
+ i_test = 1;
+ }
+ else if( pp_items[i]->i_children >= 0 &&
+ pp_items[i_small]->i_children == -1 )
+ {
+ i_test = -1;
+ }
+ // both are nodes
+ else if( pp_items[i]->i_children >= 0 &&
+ pp_items[i_small]->i_children >= 0 )
+ {
+ i_test = strcasecmp( pp_items[i]->input.psz_name,
+ pp_items[i_small]->input.psz_name );
+ }
+ else if( psz_a == NULL && psz_b != NULL )
+ {
+ i_test = 1;
+ }
+ else if( psz_a != NULL && psz_b == NULL )
+ {
+ i_test = -1;
+ }
+ else if( psz_a == NULL && psz_b == NULL )
+ {
+ i_test = strcasecmp( pp_items[i]->input.psz_name,
+ pp_items[i_small]->input.psz_name );
+ }
+ else
+ {
+ i_test = strcmp( psz_b, psz_a );
+ }
+ }
else if( i_mode == SORT_TITLE_NODES_FIRST )
{
/* Alphabetic sort, all nodes first */
psz_search = vlc_input_item_GetInfo( &pp_items[i]->input,
_("Meta-information"), _( "Artist" ) );
}
+ else if ( i_mode == SORT_ALBUM )
+ {
+ psz_search = vlc_input_item_GetInfo( &pp_items[i]->input,
+ _("Meta-information"), _( "Album/movie/show title" ) );
+ }
else if ( i_mode == SORT_GENRE )
{
psz_search = vlc_input_item_GetInfo( &pp_items[i]->input,