From: Dennis S. <sy...@yo...> - 2005-02-15 19:40:17
|
Please take a look, comment if needed. If nothing comes in I will start implementing this tomorrow. The basics: /* Registry control */ struct _VisConfigRegistry { char *filename; VisList *sections; }; struct _VisConfigRegistrySection { char *name; char *data; }; VisConfigRegistry *visual_config_registry_new (); VisConfigRegistry *visual_config_registry_open (char *configfile); VisConfigRegistrySection *visual_config_registry_section_new (); VisConfigRegistrySection *visual_config_registry_section (VisConfigRegistry *registry, char *name); VisConfigRegistrySection *visual_config_registry_section_open (char *name, char *configfile); visual_config_registry_write_by_data (VisConfigRegistry *registry, char *name, char *data); visual_config_registry_write (VisConfigRegistry *registry, VisConfigRegistrySection *section); // add some methods that write the registry in mem only, handy with avs presets, later on :) NOTE: There will be some control of where the config file is, if we should write, or even read using the global config VisParamContainer. /* Param (de)serialize control */ visual_param_deserialize_from_section (VisParamEntry *param, VisConfigRegistrySection *section); visual_param_deserialize_from_data (VisParamEntry *param, char *data); visual_param_serialize_from_section (VisParamEntry *param, VisConfigRegistrySection *section); visual_param_serialize_from_data (VisParamEntry *param, char **data); visual_param_container_deserialize_namespace (VisParamContainer *container, VisConfigRegistry *registry, const char *namespace); // for example "Libvisual:core:actor:oinksie" could be a namespace // Libvisual:core:actor:oinksie:blur could be a type member. visual_param_container_serialize_namespace (VisParamContainer *container, VisConfigRegistry *registry, const char *namespace); |