Enlightenment CVS committal

Author  : moom16
Project : e17
Module  : apps/eclair

Dir     : e17/apps/eclair/src


Modified Files:
        eclair.c eclair.h eclair_callbacks.c eclair_cover.c 
        eclair_cover.h eclair_media_file.c eclair_meta_tag.c 
        eclair_playlist.c eclair_private.h 


Log Message:

* Edje: Use a clip to change the alpha of the swallowed cover instead of using 
send_message
* Fix cover transition bugs
* Some default theme improvement
* Synchronize the cover and the meta tag threads with the main thread to avoid 
aving files that have not been scanned for meta tags or cover
* Many cleanups and framework


===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- eclair.c    3 May 2005 08:57:36 -0000       1.7
+++ eclair.c    3 May 2005 20:36:33 -0000       1.8
@@ -60,10 +60,10 @@
    _eclair_gui_create_window(eclair);
    _eclair_video_create_window(eclair);
    eclair_playlist_init(&eclair->playlist, eclair);
-   eclair_current_file_set(eclair, NULL);
    eclair_subtitles_init(&eclair->subtitles);
    eclair_meta_tag_init(&eclair->meta_tag_manager, eclair);
    eclair_cover_init(&eclair->cover_manager, eclair);
+   eclair_update_current_file_info(eclair, NULL);
    
    for (l = filenames; l; l = l->next)
       eclair_playlist_add_media_file(&eclair->playlist, (char *)l->data);
@@ -129,8 +129,8 @@
    eclair_subtitles_display_current_subtitle(&eclair->subtitles, position, 
eclair->subtitles_object);
 }
 
-//Set the file as current
-void eclair_current_file_set(Eclair *eclair, Eclair_Media_File *file)
+//Update the gui infos about the current media file
+void eclair_update_current_file_info(Eclair *eclair, Eclair_Media_File 
*current_file)
 {   
    char *window_title;
    char *artist_title_string;
@@ -139,16 +139,17 @@
    if (!eclair)
       return;
    
+   //Update the name of the current file
    if (eclair->gui_object)
    {
-      if (file)
+      if (current_file)
       {
-         if ((artist_title_string = 
eclair_utils_mediafile_to_artist_title_string(file)))
+         if ((artist_title_string = 
eclair_utils_mediafile_to_artist_title_string(current_file)))
          {
             edje_object_part_text_set(eclair->gui_object, 
"current_media_name", artist_title_string);
             free(artist_title_string);
          }
-         else if ((filename = eclair_utils_path_to_filename(file->path)))
+         else if ((filename = 
eclair_utils_path_to_filename(current_file->path)))
             edje_object_part_text_set(eclair->gui_object, 
"current_media_name", filename);
          else
             edje_object_part_text_set(eclair->gui_object, 
"current_media_name", "No media opened");
@@ -157,14 +158,15 @@
          edje_object_part_text_set(eclair->gui_object, "current_media_name", 
"No media opened");
    }
 
+   //Update the title of the video window
    if (eclair->video_window)
    {
-      if (file)
+      if (current_file)
       {
-         if (file->path)
+         if (current_file->path)
          {
-            window_title = (char *)malloc(strlen(file->path) + strlen("eclair: 
") + 1);
-            sprintf(window_title, "eclair: %s", file->path);
+            window_title = (char *)malloc(strlen(current_file->path) + 
strlen("eclair: ") + 1);
+            sprintf(window_title, "eclair: %s", current_file->path);
             ecore_evas_title_set(eclair->video_window, window_title);
             free(window_title);
          }
@@ -174,8 +176,10 @@
       else
          ecore_evas_title_set(eclair->video_window, "eclair");
    }
-   if (file)
-      eclair_gui_cover_set(eclair, file->cover_path);
+
+   //Update the current cover
+   if (current_file)
+      eclair_gui_cover_set(eclair, current_file->cover_path);
    else
       eclair_gui_cover_set(eclair, NULL);
 }
@@ -184,26 +188,22 @@
 //Remove it if cover_path == NULL
 void eclair_gui_cover_set(Eclair *eclair, const char *cover_path)
 {
-   char *previous_path = NULL;
-
-   printf("Cover: Set: %s\n", cover_path);
+   char *current_path = NULL;
 
    if (!eclair)
       return;
    if (!eclair->gui_object || !eclair->gui_cover)
       return;
 
-   evas_object_image_file_get(eclair->gui_cover, &previous_path, NULL);
-   if (!previous_path && !cover_path)
+   evas_object_image_file_get(eclair->gui_cover, &current_path, NULL);
+   if (!current_path && !cover_path)
       return;
-   if (previous_path && cover_path)
+   if (current_path && cover_path)
    {
-      if (strcmp(previous_path, cover_path) == 0)
+      if (strcmp(current_path, cover_path) == 0)
          return;
    }
 
-   printf("Cover: Really Set: %s\n", cover_path);
-
    if (eclair->gui_previous_cover)
    {
       Evas_Object *tmp;
@@ -217,18 +217,20 @@
       edje_object_part_swallow(eclair->gui_object, "previous_cover", 
eclair->gui_previous_cover);
    }
 
-   if (!cover_path)
-      edje_object_signal_emit(eclair->gui_object, "signal_cover_unset", 
"eclair_bin");
+   evas_object_image_file_set(eclair->gui_cover, cover_path, NULL);
    if (cover_path)
    {
-      evas_object_image_file_set(eclair->gui_cover, cover_path, NULL);
       edje_object_signal_emit(eclair->gui_object, "signal_cover_set", 
"eclair_bin");
+      evas_object_show(eclair->gui_cover);
+   }
+   else
+   {
+      edje_object_signal_emit(eclair->gui_object, "signal_cover_unset", 
"eclair_bin");
+      evas_object_hide(eclair->gui_cover);
    }
 
-   evas_object_image_file_get(eclair->gui_cover, &previous_path, NULL);
-   printf("Cover: Cover: %s\n", previous_path);
-   evas_object_image_file_get(eclair->gui_previous_cover, &previous_path, 
NULL);
-   printf("Cover: Previous Cover: %s\n", previous_path);
+   evas_object_image_file_get(eclair->gui_cover, &current_path, NULL);
+   evas_object_image_file_get(eclair->gui_previous_cover, &current_path, NULL);
 }
 
 //Set the scroll percent of the playlist container
@@ -556,7 +558,7 @@
       edje_object_part_swallow(eclair->gui_object, "cover", eclair->gui_cover);
       edje_object_part_geometry_get(eclair->gui_object, "cover", NULL, NULL, 
&cover_width, &cover_height);
       evas_object_image_fill_set(eclair->gui_cover, 0, 0, cover_width, 
cover_height);
-      evas_object_show(eclair->gui_cover);
+      evas_object_hide(eclair->gui_cover);
    }
    if (edje_object_part_exists(eclair->gui_object, "previous_cover"))
    {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- eclair.h    2 May 2005 16:06:50 -0000       1.4
+++ eclair.h    3 May 2005 20:36:33 -0000       1.5
@@ -8,7 +8,7 @@
 void eclair_shutdown(Eclair *eclair);
 void eclair_update(Eclair *eclair);
 void *eclair_file_chooser_thread(void *param);
-void eclair_current_file_set(Eclair *eclair, Eclair_Media_File *file);
+void eclair_update_current_file_info(Eclair *eclair, Eclair_Media_File *file);
 void eclair_playlist_container_scroll(Eclair *eclair, int num_entries);
 void eclair_playlist_container_scroll_percent_set(Eclair *eclair, double 
percent);
 void eclair_gui_cover_set(Eclair *eclair, const char *cover_path);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_callbacks.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- eclair_callbacks.c  2 May 2005 16:06:50 -0000       1.6
+++ eclair_callbacks.c  3 May 2005 20:36:33 -0000       1.7
@@ -2,6 +2,7 @@
 #include <string.h>
 #include <Emotion.h>
 #include <Edje.h>
+#include <Ecore.h>
 #include <Ecore_Evas.h>
 #include <Esmart/Esmart_Container.h>
 #include <gtk/gtk.h>
@@ -9,11 +10,6 @@
 #include "eclair.h"
 #include "eclair_playlist.h"
 
-typedef enum _Eclair_Gui_Message_Id
-{
-   COVER_ALPHA_CHANGED = 0
-} Eclair_Gui_Message_Id;
-
 //Called when eclair is closed
 int eclair_exit_cb(void *data, int type, void *event)
 {
@@ -341,19 +337,6 @@
 
    switch (id)
    {
-      case COVER_ALPHA_CHANGED:
-      {
-         Edje_Message_Int_Set *message;
-         if (type != EDJE_MESSAGE_INT_SET || !(message = (Edje_Message_Int_Set 
*)msg))
-            break;
-         if (message->count != 2)
-            break;
-         if (eclair->gui_cover)
-            evas_object_color_set(eclair->gui_cover, 255, 255, 255, 
message->val[0]);
-         if (eclair->gui_previous_cover)     
-            evas_object_color_set(eclair->gui_previous_cover, 255, 255, 255, 
message->val[1]);
-         break;
-      }
       default:
          break;
    }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_cover.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- eclair_cover.c      3 May 2005 08:57:36 -0000       1.4
+++ eclair_cover.c      3 May 2005 20:36:33 -0000       1.5
@@ -53,6 +53,8 @@
    if (!cover_manager)
       return;
 
+   cover_manager->cover_add_state = ECLAIR_IDLE;
+   cover_manager->cover_files_to_add = NULL;
    cover_manager->cover_files_to_treat = NULL;
    cover_manager->not_in_amazon_db = NULL;
    cover_manager->eclair = eclair;
@@ -92,15 +94,18 @@
 }
 
 //Add a media file to the list of files to treat
-void eclair_cover_add_file_to_treat(Eclair_Cover_Manager *cover_manager, 
Eclair_Media_File *media_file, Evas_Bool high_priority)
+void eclair_cover_add_file_to_treat(Eclair_Cover_Manager *cover_manager, 
Eclair_Media_File *media_file)
 {
    if (!cover_manager || !media_file)
       return;
- 
-   if (high_priority)
-      cover_manager->cover_files_to_treat = 
evas_list_prepend(cover_manager->cover_files_to_treat, media_file);
-   else
-      cover_manager->cover_files_to_treat = 
evas_list_append(cover_manager->cover_files_to_treat, media_file);
+   if (cover_manager->cover_delete_thread)
+      return;
+
+   while (cover_manager->cover_add_state != ECLAIR_IDLE);
+   cover_manager->cover_add_state = ECLAIR_ADDING_FILE_TO_ADD;
+   cover_manager->cover_files_to_add = 
evas_list_append(cover_manager->cover_files_to_add, media_file);
+   cover_manager->cover_add_state = ECLAIR_IDLE;
+   
    pthread_cond_broadcast(&cover_manager->cover_cond); 
 }
 
@@ -108,37 +113,52 @@
 static void *_eclair_cover_thread(void *param)
 {
    Eclair_Cover_Manager *cover_manager = (Eclair_Cover_Manager *)param;
+   Eclair *eclair;
    Evas_List *l, *next;
    Eclair_Media_File *current_file;
 
    if (!cover_manager)
       return NULL;
+   if (!(eclair = cover_manager->eclair))
+      return NULL;
 
    pthread_mutex_lock(&cover_manager->cover_mutex);
    for (;;)
    {
       pthread_cond_wait(&cover_manager->cover_cond, 
&cover_manager->cover_mutex);
-      while (cover_manager->cover_files_to_treat || 
cover_manager->cover_delete_thread)
+      while (cover_manager->cover_files_to_treat || 
cover_manager->cover_files_to_add || cover_manager->cover_delete_thread)
       {
-         for (l = cover_manager->cover_files_to_treat; l || 
cover_manager->cover_delete_thread; l = next)
+         if (cover_manager->cover_delete_thread)
          {
-            if (cover_manager->cover_delete_thread)
+            cover_manager->cover_files_to_treat = 
evas_list_free(cover_manager->cover_files_to_treat);
+            cover_manager->cover_files_to_add = 
evas_list_free(cover_manager->cover_files_to_add);
+            cover_manager->cover_delete_thread = 0;
+            return NULL;
+         }
+         //Add the new files to the list of files to treat
+         if (cover_manager->cover_files_to_add)
+         {
+            while (cover_manager->cover_add_state != ECLAIR_IDLE);
+            cover_manager->cover_add_state = ECLAIR_ADDING_FILE_TO_TREAT;
+            for (l = cover_manager->cover_files_to_add; l; l = next)
             {
-               cover_manager->cover_files_to_treat = 
evas_list_free(cover_manager->cover_files_to_treat);
-               cover_manager->cover_delete_thread = 0;
-               return NULL;
+               next = l->next;
+               current_file = (Eclair_Media_File *)l->data;
+               cover_manager->cover_files_to_add = 
evas_list_remove_list(cover_manager->cover_files_to_add, l);
+               cover_manager->cover_files_to_treat = 
evas_list_append(cover_manager->cover_files_to_treat, current_file);
             }
-
+            cover_manager->cover_add_state = ECLAIR_IDLE;
+         }
+         //Treat the files in the list
+         for (l = cover_manager->cover_files_to_treat; l || 
cover_manager->cover_delete_thread; l = next)
+         {
+            if (cover_manager->cover_delete_thread || 
cover_manager->cover_files_to_add)
+               break;
             next = l->next;
             current_file = (Eclair_Media_File *)l->data;
             cover_manager->cover_files_to_treat = 
evas_list_remove_list(cover_manager->cover_files_to_treat, l);
-            
             current_file->cover_path = eclair_cover_file_get(cover_manager, 
current_file->artist, current_file->album, current_file->path);
-            if (cover_manager->eclair)
-            {
-               if (current_file == 
evas_list_data(cover_manager->eclair->playlist.current))
-                  eclair_gui_cover_set(cover_manager->eclair, 
current_file->cover_path);
-            }
+            eclair_media_file_update(eclair, current_file);
          }
       }
    }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_cover.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- eclair_cover.h      2 May 2005 16:06:50 -0000       1.3
+++ eclair_cover.h      3 May 2005 20:36:33 -0000       1.4
@@ -5,7 +5,7 @@
 
 void eclair_cover_init(Eclair_Cover_Manager *cover_manager, Eclair *eclair);
 void eclair_cover_shutdown(Eclair_Cover_Manager *cover_manager);
-void eclair_cover_add_file_to_treat(Eclair_Cover_Manager *cover_manager, 
Eclair_Media_File *media_file, Evas_Bool high_priority);
+void eclair_cover_add_file_to_treat(Eclair_Cover_Manager *cover_manager, 
Eclair_Media_File *media_file);
 char *eclair_cover_file_get(Eclair_Cover_Manager *cover_manager, const char 
*artist, const char *album, const char *file_path);
 char *eclair_cover_file_get_from_local(Eclair_Cover_Manager *cover_manager, 
const char *artist, const char *album, const char *file_path);
 char *eclair_cover_file_get_from_amazon(Eclair_Cover_Manager *cover_manager, 
const char *artist, const char *album);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_media_file.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- eclair_media_file.c 3 May 2005 08:57:36 -0000       1.3
+++ eclair_media_file.c 3 May 2005 20:36:33 -0000       1.4
@@ -1,6 +1,7 @@
 #include "eclair_media_file.h"
 #include <Edje.h>
 #include "eclair.h"
+#include "eclair_playlist.h"
 #include "eclair_cover.h"
 #include "eclair_utils.h"
 
@@ -26,7 +27,7 @@
    free(media_file);
 }
 
-//Update the entry of the media file in the playlist with tag infos
+//Update the media file with tag and cover infos
 void eclair_media_file_update(Eclair *eclair, Eclair_Media_File *media_file)
 {
    char length[10] = "";
@@ -36,16 +37,9 @@
    if (!media_file)
       return;
 
+   //Update playlist entry
    if (media_file->playlist_entry)
-   {
-      if (media_file->length >= 0)
-      {
-         eclair_utils_second_to_string(media_file->length, media_file->length, 
length);
-         edje_object_part_text_set(media_file->playlist_entry, 
"playlist_entry_length", length);
-      }
-      else
-         edje_object_part_text_set(media_file->playlist_entry, 
"playlist_entry_length", "");
-   
+   {   
       if ((artist_title_string = 
eclair_utils_mediafile_to_artist_title_string(media_file)))
       {
          edje_object_part_text_set(media_file->playlist_entry, 
"playlist_entry_name", artist_title_string);
@@ -55,12 +49,20 @@
          edje_object_part_text_set(media_file->playlist_entry, 
"playlist_entry_name", filename);
       else
          edje_object_part_text_set(media_file->playlist_entry, 
"playlist_entry_name", "Media");
+
+      if (media_file->length >= 0)
+      {
+         eclair_utils_second_to_string(media_file->length, media_file->length, 
length);
+         edje_object_part_text_set(media_file->playlist_entry, 
"playlist_entry_length", length);
+      }
+      else
+         edje_object_part_text_set(media_file->playlist_entry, 
"playlist_entry_length", "");
    }
 
    if (!eclair)
       return;
 
-   if (media_file == evas_list_data(eclair->playlist.current))
-      eclair_current_file_set(eclair, media_file);
-   eclair_cover_add_file_to_treat(&eclair->cover_manager, media_file, 0);
+   //If the media file is the current, we also update gui infos
+   if (media_file == eclair_playlist_current_media_file(&eclair->playlist))
+      eclair_update_current_file_info(eclair, media_file);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_meta_tag.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- eclair_meta_tag.c   2 May 2005 16:06:50 -0000       1.3
+++ eclair_meta_tag.c   3 May 2005 20:36:33 -0000       1.4
@@ -3,6 +3,7 @@
 #include <string.h>
 #include <Evas.h>
 #include "eclair.h"
+#include "eclair_cover.h"
 #include "eclair_media_file.h"
 
 static void *_eclair_meta_tag_thread(void *param);
@@ -13,6 +14,8 @@
    if (!meta_tag_manager || !eclair)
       return;
 
+   meta_tag_manager->meta_tag_add_state = ECLAIR_IDLE;
+   meta_tag_manager->meta_tag_files_to_add = NULL;
    meta_tag_manager->meta_tag_files_to_scan = NULL;
    meta_tag_manager->meta_tag_delete_thread = 0;
    pthread_cond_init(&meta_tag_manager->meta_tag_cond, NULL);
@@ -38,9 +41,14 @@
 {
    if (!meta_tag_manager || !media_file)
       return;
+   if (meta_tag_manager->meta_tag_delete_thread)
+      return;
 
-   meta_tag_manager->meta_tag_files_to_scan = 
evas_list_append(meta_tag_manager->meta_tag_files_to_scan, media_file);
-   pthread_cond_broadcast(&meta_tag_manager->meta_tag_cond); 
+   while (meta_tag_manager->meta_tag_add_state != ECLAIR_IDLE);
+   meta_tag_manager->meta_tag_add_state = ECLAIR_ADDING_FILE_TO_ADD;
+   meta_tag_manager->meta_tag_files_to_add = 
evas_list_append(meta_tag_manager->meta_tag_files_to_add, media_file);
+   meta_tag_manager->meta_tag_add_state = ECLAIR_IDLE;
+   pthread_cond_broadcast(&meta_tag_manager->meta_tag_cond);
 }
 
 //Read the meta tags of media_file and update eclair with the new data
@@ -73,7 +81,12 @@
    taglib_tag_free_strings();
    taglib_file_free(tag_file);
 
-   eclair_media_file_update(eclair, media_file);
+   //Try to load the cover
+   if (tag)
+   {
+      if (!(media_file->cover_path = 
eclair_cover_file_get_from_local(&eclair->cover_manager, media_file->artist, 
media_file->album, media_file->path)))
+         eclair_cover_add_file_to_treat(&eclair->cover_manager, media_file);
+   }
 }
 
 //Scan the files stored in the list of files to scan
@@ -92,21 +105,39 @@
    for (;;)
    {
       pthread_cond_wait(&meta_tag_manager->meta_tag_cond, 
&meta_tag_manager->meta_tag_mutex);
-      while (meta_tag_manager->meta_tag_files_to_scan || 
meta_tag_manager->meta_tag_delete_thread)
+      while (meta_tag_manager->meta_tag_files_to_scan || 
meta_tag_manager->meta_tag_files_to_add || 
meta_tag_manager->meta_tag_delete_thread)
       {
-         for (l = meta_tag_manager->meta_tag_files_to_scan; l || 
meta_tag_manager->meta_tag_delete_thread; l = next)
+         if (meta_tag_manager->meta_tag_delete_thread)
          {
-            if (meta_tag_manager->meta_tag_delete_thread)
+            meta_tag_manager->meta_tag_files_to_scan = 
evas_list_free(meta_tag_manager->meta_tag_files_to_scan);
+            meta_tag_manager->meta_tag_files_to_add = 
evas_list_free(meta_tag_manager->meta_tag_files_to_add);
+            meta_tag_manager->meta_tag_delete_thread = 0;
+            return NULL;
+         }
+         //Add the new files to the list of files to treat
+         if (meta_tag_manager->meta_tag_files_to_add)
+         {
+            while (meta_tag_manager->meta_tag_add_state != ECLAIR_IDLE);
+            meta_tag_manager->meta_tag_add_state = ECLAIR_ADDING_FILE_TO_TREAT;
+            for (l = meta_tag_manager->meta_tag_files_to_add; l; l = next)
             {
-               meta_tag_manager->meta_tag_files_to_scan = 
evas_list_free(meta_tag_manager->meta_tag_files_to_scan);
-               meta_tag_manager->meta_tag_delete_thread = 0;
-               return NULL;
+               next = l->next;
+               current_file = (Eclair_Media_File *)l->data;
+               meta_tag_manager->meta_tag_files_to_add = 
evas_list_remove_list(meta_tag_manager->meta_tag_files_to_add, l);
+               meta_tag_manager->meta_tag_files_to_scan = 
evas_list_append(meta_tag_manager->meta_tag_files_to_scan, current_file);
             }
-
+            meta_tag_manager->meta_tag_add_state = ECLAIR_IDLE; 
+         }
+         //Treat the files in the list
+         for (l = meta_tag_manager->meta_tag_files_to_scan; l || 
meta_tag_manager->meta_tag_delete_thread; l = next)
+         {
+            if (meta_tag_manager->meta_tag_delete_thread || 
meta_tag_manager->meta_tag_files_to_add)
+               break;
             next = l->next;
             current_file = (Eclair_Media_File *)l->data;
             meta_tag_manager->meta_tag_files_to_scan = 
evas_list_remove_list(meta_tag_manager->meta_tag_files_to_scan, l);
             eclair_meta_tag_read(eclair, current_file);
+            eclair_media_file_update(eclair, current_file);
          }
       }
    }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_playlist.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -3 -r1.3 -r1.4
--- eclair_playlist.c   30 Apr 2005 12:11:16 -0000      1.3
+++ eclair_playlist.c   3 May 2005 20:36:33 -0000       1.4
@@ -5,6 +5,7 @@
 #include <Evas.h>
 #include <Edje.h>
 #include "eclair.h"
+#include "eclair_cover.h"
 #include "eclair_media_file.h"
 #include "eclair_meta_tag.h"
 #include "eclair_callbacks.h"
@@ -157,7 +158,7 @@
    eclair_playlist_current_set_list(playlist, 
evas_list_find_list(playlist->playlist, media_file));
 }
 
-//Set the media file pointed by the list as the active media file  
+//Set the media file stored in the list as the active media file  
 void eclair_playlist_current_set_list(Eclair_Playlist *playlist, Evas_List 
*list)
 {
    Eclair_Media_File *media_file;
@@ -178,18 +179,16 @@
          edje_object_signal_emit(media_file->playlist_entry, 
"signal_set_current", "eclair_bin");
          if (playlist->eclair)
          {
+            //TODO: doesn't work?
             if (playlist->eclair->playlist_container)
                
esmart_container_scroll_to(playlist->eclair->playlist_container, 
media_file->playlist_entry);
          }
       }
       if (playlist->eclair)
-         eclair_current_file_set(playlist->eclair, media_file);
-   }
-   else
-   {
-      if (playlist->eclair)
-         eclair_current_file_set(playlist->eclair, NULL);
+         eclair_update_current_file_info(playlist->eclair, media_file);
    }
+   else if (playlist->eclair)      
+      eclair_update_current_file_info(playlist->eclair, NULL);
    
    playlist->current = list;
 } 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/eclair/src/eclair_private.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- eclair_private.h    3 May 2005 08:57:36 -0000       1.6
+++ eclair_private.h    3 May 2005 20:36:33 -0000       1.7
@@ -15,6 +15,7 @@
 typedef struct _Eclair_Playlist Eclair_Playlist;
 typedef struct _Eclair_Subtitle Eclair_Subtitle;
 typedef struct _Eclair_Subtitles Eclair_Subtitles;
+typedef enum _Eclair_Add_File_State Eclair_Add_File_State;
 typedef struct _Eclair_Meta_Tag_Manager Eclair_Meta_Tag_Manager;
 typedef struct _Eclair_Cover_Manager Eclair_Cover_Manager;
 typedef struct _Eclair_Config Eclair_Config;
@@ -27,13 +28,22 @@
    FILE *config_file;
 };
 
+enum _Eclair_Add_File_State
+{
+   ECLAIR_IDLE = 0,
+   ECLAIR_ADDING_FILE_TO_ADD,
+   ECLAIR_ADDING_FILE_TO_TREAT
+};
+
 struct _Eclair_Cover_Manager
 {
+   Eclair_Add_File_State cover_add_state;
+   Evas_List *cover_files_to_add;
    Evas_List *cover_files_to_treat;
    Evas_List *not_in_amazon_db;
-   struct hostent *amazon_he;
-   Eclair *eclair;
    Evas_Bool cover_delete_thread;
+   Eclair *eclair;
+   struct hostent *amazon_he;
    pthread_cond_t cover_cond;
    pthread_mutex_t cover_mutex;
    pthread_t cover_thread;
@@ -41,6 +51,8 @@
 
 struct _Eclair_Meta_Tag_Manager
 {
+   Eclair_Add_File_State meta_tag_add_state;
+   Evas_List *meta_tag_files_to_add;
    Evas_List *meta_tag_files_to_scan;
    Evas_Bool meta_tag_delete_thread;
    pthread_cond_t meta_tag_cond;




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit 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