Enlightenment CVS committal Author : moom16 Project : e17 Module : apps/eclair
Dir : e17/apps/eclair/src Modified Files: eclair_dialogs.c eclair_playlist.c Log Message: * Finish shuffling support =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_dialogs.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -3 -r1.10 -r1.11 --- eclair_dialogs.c 10 Jun 2005 18:30:46 -0000 1.10 +++ eclair_dialogs.c 10 Jun 2005 21:04:00 -0000 1.11 @@ -26,6 +26,7 @@ static void _eclair_dialogs_menu_on_remove_selected(GtkWidget *widget, gpointer data); static void _eclair_dialogs_menu_on_remove_unselected(GtkWidget *widget, gpointer data); static void _eclair_dialogs_menu_on_remove_all(GtkWidget *widget, gpointer data); +static void _eclair_dialogs_menu_on_shuffle_mode(GtkWidget *widget, gpointer data); //Initialize dialogs manager void eclair_dialogs_init(Eclair_Dialogs_Manager *dialogs_manager, Eclair *eclair) @@ -164,6 +165,7 @@ glade_xml_signal_connect_data(dialogs_manager->menu_xml, "remove_selected_handler", G_CALLBACK(_eclair_dialogs_menu_on_remove_selected), eclair); glade_xml_signal_connect_data(dialogs_manager->menu_xml, "remove_unselected_handler", G_CALLBACK(_eclair_dialogs_menu_on_remove_unselected), eclair); glade_xml_signal_connect_data(dialogs_manager->menu_xml, "remove_all_handler", G_CALLBACK(_eclair_dialogs_menu_on_remove_all), eclair); + glade_xml_signal_connect_data(dialogs_manager->menu_xml, "shuffle_mode_handler", G_CALLBACK(_eclair_dialogs_menu_on_shuffle_mode), eclair); g_timeout_add(50, _eclair_dialogs_update, dialogs_manager); @@ -404,3 +406,11 @@ if ((eclair = data)) eclair_playlist_empty(&eclair->playlist); } + +static void _eclair_dialogs_menu_on_shuffle_mode(GtkWidget *widget, gpointer data) +{ + Eclair *eclair; + + if ((eclair = data)) + eclair_playlist_set_shuffle(&eclair->playlist, gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(widget))); +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_playlist.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -3 -r1.14 -r1.15 --- eclair_playlist.c 10 Jun 2005 18:30:46 -0000 1.14 +++ eclair_playlist.c 10 Jun 2005 21:04:00 -0000 1.15 @@ -77,7 +77,7 @@ Eclair_Media_File *media_file; Evas_List *l; - if (!playlist) + if (!playlist || !playlist->shuffle) return; for (l = playlist->playlist; l; l = l->next) @@ -86,6 +86,12 @@ media_file->shuffle_node = NULL; } playlist->shuffle_list = evas_list_free(playlist->shuffle_list); + + if (playlist->current) + { + evas_list_append(playlist->shuffle_list, playlist->current); + playlist->current->shuffle_node = evas_list_last(playlist->shuffle_list); + } } //Called every 50ms and destroy the removed media files @@ -145,24 +151,6 @@ return evas_list_data(playlist->current); } -/* -//Return the media file just before the active media file -Eclair_Media_File *eclair_playlist_prev_media_file(Eclair_Playlist *playlist) -{ - if (!playlist) - return NULL; - - return evas_list_data(evas_list_prev(playlist->current)); -}*/ -/* -//Return the media file just after the active media file -Eclair_Media_File *eclair_playlist_next_media_file(Eclair_Playlist *playlist) -{ - if (!playlist) - return NULL; - - return evas_list_data(evas_list_next(playlist->current)); -}*/ //Add recursively a directory Evas_Bool eclair_playlist_add_dir(Eclair_Playlist *playlist, char *dir, Evas_Bool update_container, Evas_Bool autoplay) @@ -348,6 +336,8 @@ l = l->next; } + eclair_playlist_reset_shuffle_list(playlist); + if (playlist->eclair && playlist->eclair->playlist_container) eclair_playlist_container_update(playlist->eclair->playlist_container); } @@ -369,6 +359,8 @@ l = l->next; } + eclair_playlist_reset_shuffle_list(playlist); + if (playlist->eclair && playlist->eclair->playlist_container) eclair_playlist_container_update(playlist->eclair->playlist_container); } @@ -385,6 +377,8 @@ playlist->playlist = evas_list_free(playlist->playlist); playlist->current = NULL; + eclair_playlist_reset_shuffle_list(playlist); + if (playlist->eclair && playlist->eclair->playlist_container) eclair_playlist_container_update(playlist->eclair->playlist_container); } @@ -410,11 +404,12 @@ return; previous_media_file = evas_list_data(playlist->current); + if (!playlist->current) + eclair_playlist_reset_shuffle_list(playlist); playlist->current = list; eclair_media_file_update(playlist->eclair, previous_media_file); if (list) { - printf("Scroll_to %p %p!\n", list, playlist->eclair->playlist_container); eclair_playlist_container_scroll_to_list(playlist->eclair->playlist_container, list); eclair_media_file_update(playlist->eclair, list->data); if ((new_current_file = list->data) && !new_current_file->shuffle_node && playlist->shuffle) ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs