
    |~g	                     `   d dl m Z d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
 d dlmZ d dlZ ej                  dd	       	  ej                  d
d	       d dlmZ d dlmZ  eej*                  j-                         ej.                        s ed       G d de
      Zy# e$ r	  ed      w xY w)    )gettextN)Any)Device)launch)AppletPlugin)UnsupportedPlatformErrorGdkz3.0GdkX11z'Couldn't find required namespace GdkX11)r	   )r
   zOnly X11 platform is supportedc                   \    e Zd Z ed      ZdZdZddZddZde	d	e	d
e
ddfdZde	ddfdZy)GameControllerWakelockzSTemporarily suspends the screensaver when a bluetooth game controller is connected.	bwRavenclzinput-gaming-symbolicreturnNc                     d| _         t        j                  j                         }|J |j	                         }t        |t        j                        sJ |j                         d| _	        y )Nr   z#x)
	wake_lockr	   Screenget_defaultget_root_window
isinstancer
   	X11Windowget_xidroot_window_id)selfscreenwindows      O/usr/lib/python3/dist-packages/blueman/plugins/applet/GameControllerWakelock.pyon_loadzGameControllerWakelock.on_load   s_    '')!!!'')&&"2"2333!'!1" 5    c                 N    | j                   rd| _         | j                  d       y y )N   resume)r   xdg_screensaver)r   s    r   	on_unloadz GameControllerWakelock.on_unload&   s#    >>DN  * r   pathkeyvaluec                     |dk(  rCt        |      d   dz  }|dk(  s|dk(  r&|r| j                  d       y | j                  d       y y y )	N	Connected)obj_pathClassi  i  i  suspendr    )r   r!   )r   r#   r$   r%   klasss        r   on_device_property_changedz1GameControllerWakelock.on_device_property_changed+   sT    +D)'2V;E~%((3((2	 "0 r   actionc                 8   d| d| j                    }|dk(  rz| j                  dk  rd| _        n| j                  dkD  r| xj                  dz  c_        nt        |d      }|r| xj                  dz  c_        nt        j                  | d       ng|d	k(  rb| j                  dk\  r| xj                  dz  c_        n=t        |d      }|r| xj                  dz  c_        nt        j                  | d       t        j
                  d
| j                          y )Nzxdg-screensaver  r    r   r   F)snz failedr*   zNumber of locks: )r   r   r   loggingerrorinfo)r   r-   commandrets       r   r!   z&GameControllerWakelock.xdg_screensaver5   s    $VHAd.A.A-BCX~~"!"!#!#W/NNa'NMMVHG"45y ~~"!#W/NNa'NMMVHG"45((89:r   )r   N)__name__
__module____qualname_____description__
__author____icon__r   r"   strr   r,   r!    r   r   r   r      sU    mnOJ&H7+
3s 3 3S 3T 3;c ;d ;r   r   )r   r9   r1   typingr   blueman.bluez.Devicer   blueman.Functionsr   blueman.plugins.AppletPluginr   blueman.plugins.errorsr   girequire_version
ValueErrorImportErrorgi.repositoryr	   r
   r   r   r   	X11Screenr   r>   r   r   <module>rJ      s        ' $ 5 ; 	   5%  ABx'    #**((*F,<,<=
"#C
DD5;\ 5;  A
?
@@As   B B-