static int _evas_gl_common_shader_program_binary_save(Evas_GL_Program *p, Eet_File *ef) { void* data = NULL; GLenum format; int length = 0, size = 0; char pname[32]; if (!glsym_glGetProgramBinary) return 0; glGetProgramiv(p->prog, GL_PROGRAM_BINARY_LENGTH, &length); if (length <= 0) return 0; data = malloc(length); if (!data) return 0; glsym_glGetProgramBinary(p->prog, length, &size, &format, data); if (length != size) { free(data); return 0; } sprintf(pname, SHADER_PROG_NAME_FMT, p->flags); if (eet_write(ef, pname, data, length, SHADER_BINARY_EET_COMPRESS) < 0) { free(data); return 0; } free(data); p->bin_saved = 1; return 1; }
static int _evas_gl_common_shader_program_binary_save(Evas_GL_Program *p, const char *pname, Eet_File *ef) { void* data = NULL; GLenum format; int length = 0, size = 0; if (!glsym_glGetProgramBinary) return 0; glGetProgramiv(p->prog, GL_PROGRAM_BINARY_LENGTH, &length); GLERR(__FUNCTION__, __FILE__, __LINE__, ""); if (length <= 0) return 0; data = malloc(length); if (!data) return 0; glsym_glGetProgramBinary(p->prog, length, &size, &format, data); GLERR(__FUNCTION__, __FILE__, __LINE__, ""); if (length != size) { free(data); return 0; } if (eet_write(ef, pname, data, length, 1) < 0) { if (data) free(data); return 0; } if (data) free(data); return 1; }
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 Eina_Bool _evas_gl_common_shader_binary_checksum_write(Evas_GL_Shared *shared, Eet_File *ef) { int ret, len; if (!ef) return EINA_FALSE; _evas_gl_common_shader_binary_hash(shared); len = eina_stringshare_strlen(shared->shaders_checksum) + 1; ret = eet_write(ef, SHADER_EET_CHECKSUM, shared->shaders_checksum, len, 0); return (ret == len); }
int main(void) { Eet_File *ef; char *ret; int size; char *entries[] = { "Entry 1", "Big text string here compared to others", "Eet is cool" }; eet_init(); // blindly open an file for output and write strings with their NUL char ef = eet_open("test.eet", EET_FILE_MODE_WRITE); eet_write(ef, "Entry 1", entries[0], strlen(entries[0]) + 1, 0); eet_write(ef, "Entry 2", entries[1], strlen(entries[1]) + 1, 1); eet_write(ef, "Entry 3", entries[2], strlen(entries[2]) + 1, 0); eet_close(ef); // open the file again and blindly get the entries we wrote ef = eet_open("test.eet", EET_FILE_MODE_READ); ret = eet_read(ef, "Entry 1", &size); printf("%s\n", ret); free(ret); ret = eet_read(ef, "Entry 2", &size); printf("%s\n", ret); free(ret); ret = eet_read(ef, "Entry 3", &size); printf("%s\n", ret); free(ret); eet_close(ef); eet_shutdown(); }
void _ecore_config_db_write(Ecore_Config_DB_File *db, Ecore_Config_Prop *e) { char *prev_locale= NULL; char *val = NULL; char *r = NULL; int num; prev_locale = setlocale(LC_NUMERIC, "C"); switch (e->type) { case ECORE_CONFIG_INT: esprintf(&val, "%i", _ecore_config_int_get(e)); break; case ECORE_CONFIG_BLN: esprintf(&val, "%i", _ecore_config_boolean_get(e)); break; case ECORE_CONFIG_FLT: esprintf(&val, "%16.16f", _ecore_config_float_get(e)); break; case ECORE_CONFIG_STR: val = _ecore_config_string_get(e); break; case ECORE_CONFIG_THM: val = _ecore_config_theme_get(e); break; case ECORE_CONFIG_RGB: val = _ecore_config_argbstr_get(e); break; default: WRN("Type %d not handled", e->type); } if (prev_locale) { setlocale(LC_NUMERIC, prev_locale); } if(val) { num = esprintf(&r, "%c%c%s%c", (char) e->type, 0, val, 0); if(num) eet_write(db->ef, e->key, r, num, 1); free(r); } free(val); }
static Eina_Bool storage_index_write(StorageData *sd) { CALLED(); int ret; if (!sd->ef) { DMSG("eet_file is NULL\n"); return EINA_FALSE; } #ifdef DEBUG for (ret = 0; ret < STORAGE_ITEM_CNT; ret++) printf(", index %d: %lf", ret, sd->indexTable[ret]); printf("\n"); #endif ret = eet_write(sd->ef, STORAGE_KEY_INDEX, sd->indexTable, sizeof(indexType) * STORAGE_ITEM_CNT, 1); if (ret) eet_sync(sd->ef); return ret != 0; }
static Eina_Bool item_write(Eet_File *ef, int index, CNP_ITEM *item) { if (!ef) { DMSG("eet_file is NULL\n"); return EINA_FALSE; } char datakey[10]; snprintf(datakey, 10, STORAGE_KEY_FORMAT, index); int buf_size = item->len + sizeof(int); char *buf = MALLOC(buf_size); if (!buf) return EINA_FALSE; ((int *)buf)[0] = item->type_index; char *data = buf + sizeof(int); memcpy(data, item->data, item->len); int ret = eet_write(ef, datakey, buf, buf_size, 1); DMSG("write result: %d, datakey: %s, buf_size: %d, item_len: %d\n", ret, datakey, buf_size, item->len); /* if (ret) eet_sync(ef);*/ return ret != 0; }
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; }