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 inline void _config_init(void) { Eet_Data_Descriptor_Class eddc; if (_config_descriptor) return; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Config); _config_descriptor = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "allow_popup", allow_popup, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_auto_load_images", enable_auto_load_images, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_auto_shrink_images", enable_auto_shrink_images, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_javascript", enable_javascript, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_mouse_cursor", enable_mouse_cursor, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_plugins", enable_plugins, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_private_mode", enable_private_mode, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "enable_touch_interface", enable_touch_interface, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "home_page", home_page, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "proxy", proxy, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "restore_state", restore_state, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "user_agent", user_agent, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "frame_flattening", frame_flattening, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "text_zoom", text_zoom, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "minimum_font_size", minimum_font_size, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "cookie_policy", cookie_policy, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_config_descriptor, Config, "backing_store", backing_store, EET_T_INT); }
static void _my_conf_descriptor_init(void) { Eet_Data_Descriptor_Class eddc; // The class describe the functions to use to create the type and its // full allocated size. // // Eina types are very convenient, so use them to create the descriptor, // so we get eina_list, eina_hash and eina_stringshare automatically! // // The STREAM variant is better for configuration files as the values // will likely change a lot. // // The other variant, FILE, is good for caches and things that are just // appended, but needs to take care when changing strings and files must // be kept open so mmap()ed strings will be kept alive. EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, My_Conf_Type); _my_conf_descriptor = eet_data_descriptor_stream_new(&eddc); // Describe the members to be saved: // Use a temporary macro so we don't type a lot, also avoid errors: #define MY_CONF_ADD_BASIC(member, eet_type) \ EET_DATA_DESCRIPTOR_ADD_BASIC \ (_my_conf_descriptor, My_Conf_Type, # member, member, eet_type) MY_CONF_ADD_BASIC(version, EET_T_UINT); MY_CONF_ADD_BASIC(name, EET_T_STRING); MY_CONF_ADD_BASIC(id, EET_T_INT); MY_CONF_ADD_BASIC(enabled, EET_T_UCHAR); #undef MY_CONF_ADD_BASIC } /* _my_conf_descriptor_init */
void Config::initEetDescriptors() { Eet_Data_Descriptor_Class edc; EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&edc, ConfigStateValue); edd_state = eet_data_descriptor_stream_new(&edc); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_state, ConfigStateValue, "id", id, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_state, ConfigStateValue, "value", value, EET_T_STRING); EET_EINA_FILE_DATA_DESCRIPTOR_CLASS_SET(&edc, ConfigStateCache); edd_cache = eet_data_descriptor_stream_new(&edc); EET_DATA_DESCRIPTOR_ADD_BASIC(edd_cache, ConfigStateCache, "version", version, EET_T_UINT); EET_DATA_DESCRIPTOR_ADD_HASH(edd_cache, ConfigStateCache, "states", states, edd_state); }
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 config_init(void) { Eet_Data_Descriptor_Class eddc; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Jesus_Config); edd = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_HASH_STRING(edd, Jesus_Config, "mime_type_open", mime_type_open); _config_read(); }
static inline void _fav_init(void) { Eet_Data_Descriptor_Class eddc; if (_fav_descriptor) return; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Fav); _fav_descriptor = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_HASH(_fav_descriptor, Fav, "items", items, _fav_item_descriptor); }
static inline void _session_init(void) { Eet_Data_Descriptor_Class eddc; if (_session_descriptor) return; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Session); _session_descriptor = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_LIST(_session_descriptor, Session, "windows", windows, _session_window_descriptor); }
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); }
static inline void _session_window_init(void) { Eet_Data_Descriptor_Class eddc; if (_session_window_descriptor) return; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Session_Window); _session_window_descriptor = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_LIST(_session_window_descriptor, Session_Window, "tabs", tabs, _session_item_descriptor); EET_DATA_DESCRIPTOR_ADD_BASIC(_session_window_descriptor, Session_Window, "focused", focused, EET_T_UCHAR); }
static inline void _fav_item_init(void) { Eet_Data_Descriptor_Class eddc; if (_fav_item_descriptor) return; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Fav_Item); _fav_item_descriptor = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(_fav_item_descriptor, Fav_Item, "url", url, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_fav_item_descriptor, Fav_Item, "title", title, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_fav_item_descriptor, Fav_Item, "visit_count", visit_count, EET_T_UINT); }
static inline void _session_item_init(void) { Eet_Data_Descriptor_Class eddc; if (_session_item_descriptor) return; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, Session_Item); _session_item_descriptor = eet_data_descriptor_stream_new(&eddc); EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "url", url, EET_T_STRING); EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "focused", focused, EET_T_UCHAR); EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "scroll_x", scroll_x, EET_T_INT); EET_DATA_DESCRIPTOR_ADD_BASIC(_session_item_descriptor, Session_Item, "scroll_y", scroll_y, EET_T_INT); }
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; }
void ece_example_descriptor_init(void) { Eet_Data_Descriptor_Class eddc; EET_EINA_STREAM_DATA_DESCRIPTOR_CLASS_SET(&eddc, ECE_Example); _ece_example_descriptor = eet_data_descriptor_stream_new(&eddc); #define ECE_EXAMPLE_ADD_BASIC(member, eet_type) \ EET_DATA_DESCRIPTOR_ADD_BASIC \ (_ece_example_descriptor, ECE_Example, # member, member, eet_type) ECE_EXAMPLE_ADD_BASIC(id, EET_T_INT); ECE_EXAMPLE_ADD_BASIC(message, EET_T_STRING); /* not_sending is not being added to the descriptor to show that, * only those parameters which have been added are sent in the * communication. */ #undef ECE_EXAMPLE_ADD_BASIC }
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; }