Ejemplo n.º 1
0
void
load_album_done_cb(void *data, Enlil_Load *load, Enlil_Library *library,
                   Enlil_Album *album)
{
   Eina_List *l;
   Enlil_Photo *photo;
   Enlil_Photo *photo_prev = NULL;

   Enlil_Data *enlil_data = (Enlil_Data *) data;
   enlil_album_monitor_start(album);

   Enlil_Album_Data *enlil_album_data = calloc(1, sizeof(Enlil_Album_Data));
   enlil_album_data->enlil_data = enlil_data;
   enlil_album_user_data_set(album, enlil_album_data, enlil_album_data_free);

   enlil_album_collection_process(album);

   list_left_add(enlil_data->list_left, album);
   list_photo_album_add(enlil_data->list_photo, album);

   //photos_list_object_freeze(enlil_data->list_photo->o_list, 1);
EINA_LIST_FOREACH(enlil_album_photos_get(album), l, photo)
{
   Enlil_Photo_Data *enlil_photo_data = calloc(1, sizeof(Enlil_Photo_Data));
   enlil_photo_user_data_set(photo, enlil_photo_data, enlil_photo_data_free);
   enlil_photo_data->enlil_data = enlil_data;

   if(!photo_prev)
   list_photo_photo_append_relative(enlil_data->list_photo, album, photo, NULL);
   else
   {
      Enlil_Photo_Data *photo_data_prev = enlil_photo_user_data_get(photo_prev);
      list_photo_photo_append_relative(enlil_data->list_photo, album, photo,
               photo_data_prev->list_photo_item);
   }
   photo_prev = photo;

   map_photo_add(enlil_data->map, photo);

   enlil_photo_tag_process(photo);

   if(enlil_photo_type_get(photo) == ENLIL_PHOTO_TYPE_PHOTO && !enlil_photo_exif_loaded_get(photo))
   {
      enlil_photo_data->clear_exif_data = EINA_TRUE;
      enlil_photo_data->exif_job = enlil_exif_job_append(photo, exif_load_done, photo);
   }
   if(enlil_photo_type_get(photo) == ENLIL_PHOTO_TYPE_PHOTO && !enlil_photo_iptc_loaded_get(photo))
   {
      enlil_photo_data->clear_iptc_data = EINA_TRUE;
      enlil_photo_data->iptc_job = enlil_iptc_job_append(photo, iptc_load_done, photo);
   }
}
Ejemplo n.º 2
0
void
list_left_data_set(List_Left *list_left, Enlil_Data *enlil_data)
{
   Eina_List *l;
   Enlil_Album *album;
   Enlil_Library *library = enlil_data->library;

   list_left->enlil_data = enlil_data;
   enlil_data->list_left = list_left;

EINA_LIST_FOREACH(enlil_library_albums_get(library), l, album)
list_left_add(list_left, album);
}