Coverage for /home/antoine/projects/xpra-git/dist/python3/lib64/python/xpra/sound/pulseaudio/pulseaudio_common_util.py : 64%
Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1#!/usr/bin/env python
2# This file is part of Xpra.
3# Copyright (C) 2010-2018 Antoine Martin <antoine@xpra.org>
4# Xpra is released under the terms of the GNU GPL v2, or, at your option, any
5# later version. See the file COPYING for details.
7import os
8import sys
10from xpra.log import Logger
11log = Logger("sound")
14def get_x11_property(atom_name):
15 from xpra.os_util import OSX, POSIX
16 if not POSIX or OSX:
17 return b""
18 display = os.environ.get("DISPLAY")
19 if not display:
20 return b""
21 try:
22 from xpra.gtk_common.error import xswallow
23 from xpra.x11.bindings.posix_display_source import X11DisplayContext #@UnresolvedImport
24 from xpra.x11.bindings.window_bindings import X11WindowBindingsInstance
25 except ImportError as e:
26 log("get_x11_property(%s)", atom_name, exc_info=True)
27 log.error("Error: unable to query X11 property '%s':", atom_name)
28 log.error(" %s", e)
29 return b""
30 try:
31 with X11DisplayContext(display) as dc:
32 with xswallow:
33 X11Window = X11WindowBindingsInstance()
34 root = X11Window.getDefaultRootWindow()
35 log("getDefaultRootWindow()=%#x", root)
36 try:
37 prop = X11Window.XGetWindowProperty(root, atom_name, "STRING")
38 except Exception as e:
39 log("cannot get X11 property '%s': %s", atom_name, e)
40 return b""
41 log("XGetWindowProperty(..)=%s", prop)
42 if prop:
43 from xpra.os_util import strtobytes
44 from xpra.x11.prop_conv import prop_decode
45 v = prop_decode(dc.display, "latin1", prop)
46 log("get_x11_property(%s)=%s", atom_name, v)
47 return strtobytes(v)
48 return b""
49 except Exception as e:
50 log("get_x11_property(%s)", atom_name, exc_info=True)
51 log.error("Error: cannot get X11 property '%s'", atom_name)
52 log.error(" %s", e)
53 return b""
55def get_pulse_server_x11_property():
56 return get_x11_property("PULSE_SERVER")
58def get_pulse_id_x11_property():
59 return get_x11_property("PULSE_ID")
62def main():
63 if "-v" in sys.argv:
64 log.enable_debug()
65 print("PULSE_SERVER=%s" % get_pulse_server_x11_property())
66 print("PULSE_ID=%s" % get_pulse_id_x11_property())
69if __name__ == "__main__":
70 main()