+
    ia  c                   s   ^ RI t ^RIHt ] P                  t] P
                  t] P                  t] P                  t
] P                  t ! R R] P                  4      t ! R R] P                  4      t ! R R] P                  4      t ! R	 R
] P                  4      t ! R R] P                  4      t ! R R] P                  4      t ! R R] P                  4      t ! R R] P                  4      t ! R R] P,                  4      t ! R R] P                  4      t ! R R] P                  4      t ! R R] P                  4      tR# )i    N)ecodesc                   s*    ] tR t^tRtR]3R]3.tRtR# )Replayz
Defines scheduling of the force-feedback effect
@length: duration of the effect
@delay: delay before effect should start playing
ZlengthZdelay N__name__
__module____qualname____firstlineno____doc___u16_fields___static_attributes__r       //usr/lib64/python3.14/site-packages/evdev/ff.pyr   r      s     
4	$Hr   r   c                   s*    ] tR t^tRtR]3R]3.tRtR# )Triggerz
Defines what triggers the force-feedback effect
@button: number of the button triggering the effect
@interval: controls how soon the effect can be re-triggered
ZbuttonZintervalr   Nr   r   r   r   r   r      s      
4	THr   r   c                   s6    ] tR t^&tRtR]3R]3R]3R]3.tRtR# )Envelopea  
Generic force-feedback effect envelope
@attack_length: duration of the attack (ms)
@attack_level: level at the beginning of the attack
@fade_length: duration of fade (ms)
@fade_level: level at the end of fade

The @attack_level and @fade_level are absolute values; when applying
envelope force-feedback core will convert to positive/negative
value based on polarity of the default level of the effect.
Valid range for the attack and fade levels is 0x0000 - 0x7fff
Zattack_lengthZattack_levelZfade_lengthZ
fade_levelr   Nr   r   r   r   r   r   &   s0     
$			t	Hr   r   c                   s*    ] tR t^<tRtR]3R]3.tRtR# )Constantz
Defines parameters of a constant force-feedback effect
@level: strength of the effect; may be negative
@envelope: envelope data
Zlevelff_enveloper   N	r   r   r   r   r   _s16r   r
   r   r   r   r   r   r   <   s     
$	!Hr   r   c                   s0    ] tR t^ItRtR]3R]3R]3.tRtR# )Rampz
Defines parameters of a ramp force-feedback effect
@start_level: beginning strength of the effect; may be negative
@end_level: final strength of the effect; may be negative
@envelope: envelope data
Zstart_levelZ	end_levelr   r   Nr   r   r   r   r   r   I   s(     
	d	!Hr   r   c                   sB    ] tR t^XtRtR]3R]3R]3R]3R]3R]3.tRtR	# )
	Conditiona  
Defines a spring or friction force-feedback effect
@right_saturation: maximum level when joystick moved all way to the right
@left_saturation: same for the left side
@right_coeff: controls how fast the force grows when the joystick moves to the right
@left_coeff: same for the left side
@deadband: size of the dead zone, where no force is produced
@center: position of the dead zone
Zright_saturationZleft_saturationZright_coeffZ
left_coeffZdeadbandZcenterr   N)	r   r   r   r   r   r	   r   r
   r   r   r   r   r   r   X   s@     
T"	D!		t	T	4Hr   r   c                   sn    ] tR t^mtRtR]3R]3R]3R]3R]3R]3R]3R	]	P                  ! ]4      3.tR
tR# )PeriodicaT  
Defines parameters of a periodic force-feedback effect
@waveform: kind of the effect (wave)
@period: period of the wave (ms)
@magnitude: peak value
@offset: mean value of the wave (roughly)
@phase: 'horizontal' shift
@envelope: envelope data
@custom_len: number of samples (FF_CUSTOM only)
@custom_data: buffer of samples (FF_CUSTOM only)
ZwaveformZperiodZ	magnitudeZoffsetZphaseZenvelopeZ
custom_lenZcustom_datar   N)r   r   r   r   r   r	   r   r   _u32ctypesZPOINTERr
   r   r   r   r   r   r   m   sX    
 
T	4	d	4	$	X	t	t,-	Hr   r   c                   s*    ] tR t^tRtR]3R]3.tRtR# )Rumblea"  
Defines parameters of a periodic force-feedback effect
@strong_magnitude: magnitude of the heavy motor
@weak_magnitude: magnitude of the light one

Some rumble pads have two motors of different weight. Strong_magnitude
represents the magnitude of the vibration generated by the heavy one.
Zstrong_magnitudeZweak_magnituder   Nr   r   r   r   r   r      s      
T"	4 Hr   r   c                   sF    ] tR t^tR]3R]3R]3R]^,          3R]3.t	Rt
R# )
EffectTypeZff_constant_effectZff_ramp_effectZff_periodic_effectZff_condition_effectZff_rumble_effectr   N)r   r   r   r   r   r   r   r   r   r
   r   r   r   r   r   r      s5    	x(	4 	x(		A.	V$Hr   r   c                   s>    ] tR t^tR]3R]3R]3R]3R]3R]3.t	Rt
R# )	EffectZtypeZidZ	directionZ
ff_triggerZ	ff_replayZur   N)r   r   r   r   r	   r   r   r   r   r
   r   r   r   r   r   r      s7    		t	d	w	f	jHr   r   c                   s2    ] tR t^tR]3R]3R]3R]3.tRtR# )UInputUpload
request_idretvalZeffectZoldr   N)	r   r   r   r   r   _s32r   r
   r   r   r   r   r   r      s(    	t	4	6		Hr   r   c                   s,    ] tR t^tR]3R]3R]3.tRtR# )UInputEraser   r   Z	effect_idr   N)r   r   r   r   r   r   r
   r   r   r   r   r    r       s!    	t	4	dHr   r    )r   Z r    Zc_uint8Z_u8Zc_uint16r	   Zc_uint32r   Zc_int16r   Zc_int32r   Z	Structurer   r   r   r   r   r   r   r   ZUnionr   r   r   r    r   r   r   <module>r!      s    nn~~~~
V 

f 
v ,
v 
6    *v 2V   V 6## &"" r   