]> code.delx.au - pulseaudio/blob - src/pulse/client-conf.h
client-conf: Don't create multiple cookie files
[pulseaudio] / src / pulse / client-conf.h
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, write to the Free Software
21 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
22 USA.
23 ***/
24
25 #include <pulsecore/macro.h>
26 #include <pulsecore/native-common.h>
27
28 /* A structure containing configuration data for PulseAudio clients. */
29
30 typedef struct pa_client_conf {
31 char *daemon_binary;
32 char *extra_arguments;
33 char *default_sink;
34 char *default_source;
35 char *default_server;
36 char *default_dbus_server;
37 char *cookie_file_from_env;
38 uint8_t cookie_from_x11[PA_NATIVE_COOKIE_LENGTH];
39 bool cookie_from_x11_valid;
40 char *cookie_file_from_application;
41 char *cookie_file_from_client_conf;
42 bool autospawn, disable_shm, auto_connect_localhost, auto_connect_display;
43 size_t shm_size;
44 } pa_client_conf;
45
46 /* Create a new configuration data object and reset it to defaults */
47 pa_client_conf *pa_client_conf_new(void);
48 void pa_client_conf_free(pa_client_conf *c);
49
50 /* Load the configuration data from the client configuration file, overwriting
51 * the current settings in *c. */
52 int pa_client_conf_load(pa_client_conf *c);
53
54 /* Load the cookie from the cookie sources specified in the configuration, or
55 * if nothing is specified or none of the sources work, load the cookie from
56 * the default source. If the default source doesn't work either, this function
57 * returns a negative value and initializes the cookie to all-zeroes. */
58 int pa_client_conf_load_cookie(pa_client_conf *c, uint8_t *cookie, size_t cookie_length);
59
60 /* Load the configuration data from the environment of the current
61 process, overwriting the current settings in *c. */
62 int pa_client_conf_env(pa_client_conf *c);
63
64 void pa_client_conf_set_cookie_file_from_application(pa_client_conf *c, const char *cookie_file);
65
66 #endif