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

Reply via email to