Your IP : 18.116.13.192
3
�<�e� � @ sX d dl mZ d dlT ddlZddlmZ ddlZddlZej j
� ZG dd� dej�Z
dS )� )�base)�*� N)�commandsc @ sj e Zd ZdZdd� Zdd� Zedd� �Zdd � Zd
d� Z dd
� Z
eddd�dd� �Ze
d�ddd��ZdS )� USBPlugina�
`usb`::
Sets autosuspend timeout of USB devices to the value specified by the
[option]`autosuspend` option in seconds. If the [option]`devices`
option is specified, the [option]`autosuspend` option applies to only
the USB devices specified, otherwise it applies to all USB devices.
+
The value `0` means that autosuspend is disabled.
+
.To turn off USB autosuspend for USB devices `1-1` and `1-2`
====
----
[usb]
devices=1-1,1-2
autosuspend=0
----
====
c C sN d| _ t� | _t� | _x*| jjd�jdd�D ]}| jj|j� q,W t � | _
d S )NT�usbZDEVTYPEZ
usb_device)Z_devices_supported�setZ
_free_devicesZ_assigned_devices�_hardware_inventoryZget_devicesZmatch_property�addZsys_namer �_cmd)�self�device� r � /usr/lib/python3.6/plugin_usb.py�
_init_devices s zUSBPlugin._init_devicesc s � fdd�|D �S )Nc s g | ]}� j jd |��qS )r )r Z
get_device)�.0�x)r r r �
<listcomp>* s z1USBPlugin._get_device_objects.<locals>.<listcomp>r )r Zdevicesr )r r �_get_device_objects) s zUSBPlugin._get_device_objectsc C s dd iS )N�autosuspendr )r r r r �_get_config_options, s zUSBPlugin._get_config_optionsc C s d|_ d|_d S )NTF)Z_has_static_tuningZ_has_dynamic_tuning)r �instancer r r �_instance_init2 s zUSBPlugin._instance_initc C s d S )Nr )r r r r r �_instance_cleanup6 s zUSBPlugin._instance_cleanupc C s d| S )Nz)/sys/bus/usb/devices/%s/power/autosuspendr )r r
r r r �_autosuspend_sysfile9 s zUSBPlugin._autosuspend_sysfiler T)Z
per_devicec C sR | j |�}|d krd S |rdnd}|sN| j|�}| jj|||rFtjgndd� |S )N�1�0F)�no_error)Z_option_boolr r Z
write_to_file�errno�ENOENT)r �valuer
Zsim�remove�enable�val�sys_filer r r �_set_autosuspend<