mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-31 22:25:38 -04:00
pipewire: Add option to disable config files
Add env variable PIPEWIRE_NO_CONFIG to disable parsing custom config files. Add a method to check extra options. Expose valgrind, no-config and no-color as options.
This commit is contained in:
parent
dde03a7dd3
commit
58d0e44664
3 changed files with 29 additions and 3 deletions
|
|
@ -76,6 +76,8 @@ static int get_read_path(char *path, size_t size, const char *prefix, const char
|
||||||
return 1;
|
return 1;
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
}
|
}
|
||||||
|
if (pw_check_option("no-config", "true"))
|
||||||
|
goto no_config;
|
||||||
|
|
||||||
dir = getenv("PIPEWIRE_CONFIG_DIR");
|
dir = getenv("PIPEWIRE_CONFIG_DIR");
|
||||||
if (dir != NULL) {
|
if (dir != NULL) {
|
||||||
|
|
@ -112,6 +114,7 @@ static int get_read_path(char *path, size_t size, const char *prefix, const char
|
||||||
access(path, R_OK) == 0)
|
access(path, R_OK) == 0)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
no_config:
|
||||||
dir = PIPEWIRE_CONFDATADIR;
|
dir = PIPEWIRE_CONFDATADIR;
|
||||||
if (dir != NULL) {
|
if (dir != NULL) {
|
||||||
const char *paths[] = { dir, prefix, name, NULL };
|
const char *paths[] = { dir, prefix, name, NULL };
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,8 @@ struct support {
|
||||||
struct spa_support support[MAX_SUPPORT];
|
struct spa_support support[MAX_SUPPORT];
|
||||||
uint32_t n_support;
|
uint32_t n_support;
|
||||||
unsigned int in_valgrind:1;
|
unsigned int in_valgrind:1;
|
||||||
|
unsigned int no_color:1;
|
||||||
|
unsigned int no_config:1;
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct registry global_registry;
|
static struct registry global_registry;
|
||||||
|
|
@ -487,10 +489,16 @@ void pw_init(int *argc, char **argv[])
|
||||||
if (support->registry != NULL)
|
if (support->registry != NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((str = getenv("VALGRIND")))
|
if ((str = getenv("VALGRIND")) != NULL)
|
||||||
support->in_valgrind = pw_properties_parse_bool(str);
|
support->in_valgrind = pw_properties_parse_bool(str);
|
||||||
|
|
||||||
if ((str = getenv("PIPEWIRE_DEBUG")))
|
if ((str = getenv("NO_COLOR")) != NULL)
|
||||||
|
support->no_color = true;
|
||||||
|
|
||||||
|
if ((str = getenv("PIPEWIRE_NO_CONFIG")) != NULL)
|
||||||
|
support->no_config = pw_properties_parse_bool(str);
|
||||||
|
|
||||||
|
if ((str = getenv("PIPEWIRE_DEBUG")) != NULL)
|
||||||
configure_debug(support, str);
|
configure_debug(support, str);
|
||||||
|
|
||||||
init_i18n(support);
|
init_i18n(support);
|
||||||
|
|
@ -508,7 +516,7 @@ void pw_init(int *argc, char **argv[])
|
||||||
|
|
||||||
if (pw_log_is_default()) {
|
if (pw_log_is_default()) {
|
||||||
n_items = 0;
|
n_items = 0;
|
||||||
if (getenv("NO_COLOR") == NULL)
|
if (!support->no_color)
|
||||||
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_COLORS, "true");
|
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_COLORS, "true");
|
||||||
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_TIMESTAMP, "true");
|
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_TIMESTAMP, "true");
|
||||||
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_LINE, "true");
|
items[n_items++] = SPA_DICT_ITEM_INIT(SPA_KEY_LOG_LINE, "true");
|
||||||
|
|
@ -663,6 +671,19 @@ bool pw_in_valgrind(void)
|
||||||
return global_support.in_valgrind;
|
return global_support.in_valgrind;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SPA_EXPORT
|
||||||
|
bool pw_check_option(const char *option, const char *value)
|
||||||
|
{
|
||||||
|
if (spa_streq(option, "in-valgrind"))
|
||||||
|
return global_support.in_valgrind == spa_atob(value);
|
||||||
|
else if (spa_streq(option, "no-color"))
|
||||||
|
return global_support.no_color == spa_atob(value);
|
||||||
|
else if (spa_streq(option, "no-config"))
|
||||||
|
return global_support.no_config == spa_atob(value);
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
/** Get the client name
|
/** Get the client name
|
||||||
*
|
*
|
||||||
* Make a new PipeWire client name that can be used to construct a remote.
|
* Make a new PipeWire client name that can be used to construct a remote.
|
||||||
|
|
|
||||||
|
|
@ -93,6 +93,8 @@ pw_get_client_name(void);
|
||||||
|
|
||||||
bool pw_in_valgrind(void);
|
bool pw_in_valgrind(void);
|
||||||
|
|
||||||
|
bool pw_check_option(const char *option, const char *value);
|
||||||
|
|
||||||
enum pw_direction
|
enum pw_direction
|
||||||
pw_direction_reverse(enum pw_direction direction);
|
pw_direction_reverse(enum pw_direction direction);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue