o
    *ήc`                     @   s   d dl mZ ddlmZ G dd deZG dd deZG dd	 d	eZG d
d deZG dd deZG dd deZ	G dd deZ
G dd deZG dd deZdS )    )absolute_import   )Typec                       0   e Zd ZdZdZdZ fddZdd Z  ZS )Midiz1
    Implements the Midi audio type matcher.
    z
audio/midimidic                       t t| jtjtjd d S N)mime	extension)superr   __init__MIME	EXTENSIONself	__class__ ;/tmp/pip-target-vg8gfxp4/lib/python/filetype/types/audio.pyr         

zMidi.__init__c                 C   <   t |dko|d dko|d dko|d dko|d dkS )	N   r   M   r   T      h   d   lenr   bufr   r   r   match      



z
Midi.match	__name__
__module____qualname____doc__r   r   r   r"   __classcell__r   r   r   r   r          r   c                       r   )Mp3z0
    Implements the MP3 audio type matcher.
    z
audio/mpegmp3c                    r   r	   )r   r+   r   r   r   r   r   r   r   r   $   r   zMp3.__init__c                 C   sx   t |dko;|d dkr|d dkr|d dkp;|d dko#|d dkp;|d dko/|d d	kp;|d dko;|d d
kS )Nr   r   I   r   D   3               r   r    r   r   r   r"   *   s   




z	Mp3.matchr$   r   r   r   r   r+      r*   r+   c                       r   )M4az0
    Implements the M4A audio type matcher.
    z	audio/mp4m4ac                    r   r	   )r   r4   r   r   r   r   r   r   r   r   >   r   zM4a.__init__c                 C   s   t |dkoG|d dkr0|d dkr0|d dkr0|d d	kr0|d
 dkr0|d dkr0|d dkpG|d dkoG|d dkoG|d dkoG|d dkS )N
      f      t      y      p      r   	   4   A   r   r   r   r       r   r    r   r   r   r"   D   s*   








z	M4a.matchr$   r   r   r   r   r4   7   r*   r4   c                       r   )Oggz0
    Implements the OGG audio type matcher.
    z	audio/oggoggc                    r   r	   )r   rD   r   r   r   r   r   r   r   r   Z   r   zOgg.__init__c                 C   s<   t |dko|d dko|d dko|d dko|d dkS )Nr   r   O   r   g   r   S   r   r    r   r   r   r"   `   r#   z	Ogg.matchr$   r   r   r   r   rD   S   r*   rD   c                       r   )Flacz1
    Implements the FLAC audio type matcher.
    zaudio/x-flacflacc                    r   r	   )r   rI   r   r   r   r   r   r   r   r   o   r   zFlac.__init__c                 C   r   )	Nr   r   r8   r   L   r   a   C   r   r    r   r   r   r"   u   r#   z
Flac.matchr$   r   r   r   r   rI   h   r*   rI   c                       r   )Wavz0
    Implements the WAV audio type matcher.
    zaudio/x-wavwavc                    r   r	   )r   rN   r   r   r   r   r   r   r   r      r   zWav.__init__c                 C   sl   t |dko5|d dko5|d dko5|d dko5|d dko5|d	 d
ko5|d dko5|d dko5|d dkS )N   r   R   r   r-   r   F   r   r?   W   r@   rB   r6   V   E   r   r    r   r   r   r"      "   







z	Wav.matchr$   r   r   r   r   rN   }   r*   rN   c                       r   )Amrz0
    Implements the AMR audio type matcher.
    z	audio/amramrc                    r   r	   )r   rW   r   r   r   r   r   r   r   r      r   zAmr.__init__c                 C   sT   t |dko)|d dko)|d dko)|d dko)|d d	ko)|d
 dko)|d dkS )NrP   r   #   r   !   r   rB   r   r   r7   rQ   r9   r6   r   r    r   r   r   r"      s   





z	Amr.matchr$   r   r   r   r   rW      r*   rW   c                       r   )Aacz&Implements the Aac audio type matcher.z	audio/aacaacc                    r   r	   )r   r[   r   r   r   r   r   r   r   r      r   zAac.__init__c                 C   s0   |d d t ddgkp|d d t ddgkS )Nr   r0         )	bytearrayr    r   r   r   r"      s   z	Aac.matchr$   r   r   r   r   r[      s    r[   c                       r   )Aiffz1
    Implements the AIFF audio type matcher.
    zaudio/x-aiffaiffc                    r   r	   )r   r`   r   r   r   r   r   r   r   r      r   zAiff.__init__c                 C   sl   t |dko5|d dko5|d dko5|d dko5|d d	ko5|d
 dko5|d dko5|d dko5|d dkS )NrP   r   rR   r   rF   r   rQ   r   r   r?   rB   r@   r-   r6   r   r    r   r   r   r"      rV   z
Aiff.matchr$   r   r   r   r   r`      r*   r`   N)
__future__r   baser   r   r+   r4   rD   rI   rN   rW   r[   r`   r   r   r   r   <module>   s   