� !A?h:U���� ddlmZddlZddlZddlZgd�ZGd�de��ZdZdZ edd ��Z d �Z Gd �d ��Z Gd �d��Z Gd�d��Zdd�ZdS)�)� namedtupleN)�open�Error� Wave_read� Wave_writec��eZdZdS)rN)�__name__� __module__� __qualname__���1/opt/alt/python-internal/lib64/python3.11/wave.pyrrRs�������Dr r�)N�b�hN�i� _wave_paramsz7nchannels sampwidth framerate nframes comptype compnamec���tt|����}tdt|��|��D]+}t|��D]}|||z|||zdz |z <��,t|��S)Nrr)� bytearray�len�range�bytes)�data�width� swapped_datar�js r� _byteswapr]s����S��Y�Y�'�'�L� �1�c�$�i�i�� '� '�:�:���u��� :� :�A�.2�1�q�5�k�L��U��Q���*� +� +� :� �� � �r c�>�eZdZd d�Zd�Zd�Zdd�Zd�Zdd �Zd �Z d S)�_ChunkTFc��d|_||_|rd}nd}||_|�d��|_t |j��dkrt � tj|dz|�d����d|_ n#tj $r t d�wxYw|r|j dz |_ d|_ |j� ��|_ d|_dS#tt f$r d|_YdSwxYw) NF�>�<��Lr�T)�closed�align�file�read� chunknamer�EOFError�struct� unpack_from� chunksize�error� size_read�tell�offset�seekable�AttributeError�OSError)�selfr(r'� bigendian� inclheader�strflags r�__init__z_Chunk.__init__hs���� ��� � � ��G�G��G��� ����1����� �t�~� � �� "� "��N� %�#�/��� �T�Y�Y�q�\�\�J�J�1�M�D�N�N���|� %� %� %��� $� %���� � 0�!�^�a�/�D�N���� !��)�.�.�*�*�D�K�!�D�M�M�M����(� "� "� "�!�D�M�M�M�M� "���s�6B�B&�C)�)D�Dc�� |jS�N)r*�r6s r�getnamez_Chunk.getname�s ��8��~�r c�h�|js* |���d|_dS#d|_wxYwdS)NT)r&�skipr=s r�closez _Chunk.close�sF���{� #� #�� � � � � �"�� � � ��d�� �"�"�"�"�  #� #s�&� /rc�&� |jrtd���|jstd���|dkr ||jz}n|dkr ||jz}|dks ||jkrt �|j�|j |zd��||_dS)N�I/O operation on closed filez cannot seekr�r) r&� ValueErrorr3r5r0r.� RuntimeErrorr(�seekr2)r6�pos�whences rrGz _Chunk.seek�s��� � �;� =��;�<�<� <��}� )��-�(�(� (� �Q�;�;����&�C�C� �q�[�[����&�C� ��7�7�c�D�N�*�*�� � � ���t�{�S�(�!�,�,�,�����r c�<�|jrtd���|jS)NrC)r&rEr0r=s rr1z _Chunk.tell�s#�� �;� =��;�<�<� <��~�r �����c��� |jrtd���|j|jkrdS|dkr|j|jz }||j|jz kr|j|jz }|j�|��}|jt |��z|_|j|jkrG|jr@|jdzr6|j�d��}|jt |��z|_|S)NrCr rr)r&rEr0r.r(r)rr')r6�sizer�dummys rr)z _Chunk.read�s��� � �;� =��;�<�<� <� �>�T�^� +� +��3� �!�8�8��>�D�N�2�D� �$�.�4�>�1� 1� 1��>�D�N�2�D��y�~�~�d�#�#����#�d�)�)�3��� �>�T�^� +� +� �:� ,� �N�Q� � ,��I�N�N�1�%�%�E�!�^�c�%�j�j�8�D�N�� r c��� |jrtd���|jrb |j|jz }|jr|jdzr|dz}|j�|d��|j|z|_dS#t$rYnwxYw|j|jkrMtd|j|jz ��}|� |��}|st�|j|jk�KdSdS)NrCri ) r&rEr3r.r0r'r(rGr5�minr)r+)r6�nrNs rr@z _Chunk.skip�s �� � �;� =��;�<�<� <� �=� � ��N�T�^�3���:��4�>�A�#5���A��A�� ���q�!�$�$�$�!%��!�!3������� � � ��� �����n�t�~�-�-��D�$�.�4�>�9�:�:�A��I�I�a�L�L�E�� ��� �n�t�~�-�-�-�-�-�-s�AA1�1 A>�=A>N)TTF)r)rK) r r r r:r>rArGr1r)r@r r rrrgs�������!�!�!�!�2���#�#�#�����&��� ����.����r rc��eZdZ d�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z d �Z d �Z d �Z d �Zd �Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)rc���d|_d|_t|d���|_|j���dkrt d���|j�d��dkrt d���d|_d|_ d|_ t|jd���}n#t$rYn�wxYw|���}|d kr|� |��d|_n?|d kr9|jst d ���||_|j |j z|_d|_ n|�����|jr|jst d ���dS) Nr)r7�RIFFz file does not start with RIFF idr#�WAVEznot a WAVE filer�fmt �datazdata chunk before fmt chunkz#fmt chunk and/or data chunk missing)�_convert� _soundposr�_filer>rr)�_fmt_chunk_read� _data_chunk�_data_seek_neededr+�_read_fmt_chunkr.� _framesize�_nframesr@)r6r(�chunkr*s r�initfpzWave_read.initfp�s����� �����D�a�0�0�0�� � �:� � � � �7� *� *��:�;�;� ;� �:�?�?�1� � �� (� (��)�*�*� *� ������ �%&�D� "� ��t�z�q�9�9�9����� � � ��� ����� � ���I��G�#�#��$�$�U�+�+�+�'(��$�$��g�%�%��+�?�� =�>�>�>�#(�� � %��4�?� B�� �)*��&�� �J�J�L�L�L�# �$�#� ?�4�+;� ?��=�>�>� >� ?� ?s�B,�, B9�8B9c���d|_t|t��rtj|d��}||_ |�|��dS#|jr|����xYw)N�rb��_i_opened_the_file� isinstance�str�builtinsrrbrA�r6�fs rr:zWave_read.__init__sq��"&��� �a�� � � (�� �a��&�&�A�&'�D� #� � �K�K��N�N�N�N�N�� ��&� ���� � � � ���� �A�A/c�.�|���dSr<�rAr=s r�__del__zWave_read.__del__!��� � � � � � � � r c��|Sr<r r=s r� __enter__zWave_read.__enter__$���� r c�.�|���dSr<rn�r6�argss r�__exit__zWave_read.__exit__'rpr c��|jSr<)rZr=s r�getfpzWave_read.getfp-s ���z�r c�"�d|_d|_dS)Nrr)r]rYr=s r�rewindzWave_read.rewind0s��!"�������r c�`�d|_|j}|rd|_|���dSdSr<)rZrfrA�r6r(s rrAzWave_read.close4s<���� ��&�� � �&*�D� #� �J�J�L�L�L�L�L� � r c��|jSr<)rYr=s rr1zWave_read.tell;� ���~�r c��|jSr<)� _nchannelsr=s r� getnchannelszWave_read.getnchannels>� ����r c��|jSr<)r`r=s r� getnframeszWave_read.getnframesAs ���}�r c��|jSr<)� _sampwidthr=s r� getsampwidthzWave_read.getsampwidthDr�r c��|jSr<)� _framerater=s r� getframeratezWave_read.getframerateGr�r c��|jSr<�� _comptyper=s r� getcomptypezWave_read.getcomptypeJrr c��|jSr<�� _compnamer=s r� getcompnamezWave_read.getcompnameMrr c ��t|���|���|���|���|���|�����Sr<)rr�r�r�r�r�r�r=s r� getparamszWave_read.getparamsPsh���D�-�-�/�/��1B�1B�1D�1D��(�(�*�*�D�O�O�,=�,=��'�'�)�)�4�+;�+;�+=�+=�?�?� ?r c��dSr<r r=s r� getmarkerszWave_read.getmarkersU����tr c� �td����Nzno marks�r�r6�ids r�getmarkzWave_read.getmarkX����J���r c�b�|dks ||jkrtd���||_d|_dS)Nrzposition not in ranger)r`rrYr])r6rHs r�setposzWave_read.setpos[s;�� ��7�7�c�D�M�)�)��/�0�0� 0����!"����r c���|jrN|j�dd��|j|jz}|r|j�|d��d|_|dkrdS|j�||jz��}|jdkr%tjdkrt||j��}|j r|r|� |��}|jt|��|j |jzzz|_|S)Nrr r�big) r]r\rGrYr_r)r��sys� byteorderrrXrr�)r6�nframesrHrs r� readframeszWave_read.readframesas��� � !� '� � � !� !�!�Q� '� '� '��.�4�?�2�C�� .�� �%�%�c�1�-�-�-�%&�D� "� �a�<�<��3���$�$�W�t��%>�?�?�� �?�a� � �C�M�U�$:�$:��T�4�?�3�3�D� �=� '�T� '��=�=��&�&�D���#�d�)�)���$�/�8Y�*Z�Z���� r c�8� tjd|�d����\}|_|_}}n#tj$r t d�wxYw|tkro tjd|�d����d}n#tj$r t d�wxYw|dzdz|_|jstd���ntd |�����|jstd ���|j|jz|_ d |_ d |_ dS) Nz � � ���������� ������������������������������?�?�?� ��� � � �#�#�#� ���**�*�*�*�*r rc��eZdZ d�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z d �Z d �Z d �Z d �Zd �Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�ZdS)rc���d|_t|t��rtj|d��}||_ |�|��dS#|jr|����xYw)N�wbrerjs rr:zWave_write.__init__�sq��"&��� �a�� � � (�� �a��&�&�A�&'�D� #� � �K�K��N�N�N�N�N�� ��&� ���� � � � ���rlc��||_d|_d|_d|_d|_d|_d|_d|_d|_d|_ dS)NrF) rZrXr�r�r�r`�_nframeswritten� _datawritten� _datalength�_headerwrittenr}s rrbzWave_write.initfp�sR���� ��� ������������ � ���������#����r c�.�|���dSr<rnr=s rrozWave_write.__del__�rpr c��|Sr<r r=s rrrzWave_write.__enter__�rsr c�.�|���dSr<rnrus rrwzWave_write.__exit__�rpr c�j�|jrtd���|dkrtd���||_dS)N�0cannot change parameters after starting to writerr�)r�rr�)r6� nchannelss r� setnchannelszWave_write.setnchannels�s@�� � � L��J�K�K� K� �q�=�=��+�,�,� ,�#����r c�<�|jstd���|jS)Nznumber of channels not set)r�rr=s rr�zWave_write.getnchannels�s#���� 6��4�5�5� 5���r c�v�|jrtd���|dks|dkrtd���||_dS)Nr�rr#r�)r�rr�)r6r�s r� setsampwidthzWave_write.setsampwidth�sH�� � � L��J�K�K� K� �q�=�=�I��M�M��*�+�+� +�#����r c�<�|jstd���|jS)Nzsample width not set)r�rr=s rr�zWave_write.getsampwidth�s#���� 0��.�/�/� /���r c��|jrtd���|dkrtd���tt|����|_dS)Nr�rzbad frame rate)r�r�int�roundr�)r6� framerates r� setframeratezWave_write.setframerate�sP�� � � L��J�K�K� K� ��>�>��(�)�)� )��e�I�.�.�/�/����r c�<�|jstd���|jS)Nzframe rate not set)r�rr=s rr�zWave_write.getframerate�s#���� .��,�-�-� -���r c�@�|jrtd���||_dS�Nr�)r�rr`)r6r�s r� setnframeszWave_write.setnframes�s(�� � � L��J�K�K� K��� � � r c��|jSr<�r�r=s rr�zWave_write.getnframes�� ���#�#r c�t�|jrtd���|dvrtd���||_||_dS)Nr�)r�zunsupported compression type)r�rr�r�)r6�comptype�compnames r� setcomptypezWave_write.setcomptype�sI�� � � L��J�K�K� K� �9� $� $��6�7�7� 7�!���!����r c��|jSr<r�r=s rr�zWave_write.getcomptype�rr c��|jSr<r�r=s rr�zWave_write.getcompnamerr c��|\}}}}}}|jrtd���|�|��|�|��|�|��|�|��|�||��dSr�)r�rr�r�r�r�r�)r6�paramsr�r�r�r�r�r�s r� setparamszWave_write.setparamss���GM�D� �9�i��(�H� � � L��J�K�K� K� ���)�$�$�$� ���)�$�$�$� ���)�$�$�$� ���� � � � ����8�,�,�,�,�,r c��|jr|jr|jstd���t |j|j|j|j|j|j��S)Nznot all parameters set)r�r�r�rrr`r�r�r=s rr�zWave_write.getparamssX���� 2�d�o� 2�T�_� 2��0�1�1� 1��D�O�T�_�d�o��m�T�^�T�^�=�=� =r c� �td���)Nzsetmark() not supportedr�)r6r�rH�names r�setmarkzWave_write.setmarks���-�.�.�.r c� �td���r�r�r�s rr�zWave_write.getmarkr�r c��dSr<r r=s rr�zWave_write.getmarkersr�r c��|jSr<r�r=s rr1zWave_write.tellr�r c�(�t|ttf��s"t|���d��}|�t |����t |��|j|jzz}|j r|� |��}|jdkr%tj dkrt||j��}|j �|��|xjt |��z c_|j|z|_dS)N�Brr�)rgrr� memoryview�cast�_ensure_header_writtenrr�r�rXr�r�rrZ�writer�r�)r6rr�s r�writeframesrawzWave_write.writeframesraw s����$�� � 2�3�3� .��d�#�#�(�(��-�-�D� �#�#�C��I�I�.�.�.��d�)�)���$�/� A�B�� �=� '��=�=��&�&�D� �?�a� � �C�M�U�$:�$:��T�4�?�3�3�D� � ������� ���S��Y�Y�&���#�3�g�=����r c�|�|�|��|j|jkr|���dSdSr<)r�r�r�� _patchheader)r6rs r� writeframeszWave_write.writeframes-sG�� ���D�!�!�!� � �t�0� 0� 0� � � � � � � � � 1� 0r c�v� |jrR|�d��|j|jkr|���|j���d|_|j}|rd|_|���dSdS#d|_|j}|rd|_|���wwxYw)Nr)rZr�r�r�r��flushrfrAr}s rrAzWave_write.close2s��� ��z� #��+�+�A�.�.�.��#�t�'8�8�8��%�%�'�'�'�� � � �"�"�"��D�J��*�D�� �*.��'�� � � � � � � � � ���D�J��*�D�� �*.��'�� � � � � � � ���s �AB � .B8c���|jsY|jstd���|jstd���|jstd���|�|��dSdS)Nz# channels not specifiedzsample width not specifiedzsampling rate not specified)r�r�rr�r�� _write_header)r6�datasizes rr�z!Wave_write._ensure_header_writtenDs|���"� )��?� 8��6�7�7�7��?� :��8�9�9�9��?� ;��9�:�:�:� � � �x� (� (� (� (� (� )� )r c���|j�d��|js||j|jzz|_|j|jz|jz|_ |j���|_n#ttf$r d|_YnwxYw|j�tj dd|jzdddt|j|j |j|j z|jz|j|jz|jdzd� � ��|j�|j���|_|j�tj d |j����d |_dS) NrTz�>�>� � �����"�"�"��,����r N)r r r r:rbrorrrwr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r1r�r�rAr�r�r�r r rrr�s��������2 � � � $� $� $���������� $�$�$���� $�$�$���� 0�0�0����  � � � $�$�$�"�"�"�������-�-�-�=�=�=� /�/�/� � � ����$�$�$� >� >� >� � � � � � �$)�)�)�#�#�#�* -� -� -� -� -r rc��|�t|d��r|j}nd}|dvrt|��S|dvrt|��St d���)N�moderd)�rrd)�wr�z$mode must be 'r', 'rb', 'w', or 'wb')�hasattrr�rrr)rkr�s rrrpsd�� �|� �1�f� � � ��6�D�D��D� �{�����|�|�� �� � ��!�}�}���:�;�;�;r r<)� collectionsrrir,r��__all__� Exceptionrr�� _array_fmtsrrrrrrr r r�rsV��G�R#�"�"�"�"�"����� � � � � � � � � 7� 6� 6�� � � � � �I� � � ���'� ��z�.�N�P�P� ����l�l�l�l�l�l�l�l�^s*�s*�s*�s*�s*�s*�s*�s*�la-�a-�a-�a-�a-�a-�a-�a-�H <� <� <� <� <�