
    љi                         S SK r S SKJr  S SKJr  SSKJr   " S S\5      r\S:X  a(  \" 5       r\ R                  " \R                  5       5        gg)	    N)time)
udp_client   )FaceControllerBasec                   f   ^  \ rS rSrSS\S\S\S\S\S\4U 4S jjjrS	\S
\	4S jr
S rS rSrU =r$ )VRChatFaceController   osc_addressfacesneutral_keyhostportdebugc                   > [         TU ]  U5        Xl        U=(       d	    SSSSSSS.U l        X0l        U R                  U l        X@l        XPl        [        R                  " U R                  U R                  5      U l
        g )Nr   r               )neutraljoyangrysorrowfunsurprise)super__init__r
   r   r   _current_facer   r   r   SimpleUDPClientclient)selfr
   r   r   r   r   r   	__class__s          N/home/james-whalen/.local/lib/python3.13/site-packages/aiavatar/face/vrchat.pyr   VRChatFaceController.__init__   su    & 


 '!--		 00DIIF    namedurationc                 h  #    US:  a  U R                  [        5       U-   5        U R                  R                  U5      nUc   U R                  R                  SU S35        g U R                  R                  SU SU S35        U R                  R                  U R                  U5        Xl
        g 7f)Nr   zFace 'z' is not registeredzface:  ())subscribe_resetr   r   getloggerwarninginfor   send_messager
   current_face)r    r%   r&   	osc_values       r"   set_faceVRChatFaceController.set_face   s     a<  (!23JJNN4(	KK&.A BC6$r)A67  !1!19= s   B0B2c                 &   U R                   R                  SU R                   SU R                  U R                      S35        U R                  R                  U R                  U R                  U R                     5        U R                  U l        g )NzReset face: r(   r)   )r,   r.   r   r   r   r/   r
   r0   r    s    r"   resetVRChatFaceController.reset'   sr    <(8(8'9DJJtGWGW<X;YYZ[\  !1!14::d>N>N3OP ,,r$   c                 >     U R                  [        S5      S5        M  )NzFace name: g      @)r2   inputr5   s    r"   test_oscVRChatFaceController.test_osc,   s    MM%.4 r$   )r   r   r0   r   r   r   r
   r   )z/avatar/parameters/FaceOSCNr   z	127.0.0.1i(#  F)__name__
__module____qualname____firstlineno__strdictintboolr   floatr2   r6   r:   __static_attributes____classcell__)r!   s   @r"   r   r      sm    GC GT Geh Gz} G  RU G  cg G G&!3 !% !-
5 5r$   r   __main__)asyncior   	pythonoscr    r   r   r<   vrc_face_controllerrunr:    r$   r"   <module>rN      sM         (5- (5T z.0KK#,,./ r$   