xine-lib 1.2.11
configfile.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2000-2019 the xine project
3 *
4 * This file is part of xine, a free video player.
5 *
6 * xine is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * xine is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
19 *
20 * config file management
21 */
22
23#ifndef HAVE_CONFIGFILE_H
24#define HAVE_CONFIGFILE_H
25
26#ifdef __cplusplus
27extern "C" {
28#endif
29
30#include <pthread.h>
31
32#include <xine.h>
33
34#define CONFIG_FILE_VERSION 2
35
40#define XINE_CONFIG_SECURITY 30
41
42
43typedef struct cfg_entry_s cfg_entry_t;
45
49
50 char *key;
51 int type;
52
55
58
60 char *str_value;
62
66
69 int range_max; /* also used for enum */
70
73
76 char *help;
77
81};
82
84
85 /*
86 * register config values
87 *
88 * these functions return the current value of the
89 * registered item, i.e. the default value if it was
90 * not found in the config file or the current value
91 * from the config file otherwise
92 *
93 * NOTE on callbacks:
94 * - callback shall be safe to run from _any_ thread.
95 * There will be no 2 calls at the same time, though.
96 * - callback shall be safe to call at any time between
97 * entering register_foo (), and leaving unregister_foo ().
98 * - There can be multiple callbacks for the same key.
99 * They will run in no fixed order.
100 * - if cb_data is a real pointer, make sure it points to
101 * valid thread shared memory (malloc'ed or static).
102 * Plain stack variables will not work, and may cause
103 * strange malfunction.
104 */
105
106 char* (*register_string) (config_values_t *self,
107 const char *key,
108 const char *def_value,
109 const char *description,
110 const char *help,
111 int exp_level,
112 xine_config_cb_t changed_cb,
113 void *cb_data);
114
115 char* (*register_filename) (config_values_t *self,
116 const char *key,
117 const char *def_value,
118 int req_type,
119 const char *description,
120 const char *help,
121 int exp_level,
122 xine_config_cb_t changed_cb,
123 void *cb_data);
124
126 const char *key,
127 int def_value,
128 int min, int max,
129 const char *description,
130 const char *help,
131 int exp_level,
132 xine_config_cb_t changed_cb,
133 void *cb_data);
134
136 const char *key,
137 int def_value,
138 char **values,
139 const char *description,
140 const char *help,
141 int exp_level,
142 xine_config_cb_t changed_cb,
143 void *cb_data);
144
146 const char *key,
147 int def_value,
148 const char *description,
149 const char *help,
150 int exp_level,
151 xine_config_cb_t changed_cb,
152 void *cb_data);
153
155 const char *key,
156 int def_value,
157 const char *description,
158 const char *help,
159 int exp_level,
160 xine_config_cb_t changed_cb,
161 void *cb_data);
162
165
167 void (*update_num) (config_values_t *self, const char *key, int value);
168
170 void (*update_string) (config_values_t *self, const char *key, const char *value);
171
173 int (*parse_enum) (const char *str, const char **values);
174
182 cfg_entry_t* (*lookup_entry) (config_values_t *self, const char *key);
183
191 void (*unregister_callback) (config_values_t *self, const char *key);
192
196 void (*dispose) (config_values_t *self);
197
202
207
212 char* (*get_serialized_entry) (config_values_t *self, const char *key);
213
219 char* (*register_serialized_entry) (config_values_t *self, const char *value);
220
225
231
235 pthread_mutex_t config_lock;
236
241
250 const char *key, xine_config_cb_t changed_cb, void *cb_data, size_t cb_data_size);
251
256
262 char * (*lookup_string)(config_values_t *, const char *key);
263 void (*free_string)(config_values_t *, char **);
264
266 int (*lookup_num)(config_values_t *, const char *key, int def_value);
267};
268
274
280int _x_config_change_opt(config_values_t *config, const char *opt);
281
283void _x_config_unregister_cb_class_d (config_values_t *config, void *callback_data) XINE_PROTECTED;
285
286#ifdef __cplusplus
287}
288#endif
289
290#endif
291
void _x_config_unregister_cb_class_d(config_values_t *config, void *callback_data)
Definition: configfile.c:1855
int _x_config_change_opt(config_values_t *config, const char *opt)
interpret stream_setup part of mrls for config value changes
Definition: configfile.c:2198
void _x_config_unregister_cb_class_p(config_values_t *config, xine_config_cb_t callback)
Definition: configfile.c:1865
config_values_t * _x_config_init(void)
allocate and init a new xine config object
Definition: configfile.c:2145
#define XINE_PROTECTED
Definition: attributes.h:75
Definition: configfile.h:46
int num_default
Definition: configfile.h:65
char * help
Definition: configfile.h:76
cfg_entry_t * next
Definition: configfile.h:47
int range_min
Definition: configfile.h:68
char * description
Definition: configfile.h:75
char ** enum_values
Definition: configfile.h:72
char * str_default
Definition: configfile.h:61
config_values_t * config
Definition: configfile.h:48
xine_config_cb_t callback
Definition: configfile.h:79
int range_max
Definition: configfile.h:69
int type
Definition: configfile.h:51
char * key
Definition: configfile.h:50
void * callback_data
Definition: configfile.h:80
int num_value
Definition: configfile.h:64
int exp_level
Definition: configfile.h:54
char * unknown_value
Definition: configfile.h:57
char * str_value
Definition: configfile.h:60
Definition: configfile.h:83
void * new_entry_cbdata
Definition: configfile.h:230
int(* register_enum)(config_values_t *self, const char *key, int def_value, char **values, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:135
void(* update_num)(config_values_t *self, const char *key, int value)
Definition: configfile.h:167
int(* register_bool)(config_values_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:154
cfg_entry_t * cur
Definition: configfile.h:224
int(* register_range)(config_values_t *self, const char *key, int def_value, int min, int max, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:125
void(* unset_new_entry_callback)(config_values_t *self)
Definition: configfile.h:206
int(* lookup_num)(config_values_t *, const char *key, int def_value)
Definition: configfile.h:266
void(* register_entry)(config_values_t *self, cfg_entry_t *entry)
Definition: configfile.h:164
void(* dispose)(config_values_t *self)
Definition: configfile.h:196
void(* unregister_callback)(config_values_t *self, const char *key)
Definition: configfile.h:191
void(* update_string)(config_values_t *self, const char *key, const char *value)
Definition: configfile.h:170
void(* set_new_entry_callback)(config_values_t *self, xine_config_cb_t new_entry_cb, void *cb_data)
Definition: configfile.h:201
cfg_entry_t * first
Definition: configfile.h:224
void(* free_string)(config_values_t *, char **)
Definition: configfile.h:263
xine_t * xine
Definition: configfile.h:255
int(* parse_enum)(const char *str, const char **values)
Definition: configfile.h:173
int(* register_num)(config_values_t *self, const char *key, int def_value, const char *description, const char *help, int exp_level, xine_config_cb_t changed_cb, void *cb_data)
Definition: configfile.h:145
int current_version
Definition: configfile.h:240
xine_config_cb_t new_entry_cb
Definition: configfile.h:229
pthread_mutex_t config_lock
Definition: configfile.h:235
int(* unregister_callbacks)(config_values_t *self, const char *key, xine_config_cb_t changed_cb, void *cb_data, size_t cb_data_size)
Definition: configfile.h:249
cfg_entry_t * last
Definition: configfile.h:224
Definition: xine_internal.h:80
void(* xine_config_cb_t)(void *user_data, xine_cfg_entry_t *entry)
Definition: xine.h:1630
char key[16]
Definition: xine_speex_decoder.c:94