void on_btn_save_clicked(Etk_Object *object, void *data) { Cover_Entry *ce; Eet_File *ef; Eina_List *list; char *cover_file; list = cover_changed; asprintf(&cover_file, "%s/.e/apps/emphasis/cover.eet", getenv("HOME")); ef = eet_open(cover_file, EET_FILE_MODE_READ_WRITE); if (!ef) { fprintf(stderr, "can't open %s\n", cover_file); free(cover_file); return; } while (cover_changed) { ce = eina_list_data_get(cover_changed); eet_write(ef, ce->key, ce->path, strlen(ce->path)+1, 0); eet_clearcache(); free(ce->key); free(ce->path); free(ce); cover_changed = eina_list_next(cover_changed); } eina_list_free(list); eet_close(ef); free(cover_file); }
static void dump(Efreet_Icon_Theme *theme) { Eet_File *ef; unsigned int count = 0; double start, avg; char **keys; int num, i; start = ecore_time_get(); ef = eet_open(efreet_icon_cache_file(theme->name.internal), EET_FILE_MODE_READ); printf("open: %s %f\n", theme->name.internal, ecore_time_get() - start); start = ecore_time_get(); keys = eet_list(ef, "*", &num); printf("list: %s %f\n", theme->name.internal, ecore_time_get() - start); if (!keys) return; start = ecore_time_get(); for (i = 0; i < num; i++) { Efreet_Cache_Icon *icon; unsigned int j; icon = eet_data_read(ef, efreet_icon_edd(), keys[i]); if (!icon) continue; for (j = 0; j < icon->icons_count; ++j) count += icon->icons[j]->paths_count; } free(keys); start = ecore_time_get() - start; avg = 0; if (count > 0) avg = start / count; printf("read: %s - %u paths (time: %f) (avg %f)\n", theme->name.internal, count, start, avg); eet_close(ef); eet_clearcache(); }
char * emphasis_cover_db_add(const char *artist, const char *album, void *cover, int size) { Eet_File *ef; FILE *cover_file; char *cover_path; char *config_path; char *key; asprintf(&config_path, "%s/.e/apps/emphasis/cover.eet", getenv("HOME")); if (access(config_path, F_OK)) { ef = eet_open(config_path, EET_FILE_MODE_WRITE); if (!ef) { fprintf(stderr, "Can't write %s\n", config_path); return NULL; } } else { ef = eet_open(config_path, EET_FILE_MODE_READ_WRITE); if (!ef) { fprintf(stderr, "Can't read write %s\n", config_path); return NULL; } } asprintf(&key, "/%s/%s", artist, album); if (cover) { asprintf(&cover_path, "%s/.e/apps/emphasis/%s-%s.jpg", getenv("HOME"), artist, album); cover_file = fopen(cover_path, "wb"); if (!cover_file) { fprintf(stderr, "Cover: Unable to open the file \"%s\" to save the cover\n", cover_path); free(cover_path); return NULL; } fwrite(cover, size, sizeof(char), cover_file); fclose(cover_file); eet_write(ef, key, cover_path, (strlen(cover_path)+1) * sizeof(char), 0); eet_clearcache(); } else { asprintf(&cover_path, "not found"); eet_write(ef, key, cover_path, (strlen(cover_path)+1) * sizeof(char), 0); eet_clearcache(); free(cover_path); cover_path = NULL; } eet_close(ef); free(config_path); free(key); free(cover); return cover_path; }