ó
[³XMc           @   s3   d  Z  d d l m Z d e j f d „  ƒ  YZ d S(   sT   Logictech MouseMan serial protocol.

http://www.softnco.demon.co.uk/SerialMouse.txt
iÿÿÿÿ(   t   protocolt   MouseManc           B   sÑ   e  Z d  Z d Z d Z d Z d Z d Z d Z	 d Z
 d Z d Z d Z d Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d Z d Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z RS(   sl   

    Parser for Logitech MouseMan serial mouse protocol (compatible
    with Microsoft Serial Mouse).

    t   initialc         C   s   d  S(   N(    (   t   self(    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt	   down_left#   s    c         C   s   d  S(   N(    (   R   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   up_left&   s    c         C   s   d  S(   N(    (   R   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   down_middle)   s    c         C   s   d  S(   N(    (   R   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt	   up_middle,   s    c         C   s   d  S(   N(    (   R   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt
   down_right/   s    c         C   s   d  S(   N(    (   R   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   up_right2   s    c         C   s   d  S(   N(    (   R   t   xt   y(    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   move5   s    c         C   s9   | d @r1 | |  _  | d @|  _ | d	 @|  _ d Sd Sd  S(
   Ni   i   i   i   t   horizR   i@   i    i   (   t   word1t
   leftbuttont   rightbutton(   R   t   byte(    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   state_initial;   s    
	c         C   sZ   | d @r |  j  | ƒ S|  j d @d >| d @B} | d k rI d | } n  | |  _ d Sd  S(	   Ni   i   i   i?   i€   i ÿÿÿt   verti@   (   R   R   R   (   R   R   R
   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   state_horizD   s    
	c         C   sd   | d	 @r |  j  | ƒ S|  j d @d >| d @B} | d k rI d | } n  | |  _ |  j ƒ  d Sd  S(
   Ni   i   i   i   i?   i€   i ÿÿÿt   maybemiddlei@   (   R   R   R   t   snapshot(   R   R   R
   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt
   state_vertN   s    
	
c         C   s@   | d @r! |  j  ƒ  |  j | ƒ S| d @|  _ |  j  ƒ  d Sd  S(   Ni   i   i   R   i@   i    (   R   R   t   middlebutton(   R   R   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   state_maybemiddleZ   s    


c      
   C   s%  |  j  r) |  j r) |  j ƒ  d |  _ n  |  j  rR |  j rR |  j ƒ  d |  _ n  |  j r{ |  j r{ |  j ƒ  d |  _ n  |  j r¤ |  j r¤ |  j ƒ  d |  _ n  |  j rÍ |  j	 rÍ |  j
 ƒ  d |  _	 n  |  j rö |  j	 rö |  j ƒ  d |  _	 n  |  j s|  j r!|  j |  j |  j ƒ n  d  S(   Ni   i    (   R   t   leftoldR   R   R   t	   middleoldR   R   R   t   rightoldR   R	   R   R   R   (   R   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyR   c   s(    





c         C   s@   x9 | D]1 } t  | ƒ } t |  d |  j ƒ | ƒ |  _ q Wd  S(   Nt   state_(   t   ordt   getattrt   state(   R   t   datat   cR   (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   dataReceived|   s    N(   t   __name__t
   __module__t   __doc__R    t   NoneR   R   R   R   R   R   R   R   t   horizoldt   vertoldR   R   R   R   R   R	   R   R   R   R   R   R   R#   (    (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyR      s6   										
				N(   R&   t   twisted.internetR    t   ProtocolR   (    (    (    sC   /usr/lib/python2.7/dist-packages/twisted/protocols/mice/mouseman.pyt   <module>   s   