• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef fooclientconfhfoo
2 #define fooclientconfhfoo
3 
4 /***
5   This file is part of PulseAudio.
6 
7   Copyright 2004-2006 Lennart Poettering
8 
9   PulseAudio is free software; you can redistribute it and/or modify
10   it under the terms of the GNU Lesser General Public License as published
11   by the Free Software Foundation; either version 2.1 of the License,
12   or (at your option) any later version.
13 
14   PulseAudio is distributed in the hope that it will be useful, but
15   WITHOUT ANY WARRANTY; without even the implied warranty of
16   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17   General Public License for more details.
18 
19   You should have received a copy of the GNU Lesser General Public License
20   along with PulseAudio; if not, see <http://www.gnu.org/licenses/>.
21 ***/
22 
23 #include <pulsecore/macro.h>
24 #include <pulsecore/native-common.h>
25 
26 /* A structure containing configuration data for PulseAudio clients. */
27 
28 typedef struct pa_client_conf {
29     char *daemon_binary;
30     char *extra_arguments;
31     char *default_sink;
32     char *default_source;
33     char *default_server;
34     char *default_dbus_server;
35     char *cookie_file_from_env;
36     uint8_t cookie_from_x11[PA_NATIVE_COOKIE_LENGTH];
37     bool cookie_from_x11_valid;
38     char *cookie_file_from_application;
39     char *cookie_file_from_client_conf;
40     bool autospawn, disable_shm, disable_memfd, auto_connect_localhost, auto_connect_display;
41     size_t shm_size;
42 } pa_client_conf;
43 
44 /* Create a new configuration data object and reset it to defaults */
45 pa_client_conf *pa_client_conf_new(void);
46 void pa_client_conf_free(pa_client_conf *c);
47 
48 /* Load the configuration data from the client configuration file and
49  * optionally from X11 and/or environment variables, overwriting the current
50  * settings in *c. */
51 void pa_client_conf_load(pa_client_conf *c, bool load_from_x11, bool load_from_env);
52 
53 /* Load the cookie from the cookie sources specified in the configuration, or
54  * if nothing is specified or none of the sources work, load the cookie from
55  * the default source. If the default source doesn't work either, this function
56  * returns a negative value and initializes the cookie to all-zeroes. */
57 int pa_client_conf_load_cookie(pa_client_conf *c, uint8_t *cookie, size_t cookie_length);
58 
59 void pa_client_conf_set_cookie_file_from_application(pa_client_conf *c, const char *cookie_file);
60 
61 #endif
62