summaryrefslogtreecommitdiff
path: root/include/xine/configfile.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/xine/configfile.h')
-rw-r--r--include/xine/configfile.h35
1 files changed, 33 insertions, 2 deletions
diff --git a/include/xine/configfile.h b/include/xine/configfile.h
index 724a75245..e8f2c070e 100644
--- a/include/xine/configfile.h
+++ b/include/xine/configfile.h
@@ -148,6 +148,8 @@ struct config_values_s {
xine_config_cb_t changed_cb,
void *cb_data);
+ void (*register_entry) (config_values_t *self, cfg_entry_t* entry);
+
/** convenience function to update range, enum, num and bool values */
void (*update_num) (config_values_t *self, const char *key, int value);
@@ -167,7 +169,7 @@ struct config_values_s {
cfg_entry_t* (*lookup_entry) (config_values_t *self, const char *key);
/**
- * unregister callback function
+ * unregister entry callback function
*/
void (*unregister_callback) (config_values_t *self, const char *key);
@@ -176,12 +178,41 @@ struct config_values_s {
*/
void (*dispose) (config_values_t *self);
- /*
+ /**
+ * callback called when a new config entry is registered
+ */
+ void (*set_new_entry_callback) (config_values_t *self, xine_config_cb_t new_entry_cb, void *cb_data);
+
+ /**
+ * unregister the callback
+ */
+ void (*unset_new_entry_callback) (config_values_t *self);
+
+ /**
+ * serialize a config entry.
+ * return a base64 null terminated string.
+ */
+ char* (*get_serialized_entry) (config_values_t *self, const char *key);
+
+ /**
+ * deserialize a config entry.
+ * value is a base 64 encoded string
+ * return the key of the serialized entry
+ */
+ char* (*register_serialized_entry) (config_values_t *self, const char *value);
+
+ /**
* config values are stored here:
*/
cfg_entry_t *first, *last, *cur;
/**
+ * new entry callback
+ */
+ xine_config_cb_t new_entry_cb;
+ void *new_entry_cbdata;
+
+ /**
* mutex for modification to the config
*/
pthread_mutex_t config_lock;