예제 #1
0
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;
}
예제 #3
0
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);
}
예제 #4
0
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);
}
예제 #5
0
파일: eet-basic.c 프로젝트: RomainNaour/efl
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();
}
예제 #6
0
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);
}
예제 #7
0
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;
}
예제 #8
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;
}
예제 #9
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;
}