Hide keyboard shortcuts

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. 

6 

7import os 

8import sys 

9 

10from xpra.log import Logger 

11log = Logger("sound") 

12 

13 

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"" 

54 

55def get_pulse_server_x11_property(): 

56 return get_x11_property("PULSE_SERVER") 

57 

58def get_pulse_id_x11_property(): 

59 return get_x11_property("PULSE_ID") 

60 

61 

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()) 

67 

68 

69if __name__ == "__main__": 

70 main()