
    ;3h                     ,    d Z ddlZddlmZ deddfdZy)z:Functions to play audio on Windows using native win32 APIs    N   )pr_err	mp3_fnamereturnc                    t         j                  dk7  rt        d      ddlmm}m} |j                  j                  |j                  |j                  |j                  g_        |j                  _        dt        dt        ffd}|j                  j                   dt        dd	ffd
} ||       } |d        |d| d        |d        |d       y	)z-Play mp3 file with given path using win32 APIwin32z"Function only available on Windowsr   )create_unicode_bufferwindllwintypes	long_namer   c                 V    d}	  |      } | ||      }||k\  r|j                   S |}&)z|
        Gets the DOS-safe short path name of a given long path.
        http://stackoverflow.com/a/23598461/200291
        r   )value)r   output_buf_size
output_bufneeded_get_short_path_name_wr	   s       \/var/www/html/audio-gradio/venv/lib/python3.12/site-packages/edge_playback/win32_playback.pyget_short_path_namez+play_mp3_win32.<locals>.get_short_path_name   sC    
 .?J+Iz?SF&(!'''$O     msgNc                 v     | ddd      }|dk7  r(t        d| d|  d       t        j                  d       yy)zSend MCI command stringr   zError z in mciSendString z
. Exiting.r   N)r   sysexit)r   resultmci_send_string_ws     r   mci_sendz play_mp3_win32.<locals>.mci_send(   sB    "31a0Q;VF8#5cU*EFHHQK r   z	Close AllzOpen "z" Type MPEGVideo Alias theMP3zPlay theMP3 WaitzClose theMP3)r   platformNotImplementedErrorctypesr	   r
   r   kernel32GetShortPathNameWLPCWSTRLPWSTRDWORDargtypesrestypestrwinmmmciSendStringW)	r   r
   r   r   r   mp3_shortnamer   r	   r   s	         @@@r   play_mp3_win32r+      s     ||w!"FGG ?>#__>>'#
 &.^^"%s %s % 33c d  (	2M[vm_$ABC ^r   )__doc__r   utilr   r'   r+    r   r   <module>r/      s!    @ 
 ,c ,d ,r   