+
    Qi  c                   s(  a  R t0 t R tRtRtRtRtRt^ RIt^ RIH	t	  ]P                  ! RR	4       ^ R
IHt Rt^RIHt ^RIHtHt  ! R R4      t]! 4       t] ^ k R R ltR#   ]]]P                  P                  P                   3 d    Rt LWi ; i)zUtilities for playing sounds.z$Id:$z$Revision:$z$Date:$zCopyright (c) 2016 Orca TeamZLGPLN)GLibGstz1.0)r   TF)debug)IconTonec                   s   a  ] tR t^*t o R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RV 3R
 lR llt	RV 3R lR llt
V 3R lR ltRV 3R lR lltRV 3R lR lltV 3R lR ltRtV tR# )PlayerzPlays Icons and Tones.c                   < V ^8  d   QhRR/#    returnN format__classdict__   "//usr/lib/python3.14/site-packages/orca/sound.py__annotate__Player.__annotate__-   s      $     c                s    R V n         RV n        RV n        RV n        RV n        \
        V n        V P                  '       g+   Rp\        P                  ! \        P                  VR4       R# V P                  4        R# )FNz!SOUND: Gstreamer is not availableT)_initialized_source_sink_player	_pipeline_GSTREAMER_AVAILABLE_gstreamer_availabler   print_message
LEVEL_INFOinit)selfmsgs   & r   __init__ZPlayer.__init__-   sc    "'+/)-
+/.2*>!(((5C 0 0#t<		r   c                R   < V ^8  d   QhRS[ P                  RS[ P                  RR/# r   _busmessager	   Nr   ZBusZMessager   r   r   r   r   <   s*     = =sww = = =r   c                   VP                   \        P                  P                  8X  d6   V P                  P                  \        P                  P                  4       R# VP                   \        P                  P                  8X  ds   V P                  P                  \        P                  P                  4       VP                  4       w  r4R V 2p\        P                  ! \        P                  VR4       R# R# )zSOUND ERROR: TN)typer   MessageTypeEOSr   	set_stateStateNULLERRORparse_errorr   r   r   r   r"   r#   ZerrorZ_infor      &&&   r   _on_player_messageZPlayer._on_player_message<   s    <<3??...LL""399>>2\\S__222LL""399>>2"..0LE!%)C 0 0#t<	 3r   c                r    r!   r$   r   r   r   r   r   F   s*     = =#'' =CKK =D =r   c                r%   )zSOUND: TN)r&   r   r'   r(   r   r)   r*   r+   r,   r-   r   r   r   r.   r/   r   _on_pipleline_messageZPlayer._on_pipleline_messageF   s    <<3??...NN$$SYY^^4\\S__222NN$$SYY^^4"..0LEE7#C 0 0#t<	 3r   c                s:   < V ^8  d   QhRS[ P                  RS[/# )r   elementr	   )r   Elementboolr   r   r   r   r   P   s      3;; 4 r   c                sX    VP                  \        P                  P                  4       R # )F)r)   r   r*   r+   r   r2      &&r   _on_timeoutZPlayer._on_timeoutP   s    #))..)r   c                *   < V ^8  d   QhRS[ RS[RR/# )r   icon	interruptr	   N)r   r4   r   r   r   r   r   T   s"     2 2t 2 2 2r   c                s4   V'       d4   V P                   P                  \        P                  P                  4       V P                   P                  RRVP                   24       V P                   P                  \        P                  P                  4       R# )zIPlays a sound icon, interrupting the current play first unless specified.Zurizfile://N)r   r)   r   r*   r+   set_propertyZpathPLAYING)r   r9   r:   s   &&&r   
_play_iconZPlayer._play_iconT   s\     LL""399>>2!!%7499+)>?syy001r   c                r8   )r   toner:   r	   N)r   r4   r   r   r   r   r   ^   s'     E Et E E Er   c                sT   V'       d4   V P                   P                  \        P                  P                  4       V P
                  P                  RVP                  4       V P
                  P                  RVP                  4       V P
                  P                  RVP                  4       V P                   P                  \        P                  P                  4       \        RVP                  ,          4      p\        P                  ! W0P                  V P                   4       R# )zCPlays a tone, interrupting the current play first unless specified.volumeZfreqwavei  N)r   r)   r   r*   r+   r   r;   r?   Z	frequencyr@   r<   Zintdurationr    Ztimeout_addr7   )r   r>   r:   rA      &&& r   
_play_toneZPlayer._play_tone^   s    
 NN$$SYY^^4!!(DKK8!!&$..9!!&$))4  !2!23tdmm+,#3#3T^^Dr   c                r   r   r
   r   r   r   r   r   m   s     #! #!d #!r   c                sH   V P                   '       d   R# V P                  '       g   R# \        P                  ! R4       \        P                  P                  RR4      V n        V P                  f+   Rp\        P                  ! \        P                  VR4       R# V P                  P                  4       pVP                  4        VP                  RV P                  4       \        P                  ! RR7      V n        V P                  P                  4       pVP                  4        VP                  RV P                   4       \        P                  P                  R	R
4      V n        \        P                  P                  RR4      V n        V P"                  e   V P$                  f   R# V P                  P'                  V P"                  4       V P                  P'                  V P$                  4       V P"                  P)                  V P$                  4       RV n         R# )z(Re)Initializes the Player.NZplaybinZplayerz1SOUND: Gstreamer is available, but player is NoneTr#   zorca-pipeline)ZnameZaudiotestsrcZsrcZautoaudiosinkZoutput)r   r   r   r   ZElementFactoryZmaker   r   r   r   Zget_busZadd_signal_watchZconnectr0   ZPipeliner   r1   r   r   ZaddZlink)r   r   Zbuss   &  r   r   ZPlayer.initm   sy    ((())..y(C<<EC 0 0#t<ll""$It667?;nn$$&It99:))..~uE'',,_hG
<<4::#54<<(4::&$**% r   c                s:   < V ^8  d   QhRS[ S[,          RS[RR/# )r   itemr:   r	   N)r   r   r4   r   r   r   r   r      s&     	? 	? 	? 	? 	?r   c                s    \        V\        4      '       d   V P                  W4       R# \        V\        4      '       d   V P	                  W4       R# RVR.p\
        P                  ! \
        P                  VR4       R# )zDPlays a sound, interrupting the current play first unless specified.zSOUND:zis not an Icon or ToneTN)Z
isinstancer   r=   r   rC   r   Zprint_tokensr   )r   rD   r:   ZtokensrB   r   playZPlayer.play   s[     dD!!OOD,d##OOD,&>?Fu//>r   Nc                sF   < V ^8  d   QhRS[ P                  R,          RR/# )r   r2   Nr	   )r   r3   r   r   r   r   r      s$     5 5CKK$. 5$ 5r   c                s   V P                   '       g   R# V'       d,   VP                  \        P                  P                  4       R# V P
                  '       d4   V P
                  P                  \        P                  P                  4       V P                  '       d6   V P                  P                  \        P                  P                  4       R# R# )zStops play.N)r   r)   r   r*   r+   r   r   r5   r6   r   stopZPlayer.stop   sz     (((ciinn-<<<LL""399>>2>>>NN$$SYY^^4 r   c                r   r   r
   r   r   r   r   r      s     * *$ *r   c                sj    V P                   '       g   R# V P                  4        RV n        RV n         R# )zShuts down the sound utilities.NF)r   rF   r   )r   s   &r   shutdownZPlayer.shutdown   s,     (((		!$)!r   )r   r   r   r   r   r   )T)N)Z__name__Z
__module__Z__qualname__Z__firstlineno____doc__r   r0   r1   r7   r=   rC   r   rE   rF   rG   Z__static_attributes__Z__classdictcell__)r      @r   r   r   *   so       = == = 2 2E E#! #!J	? 	?5 5 * *r   r   c                s$    V ^8  d   QhR\         /# )r   r	   )r   r      "r   r   r      s      F r   c                 s    \         # )zReturns the Player singleton.)r   r
   r   r   
get_playerrL      s	     Nr   c                s@    V ^8  d   Qh/ ^ \         9   d
   \        ;R&   # )r   r   )__conditional_annotations__r   rJ   rK   r   r   r      s     # #F   G $r   )rM   rH   Z__id__Z__version__Z__date__Z__copyright__Z__license__ZgiZgi.repositoryr    Zrequire_versionr   r   ZImportErrorZ
ValueErrorZ
repositoryZGErrorZ r   Zsound_generatorr   r   r   r   rL   r   )rM   rI   r   <module>rN      s   ( $. 	  ue$!    'K* K*Z ( o 	Z!3!3!:!:; ! !s   A$ $*BB