VLC  4.0.0-dev
configuration.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * configuration.h management of the modules configuration
3  *****************************************************************************
4  * Copyright (C) 2007 VLC authors and VideoLAN
5  *
6  * This program is free software; you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License as published by
8  * the Free Software Foundation; either version 2.1 of the License, or
9  * (at your option) any later version.
10  *
11  * This program 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 Lesser General Public License for more details.
15  *
16  * You should have received a copy of the GNU Lesser General Public License
17  * along with this program; if not, write to the Free Software Foundation,
18  * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
19  *****************************************************************************/
20 
21 #ifndef LIBVLC_CONFIGURATION_H
22 # define LIBVLC_CONFIGURATION_H 1
23 
24 /* Internal configuration prototypes and structures */
25 
26 struct vlc_plugin_t;
27 
28 struct vlc_param {
29  union {
30  _Atomic int64_t i; /**< Current value (if integer or boolean) */
31  _Atomic float f; /**< Current value (if floating point) */
32  } value;
33 
35  unsigned char shortname; /**< Optional short option name */
36  unsigned internal:1; /**< Hidden from preferences and help */
37  unsigned unsaved:1; /**< Not stored in persistent configuration */
38  unsigned safe:1; /**< Safe for untrusted provisioning (playlists) */
39  unsigned obsolete:1; /**< Ignored for backward compatibility */
40  struct module_config_t item;
41 };
42 
43 /**
44  * Looks up a configuration parameter by name.
45  *
46  * \return the configuration parameter, or NULL if not found
47  */
48 struct vlc_param *vlc_param_Find(const char *name);
49 
51 
52 void config_Free(struct vlc_param *, size_t);
53 
54 int config_LoadCmdLine ( vlc_object_t *, int, const char *[], int * );
56 #define config_LoadCmdLine(a,b,c,d) config_LoadCmdLine(VLC_OBJECT(a),b,c,d)
57 #define config_LoadConfigFile(a) config_LoadConfigFile(VLC_OBJECT(a))
59 
60 int config_SortConfig (void);
61 void config_UnsortConfig (void);
62 
64 extern _Atomic bool config_dirty;
65 
66 bool config_IsSafe (const char *);
67 
68 /**
69  * Gets the arch-specific installation directory.
70  *
71  * This function determines the directory containing the architecture-specific
72  * installed asset files (such as executable plugins and compiled byte code).
73  *
74  * @return a heap-allocated string (use free() to release it), or NULL on error
75  */
77 
78 /* The configuration file */
79 #define CONFIG_FILE "vlcrc"
80 
81 #endif
#define config_LoadConfigFile(a)
Definition: configuration.h:57
char * config_GetLibDir(void) VLC_USED VLC_MALLOC
Gets the arch-specific installation directory.
Definition: dirs.m:92
void config_Free(struct vlc_param *, size_t)
Destroys an array of configuration items.
Definition: core.c:473
bool config_PrintHelp(vlc_object_t *)
Checks for help command line options such as –help or –version.
Definition: help.c:96
void config_UnsortConfig(void)
Definition: core.c:438
vlc_rwlock_t config_lock
Definition: core.c:41
struct vlc_param * vlc_param_Find(const char *name)
Looks up a configuration parameter by name.
Definition: core.c:449
int config_SortConfig(void)
Index the configuration items by name for faster lookups.
Definition: core.c:404
int config_AutoSaveConfigFile(vlc_object_t *)
Definition: file.c:544
_Atomic bool config_dirty
Definition: core.c:42
#define config_LoadCmdLine(a, b, c, d)
Definition: configuration.h:56
bool config_IsSafe(const char *)
Definition: core.c:71
#define VLC_USED
Definition: fourcc_gen.c:32
#define VLC_MALLOC
Heap allocated result function annotation.
Definition: vlc_common.h:168
const char name[16]
Definition: httpd.c:1268
Configuration item.
Definition: vlc_configuration.h:77
VLC object common members.
Definition: vlc_objects.h:45
Definition: configuration.h:28
union vlc_param::@9 value
struct vlc_plugin_t * owner
Definition: configuration.h:34
_Atomic int64_t i
Current value (if integer or boolean)
Definition: configuration.h:30
unsigned obsolete
Ignored for backward compatibility.
Definition: configuration.h:39
unsigned char shortname
Optional short option name.
Definition: configuration.h:35
struct module_config_t item
Definition: configuration.h:40
_Atomic float f
Current value (if floating point)
Definition: configuration.h:31
unsigned unsaved
Not stored in persistent configuration.
Definition: configuration.h:37
unsigned safe
Safe for untrusted provisioning (playlists)
Definition: configuration.h:38
VLC plugin.
Definition: modules.h:32
Read/write lock.
Definition: vlc_threads.h:534