]>
code.delx.au - pulseaudio/blob - src/pulsecore/x11prop.c
4 This file is part of PulseAudio.
6 Copyright 2004-2006 Lennart Poettering
8 PulseAudio is free software; you can redistribute it and/or modify
9 it under the terms of the GNU Lesser General Public License as published
10 by the Free Software Foundation; either version 2 of the License,
11 or (at your option) any later version.
13 PulseAudio is distributed in the hope that it will be useful, but
14 WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 General Public License for more details.
18 You should have received a copy of the GNU Lesser General Public License
19 along with PulseAudio; if not, write to the Free Software
20 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
31 #include <X11/Xatom.h>
35 void pa_x11_set_prop(Display
*d
, const char *name
, const char *data
) {
36 Atom a
= XInternAtom(d
, name
, False
);
37 XChangeProperty(d
, RootWindow(d
, 0), a
, XA_STRING
, 8, PropModeReplace
, (const unsigned char*) data
, strlen(data
)+1);
40 void pa_x11_del_prop(Display
*d
, const char *name
) {
41 Atom a
= XInternAtom(d
, name
, False
);
42 XDeleteProperty(d
, RootWindow(d
, 0), a
);
45 char* pa_x11_get_prop(Display
*d
, const char *name
, char *p
, size_t l
) {
49 unsigned long nbytes_after
;
50 unsigned char *prop
= NULL
;
53 Atom a
= XInternAtom(d
, name
, False
);
54 if (XGetWindowProperty(d
, RootWindow(d
, 0), a
, 0, (l
+2)/4, False
, XA_STRING
, &actual_type
, &actual_format
, &nitems
, &nbytes_after
, &prop
) != Success
)
57 if (actual_type
!= XA_STRING
)
60 memcpy(p
, prop
, nitems
);