
    i_                         d Z ddlZddlZddlZ G d d      Zd Zd Zedk(  r3 e	ej                        dk7  r e        y eej                  d	          yy)
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                   :    e Zd ZdZdZd Zd Zd Zd Zd Z	d	dZ
y)
WindowzThe 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                 
   t         j                  t         j                  S t        j                  |       }t        j
                  j                          t        j
                  j                  d      |_        |t         _        |S )zReturn an open Pygame window)iX  i  )	r   instanceobject__new__pgdisplayinitset_modescreen)clsargskwdsselfs       a/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pygame/examples/playmus.pyr   zWindow.__new__$   sV     ??&??"~~c"


jj))*5    c                    t         j                  j                  |       d| _        d| _        | j
                  j                  | j                         t         j                  j                          t        j                  j                          t        j                  j                  d d      | _        d| j                  _        t        | j                  j                         dz        | _        t        | j                  j#                         dz        | _        | j                   | j$                  z
  | _        | j)                  dd       y )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__zWindow.__init__/   s    


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


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

r   c                 V    t         j                  j                          d t        _        y r1   )r	   r
   quitr   r   r3   s    r   r6   zWindow.closeM   s    


r   c                    | j                   j                         \  }}| j                  }||z  }|dk  r||z   }t        |j	                  d      |      D ]x  \  }}||z  | j
                  z   }	| j                   j                  | j                  d||z  ||f       | j                  j                  | j                   d|	f|| j                         z t        j                  j                          y )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-   zWindow.write_linesQ   s    {{##%1&&k!!8D=D%djj&6= 	RLAyK$--/AKK%%1{?A{'K IIb!WiQ	R 	

r   )r   )__name__
__module____qualname____doc__r   r   r/   r4   r:   r6   r-   r2   r   r   r   r      s,     H	
.r   r   c                  0    t        d       t        d       y )NzUsage: python playmus.py <file>z/       python -m pygame.examples.playmus <file>)printr2   r   r   show_usage_messagerR   b   s    	
+,	
;<r   c                 x   t        |       5 }|j                  dd       t        j                  j	                  d       	 d}t        j                  j
                  j                  |        t        j                  j                  t        j                  d       t        j                  j
                  j                          |j                  dd       t        j                  j
                  j                         s|rt        j                  j                         }|j                  t        j                  k(  r|j                   }|t        j"                  k(  r~|r>t        j                  j
                  j%                          d}|j                  dd       nt        j                  j
                  j'                          d}|j                  d	d       n|t        j(                  k(  r| d
d j+                         dv r+d}t        j                  j
                  j-                          n*d}t        j                  j
                  j                          |rt        j                  j
                  j'                          |j                  |d       n|t        j.                  k(  r<|j                  dd       t        j                  j
                  j1                  d       n|t        j2                  t        j4                  fv rrd}t        j                  j
                  j7                          nG|j                  t        j8                  k(  r*d}t        j                  j
                  j7                          t        j                  j
                  j                         r|rt        j                  j                  t        j                  d       t        j                  j;                          	 ddd       t        j:                          y# t        j                  j;                          w xY w# 1 sw Y   AxY w)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QUITr<   )	file_pathwinpausederf   statuss         r   mainrx   g   s    
		 2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 ((..))+vF GGbllA.HHMMOe2f GGI HHMMOe2 2s0   3P0 MPP#.PP0 P--P00P9__main__      )rO   sysr"   r	   pygame.freetyper   rR   rx   rL   lenargvr2   r   r   <module>r      sb   $   E EP=
6r z
388}SXXa[ r   