Eina_Bool ephoto_config_init(Ephoto *ephoto) { Eet_Data_Descriptor_Class eddc; if (!eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "Ephoto_Config", sizeof(Ephoto_Config))) { ERR("Unable to create the config data descriptor!"); return EINA_FALSE; } if (!edd) edd = eet_data_descriptor_stream_new(&eddc); #undef T #undef D #define T Ephoto_Config #define D edd #define C_VAL(edd, type, member, dtype) EET_DATA_DESCRIPTOR_ADD_BASIC(edd, type, #member, member, dtype) C_VAL(D, T, config_version, EET_T_INT); C_VAL(D, T, thumb_size, EET_T_INT); C_VAL(D, T, thumb_gen_size, EET_T_INT); C_VAL(D, T, directory, EET_T_STRING); C_VAL(D, T, slideshow_timeout, EET_T_DOUBLE); C_VAL(D, T, slideshow_transition, EET_T_STRING); C_VAL(D, T, editor, EET_T_STRING); switch (_ephoto_config_load(ephoto)) { case 0: /* Start a new config */ ephoto->config->config_version = CONFIG_VERSION; ephoto->config->thumb_size = 256; ephoto->config->thumb_gen_size = 256; ephoto->config->slideshow_timeout = 4.0; ephoto->config->slideshow_transition = eina_stringshare_add("fade"); ephoto->config->editor = eina_stringshare_add("gimp %s"); break; case -1: /* Incremental additions */ if (ephoto->config->config_version < 2) { ephoto->config->slideshow_timeout = 4.0; ephoto->config->slideshow_transition = eina_stringshare_add("fade"); } if (ephoto->config->config_version < 3) ephoto->config->editor = eina_stringshare_add("gimp %s"); if (ephoto->config->config_version < 5) ephoto->config->thumb_gen_size = 256; ephoto->config->config_version = CONFIG_VERSION; break; default: return EINA_TRUE; } ephoto_config_save(ephoto, EINA_FALSE); return EINA_TRUE; }
static Eet_Data_Descriptor * ems_config_descriptor_new(const char *name, int size) { Eet_Data_Descriptor_Class eddc; if (!eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), name, size)) return NULL; return eet_data_descriptor_stream_new(&eddc); }
void source_edd(void) { Eet_Data_Descriptor_Class eddc; eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "srcfile", sizeof (SrcFile)); _srcfile_edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(_srcfile_edd, SrcFile, "name", name, EET_T_INLINED_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_srcfile_edd, SrcFile, "file", file, EET_T_INLINED_STRING); eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "srcfile_list", sizeof (SrcFile_List)); _srcfile_list_edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_LIST(_srcfile_list_edd, SrcFile_List, "list", list, _srcfile_edd); eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "external", sizeof (External)); _external_edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(_external_edd, External, "name", name, EET_T_INLINED_STRING); eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "external_list", sizeof (External_List)); _external_list_edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_LIST(_external_list_edd, External_List, "list", list, _external_edd); eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "font", sizeof (Font)); _font_edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(_font_edd, Font, "file", file, EET_T_INLINED_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_font_edd, Font, "name", name, EET_T_INLINED_STRING); eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "font_list", sizeof (Font_List)); _font_list_edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_LIST(_font_list_edd, Font_List, "list", list, _font_edd); }
EAPI E_Config_DD * e_config_descriptor_new(const char *name, int size) { Eet_Data_Descriptor_Class eddc; E_Config_DD *edd; if (!eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), name, size)) return NULL; /* FIXME: We can directly map string inside an Eet_File and reuse it. But this need a break in all user of config every where in E. */ edd = (E_Config_DD *)eet_data_descriptor_stream_new(&eddc); if (!config_hash) config_hash = eina_hash_string_superfast_new(NULL); eina_hash_set(config_hash, name, edd); return edd; }
Eet_Data_Descriptor * exalt_conf_edd_new(Eet_Data_Descriptor* edd_network) { static Eet_Data_Descriptor_Class eddc; Eet_Data_Descriptor *edd; EXALT_ASSERT_RETURN(edd_network!=NULL); eet_eina_stream_data_descriptor_class_set(&eddc, sizeof (eddc), "Configuration", sizeof(Exalt_Configuration)); edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Exalt_Configuration, "dhcp", mode, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Exalt_Configuration, "ip", ip, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Exalt_Configuration, "netmask", netmask, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Exalt_Configuration, "gateway", gateway, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Exalt_Configuration, "wireless", wireless, EET_T_SHORT); EET_DATA_DESCRIPTOR_ADD_SUB(edd, Exalt_Configuration, "network", network, edd_network); EET_DATA_DESCRIPTOR_ADD_BASIC(edd, Exalt_Configuration, "cmd_after_apply", cmd_after_apply, EET_T_STRING); return edd; }