+
     i  c                   s    ^ RI HtHtHt ^ RIt^ RIHt ^ RIHt ^ RI	H
t
Ht ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHtHt ^ R
IHtHt ^ RIHt ^ RIHt  ! R R]4      tR# )    )TupleOptionalDictN)EV_ABS)
exceptions)InputCombinationInputConfig)Mapping)GlobalUInputs)Transformation)MappingHandlerHandlerEnumsInputEventHandler)
InputEventEventActions)logger)get_evdev_constant_namec                   s   a a ] tR t^(t oRtV3R lV 3R lltR tR t]R 4       t	RV3R lR llt
V3R	 lR
 ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R lR ltV3R ltRtVtV ;t# )AbsToAbsHandlerz1Handler which transforms EV_ABS to EV_ABS events.c                s0   < V ^8  d   QhRS[ RS[RS[RR/# )   combinationmappingglobal_uinputsreturnN)r   r   r	   Zformat__classdict__   "`/usr/lib/python3.14/site-packages/inputremapper/injection/mapping_handlers/abs_to_abs_handler.py__annotate__AbsToAbsHandler.__annotate__0   s3      %  &	 
    c                s0  < \         SV `  WV4       XV n        VP                  VP                  3V n        VP                  VP                  4      pVP                  R R7      \        ,          p\        V4      VP                  ,          V n        RV n        R# )TabsinfoN)Zsuper__init__	_map_axisZoutput_typeZoutput_code_output_axisZ
get_uinputtarget_uinputcapabilitiesr   dict_target_absinfo
_transform)	selfr   r   r   Z_Zmap_axisr$   Zabs_capabilities	__class__s	   &&&&,   r   r!   ZAbsToAbsHandler.__init__0   s     	~>
 " %00'2E2EF&11'2G2GH(55d5CFK#$45g6I6IJr   c                s`    \        V P                  P                  !  pR V RV P                   2# )zAbsToAbsHandler for "z" )r   r"   Ztype_and_code)r)   Znames   & r   __str__ZAbsToAbsHandler.__str__I   s.    &(D(DE&tfBt~~.>??r   c                sJ    R \        V 4       R\        \        V 4      4       R2# )Z< at Z>)ZstrZhexZidr)      &r   __repr__ZAbsToAbsHandler.__repr__M   s#    3t9+T#bh-22r   c                s    R V P                   P                  4        RV P                   P                  4        RV P                   P                   2# )z	maps to: Z r,   )r   Zget_output_name_constantZget_output_type_coder$   r-   r.   r   childZAbsToAbsHandler.childP   sJ     ==?@||00234||))*,	
r   c                sF   < V ^8  d   QhRS[ RS[P                  RS[RS[/# )r   eventsourcesuppressr   )r   evdevZInputDeviceboolr   r   r   r   r   X   s9       !! 	
 
r   c                s   VP                   V P                  P                   8w  d   R # \        P                  VP                  9   d#   V P                  V P                  ^ 4      4       R# V P                  '       g   \        VP                  RR7      \        ,          4      VP                  ,          p\        VP                  VP                  V P                  P                   V P                  P"                  V P                  P$                  R7      V n         V P                  V P                  V P                  VP&                  4      4      4       R#   \(        P*                  \(        P,                  3 d     R # i ; i)FTr   )Zmax_Zmin_deadzonegainexpo)Zinput_match_hashr"   r   ZrecenterZactions_write_scale_to_targetr(   r&   r%   r   Zcoder
   maxminr   r6   r7   r8   valuer   ZUinputNotAvailableZEventNotHandled)r)   r1   r2   r3   r    s   &&&& r   notifyZAbsToAbsHandler.notifyX   s
    !!T^^%D%DD  EMM1KK--a016..t.<VDEejjQG,[[[[..\\&&\\&&DO	KK--dooekk.JKL--z/I/IJ 		s   9E %E<;E<c                s   < V ^8  d   QhRR/# )r   r   N r   r   r   r   r   u   s     . .t .r   c                sF    V P                  V P                  ^ 4      4       R# )r    N)r9   r:   r-   r.   r   resetZAbsToAbsHandler.resetu   s    D))!,-r   c                s&   < V ^8  d   QhRS[ RS[/# )r   xr   )Zfloatintr   r   r   r   r   x   s     9 9% 9C 9r   c                sz   V P                   P                  V P                   P                  ,
          ^,          pV P                   P                  V,           pW!,          V,           pWC8  d*   \        \        V P                   P                  V4      4      # \        \        V P                   P                  V4      4      # )zScales a x value between -1 and 1 to an integer between
target_absinfo.min and target_absinfo.max

input values above 1 or below -1 are clamped to the extreme values
)r'   r;   r<   rB   )r)   rA   ZfactorZoffsetZys   &&   r   r:   Z AbsToAbsHandler._scale_to_targetx   s     &&**T-A-A-E-EEJ%%))F2J:s4//33Q788s4//33Q788r   c                    < V ^8  d   QhRS[ /# )r   r=   )rB   r   r   r   r   r      s     R RC Rr   c                s     V P                   P                  . V P                  OVN5V P                  P                  4       R#   \
         d)    \        P                  ! R.T P                  OTN5!    R# i ; i)zInject.zOverflowError (%s, %s, %s)N)r   Zwriter#   r   r$   ZOverflowErrorr   Zerror)r)   r=      &&r   r9   ZAbsToAbsHandler._write   sk    	R%%+$##+U+T\\-G-G  	RLL5Q8I8IQ5Q	Rs   ?A /A65A6c                rC   r   r   )r5   r   r   r   r   r      s     + + +r   c                s2    \        V P                  4      ^8  # )i   )Zleninput_configsr-   r.   r   needs_wrappingZAbsToAbsHandler.needs_wrapping   s    4%%&**r   c                s$   < V ^8  d   QhRS[ RR/# )r   handlerr   N)r   r   r   r   r   r      s      '8 T r   c                s    R # Nr?   )r)   rH   rD   r   set_sub_handlerZAbsToAbsHandler.set_sub_handler   s    r   c                s6   < V ^8  d   QhRS[ S[S[3,          /# rE   )r   r   r   r   r   r   r   r      s      4 0, >? r   c                s|    V P                  4       '       d&   \        V P                  4      \        P                  /# / # rI   )rG   r   rF   r   Z
axisswitchr-   r.   r   	wrap_withZAbsToAbsHandler.wrap_with   s2      $T%7%78,:Q:QRR	r   c                s   < V ^8  d   Qh/ S[ ;R&   S[S[S[3,          ;R&   S[S[,          ;R&   S[P                  ;R&   # )r   r"   r#   r(   r'   )r   r   rB   r   r
   r4   ZAbsInfor   r   r   r   r   (   sJ        S/!	 
 ((  ]]" r   )r"   r#   r'   r(   )F)Z__name__Z
__module__Z__qualname__Z__firstlineno__Z__doc__r!   r+   r/   Zpropertyr0   r>   r@   r:   r9   rG   rJ   rK   Z__annotate_func__Z__static_attributes__Z__classdictcell__Z__classcell__)r*   r   s   @@r   r   r   (   s     ; 2@3 
 
 :. .9 9R R+ +  ]  r   r   )Ztypingr   r   r   r4   Zevdev.ecodesr   Zinputremapperr   Z"inputremapper.configs.input_configr   r   Zinputremapper.configs.mappingr   Z&inputremapper.injection.global_uinputsr	   Z7inputremapper.injection.mapping_handlers.axis_transformr
   Z8inputremapper.injection.mapping_handlers.mapping_handlerr   r   r   Zinputremapper.input_eventr   r   Zinputremapper.logging.loggerr   Zinputremapper.utilsr   r   r?   r   r   <module>rL      sE   ( ) (   $ L 1 @ R 
 ? / 7qn qr   