|
arduino-audio-tools
|
Logic to detemine the mime type from the content. By default the following mime types are supported (audio/aac, audio/mpeg, audio/vnd.wave, audio/ogg, audio/flac). You can register your own custom detection logic to cover additional file types. More...
#include <MimeDetector.h>
Classes | |
| struct | Check |
Public Member Functions | |
| MimeDetector (bool setupDefault=true) | |
| bool | begin () |
| Sets is_first to true. | |
| void | clear () |
| Clears all mime rules and resets the actual selection. | |
| void | end () |
| Clears the actual mime and resets the state. | |
| const char * | mime () |
| void | setCheck (const char *mime, bool(*check)(uint8_t *start, size_t len), bool isActvie=true) |
| adds/updates the checking logic for the indicated mime | |
| void | setDefaultMime (const char *mime) |
| Provides the default mime type if no mime could be determined. | |
| int | setMimeActive (const char *mimePrefix, bool active) |
| sets the mime rules active or inactive | |
| void | setMimeCallback (void(*callback)(const char *)) |
| size_t | write (uint8_t *data, size_t len) |
| write the header to determine the mime | |
Static Public Member Functions | |
| static bool | checkAAC (uint8_t *start, size_t len) |
| static bool | checkAACExt (uint8_t *start, size_t len) |
| static bool | checkFLAC (uint8_t *start, size_t len) |
| static bool | checkM4A (uint8_t *header, size_t len) |
| static bool | checkMP2T (uint8_t *start, size_t len) |
| MPEG-2 TS Byte Stream Format. | |
| static bool | checkMP3 (uint8_t *start, size_t len) |
| static bool | checkMP3Ext (uint8_t *start, size_t len) |
| static bool | checkOGG (uint8_t *start, size_t len) |
| static bool | checkOggFLAC (uint8_t *start, size_t len) |
| static bool | checkOggOpus (uint8_t *start, size_t len) |
| Checks for OGG Opus format. | |
| static bool | checkOggVorbis (uint8_t *start, size_t len) |
| Checks for OGG Vorbis format. | |
| static bool | checkSID (uint8_t *start, size_t len) |
| Commodore 64 SID File. | |
| static bool | checkWAV (uint8_t *start, size_t len) |
| static bool | checkWAV_ADPCM (uint8_t *start, size_t len) |
Protected Member Functions | |
| void | determineMime (void *data, size_t len) |
| Update the mime type. | |
| const char * | lookupMime (uint8_t *data, size_t len) |
| Default logic which supports aac, mp3, wav and ogg. | |
Protected Attributes | |
| const char * | actual_mime = nullptr |
| Vector< Check > | checks {0} |
| const char * | default_mime = nullptr |
| bool | is_first = false |
| void(* | notifyMimeCallback )(const char *mime) = nullptr |
Logic to detemine the mime type from the content. By default the following mime types are supported (audio/aac, audio/mpeg, audio/vnd.wave, audio/ogg, audio/flac). You can register your own custom detection logic to cover additional file types.
Please note that the distinction between mp3 and aac is difficult and might fail in some cases. FLAC detection supports both native FLAC and OGG FLAC formats.
|
inline |
|
inline |
Sets is_first to true.
Checks for OGG Opus format.
Detects OGG containers that contain Opus-encoded audio data. Opus in OGG streams typically have "OpusHead" as the codec identifier in the first page of the stream.
| start | Pointer to the data buffer |
| len | Length of the data buffer |
Checks for OGG Vorbis format.
Detects OGG containers that contain Vorbis-encoded audio data. Vorbis in OGG streams have "\x01vorbis" as the codec identifier in the first page of the stream.
| start | Pointer to the data buffer |
| len | Length of the data buffer |
|
inline |
Clears all mime rules and resets the actual selection.
|
inline |
Clears the actual mime and resets the state.
Default logic which supports aac, mp3, wav and ogg.
Provides the actual mime type, that was determined from the first available data
Implements MimeSource.
|
inline |
adds/updates the checking logic for the indicated mime
Provides the default mime type if no mime could be determined.
sets the mime rules active or inactive