Implement config/state file handling

Make methods to load_config and load/save state. For now the config
and state directories are the same but it might not be. Implement
the search path for all config/state files as:

  $XDG_CONFIG_HOME/[$prefix]/$name
  $HOME/.config/[$prefix]/$name
  $PIPEWIRE_CONFIG_DIR/pipewire/[$prefix]/$name
  /etc/pipewire/[$prefix]/$name

Make some config files for jack and RT clients. Make pw-cat use the
client-rt config.

Use core state and config management in media-session.
Move all session manager state and config files to the build dir and
set the PIPEWIRE_CONFIG_DIR to this build dir.
This commit is contained in:
Wim Taymans 2021-02-11 17:54:21 +01:00
parent c605672d43
commit fc90a4e48a
13 changed files with 380 additions and 216 deletions

View file

@ -2410,15 +2410,11 @@ jack_client_t * jack_client_open (const char *client_name,
if (client->props == NULL)
goto no_props;
if (pw_properties_get(client->props, PW_KEY_CONTEXT_PROFILE_MODULES) == NULL) {
if ((str = getenv("PIPEWIRE_PROFILE_MODULES")) == NULL)
str = "default,rtkit";
pw_properties_set(client->props, PW_KEY_CONTEXT_PROFILE_MODULES, str);
}
pw_properties_set(client->props, "loop.cancel", "true");
pw_properties_set(client->props, PW_KEY_REMOTE_NAME, client->server_name);
pw_properties_set(client->props, PW_KEY_CLIENT_NAME, client_name);
pw_properties_set(client->props, PW_KEY_CLIENT_API, "jack");
pw_properties_set(client->props, PW_KEY_CONFIG_NAME, "jack.conf");
client->node_id = SPA_ID_INVALID;
strncpy(client->name, client_name, JACK_CLIENT_NAME_SIZE);