
    &h_                         S r SSKrSSKrSSKr " S S5      rS rS r\S:X  a4  \	" \R                  5      S:w  a  \" 5         g\" \R                  S	   5        gg)
a  pygame.examples.playmus

A simple music player.

   Use pygame.mixer.music to play an audio file.

A window is created to handle keyboard events for playback commands.


Keyboard Controls
-----------------

space - play/pause toggle
r     - rewind
f     - fade out
q     - stop

    Nc                   D    \ rS rSrSrSrS rS rS rS r	S r
SS	 jrS
rg)Window   zThe application's Pygame window

A Window instance manages the creation of and drawing to a
window. It is a singleton class. Only one instance can exist.

Nc                    [         R                  b  [         R                  $ [        R                  U 5      n[        R
                  R                  5         [        R
                  R                  S5      Ul        U[         l        U$ )zReturn an open Pygame window)iX  i  )	r   instanceobject__new__pgdisplayinitset_modescreen)clsargskwdsselfs       O/var/www/auris/envauris/lib/python3.13/site-packages/pygame/examples/playmus.pyr	   Window.__new__$   sV     ??&??"~~c"


jj))*5    c                    [         R                  R                  U5        SU l        SU l        U R
                  R                  U R                  5        [         R                  R                  5         [        R                  R                  5         [        R                  R                  S S5      U l        SU R                  l        [        U R                  R                  5       S-  5      U l        [        U R                  R#                  5       S-  5      U l        U R                   U R$                  -
  U l        U R)                  SS5        g )N)            )          r      Tg      ?z
Press 'q' or 'ESCAPE' or close this window to quit
Press 'SPACE' to play / pause
Press 'r' to rewind to the beginning (restart)
Press 'f' to fade music out over 5 seconds

Window will quit automatically when music ends
r   )r
   r   set_caption
text_colorbackground_colorr   fillflippygamefreetyper   Fontfontoriginintget_sized_ascenderascenderget_sized_descender	descenderline_heightwrite_lines)r   titles     r   __init__Window.__init__/   s    


u%- 1../


OO((r2			DII88:S@ATYY::<sBC==4>>9?
 	
r   c                     U $ N r   s    r   	__enter__Window.__enter__F   s    r   c                 $    U R                  5         g)NF)close)r   exc_typeexc_valexc_tbs       r   __exit__Window.__exit__I   s    

r   c                 V    [         R                  R                  5         S [        l        g r4   )r
   r   quitr   r   r6   s    r   r:   Window.closeM   s    


r   c                    U R                   R                  5       u  p4U R                  nXE-  nUS:  a  Xb-   n[        UR	                  S5      U5       Ht  u  pxXu-  U R
                  -   n	U R                   R                  U R                  SXu-  X545        U R                  R                  U R                   SU	4XR                  5        Mv     [        R                  R                  5         g )Nr   
   )r   get_sizer.   	enumeratesplitr+   r"   r!   r'   	render_tor    r
   r   r#   )
r   textlinewhr.   nlinesi	text_lineys
             r   r/   Window.write_linesQ   s    {{##%&&!!8=D%djj&6=LA$--/AKK%%1?A'K IIb!WiQ > 	

r   )r+   r!   r-   r'   r.   r   r    )r   )__name__
__module____qualname____firstlineno____doc__r   r	   r1   r7   r>   r:   r/   __static_attributes__r5   r   r   r   r      s,     H	
.r   r   c                  0    [        S5        [        S5        g )NzUsage: python playmus.py <file>z/       python -m pygame.examples.playmus <file>)printr5   r   r   show_usage_messager[   b   s    	
+,	
;<r   c                    [        U 5       nUR                  SS5        [        R                  R	                  SS9   Sn[        R                  R
                  R                  U 5        [        R                  R                  [        R                  S5        [        R                  R
                  R                  5         UR                  SS5        [        R                  R
                  R                  5       (       d  U(       Ga  [        R                  R                  5       nUR                  [        R                  :X  Ga  UR                   nU[        R"                  :X  a  U(       a>  [        R                  R
                  R%                  5         SnUR                  SS5        GO[        R                  R
                  R'                  5         SnUR                  S	S5        GOU[        R(                  :X  a  U S
S R+                  5       S;   a+  Sn[        R                  R
                  R-                  5         O*Sn[        R                  R
                  R                  5         U(       a:  [        R                  R
                  R'                  5         UR                  US5        OU[        R.                  :X  a<  UR                  SS5        [        R                  R
                  R1                  S5        OU[        R2                  [        R4                  4;   a*  Sn[        R                  R
                  R7                  5         OHUR                  [        R8                  :X  a*  Sn[        R                  R
                  R7                  5         [        R                  R
                  R                  5       (       a  GM  U(       a  GM  [        R                  R                  [        R                  S5        [        R                  R;                  5          SSS5        [        R:                  " 5         g! [        R                  R;                  5         f = f! , (       d  f       NG= f)z&Play an audio file with pg.mixer.musiczLoading ...iD  )	frequencyFi  zPlaying ...
TzPaused ...
N)oggmp3modzRewound.z
Restarted.zFading out ...
i  r   )r   r/   r
   mixerr   musicloadtime	set_timer	USEREVENTplayget_busyeventwaittypeKEYDOWNkeyK_SPACEunpausepauseK_rlowerrewindK_ffadeoutK_qK_ESCAPEstopQUITrA   )	file_pathwinpausedero   statuss         r   mainr   g   s    
		cr*
&/	FHHNN	* GGbllC0HHNN!OOOR0((..))++vHHMMO66RZZ'%%Cbjj(!HHNN224%*FOOOR@HHNN002%)FOONB?$RS>//15JJ%/FHHNN113%1FHHNN//1!HHNN002OOFB7(:B?..t4 55!&++-VVrww&"FHHNN'')C ((..))++vvF GGbllA.HHMMOe 
f GGI HHMMOe 
	s/   0QM>P3>P3.P36Q3 QQ
Q$__main__      )rW   sysr$   r
   pygame.freetyper   r[   r   rS   lenargvr5   r   r   <module>r      sb   $   E EP=
6r z
388}SXXa[ r   