Arduino AudioKit HAL
audio_type_def.h
Go to the documentation of this file.
1 /**
2  * @file audio_type_def.h
3  * @author Phil Schatzmann
4  * @brief Audio Types used by the HAL
5  * @date 2021-12-12
6  *
7  * @copyright Copyright (c) 2021
8  *
9  */
10 #ifndef _AUDIO_TYPE_DEF_H_
11 #define _AUDIO_TYPE_DEF_H_
12 
13 #ifdef __cplusplus
14 extern "C"
15 {
16 #endif
17 
18 #define ESP_AUDIO_SAMPLERATE_8K (8000)
19 #define ESP_AUDIO_SAMPLERATE_11K (11025)
20 #define ESP_AUDIO_SAMPLERATE_16K (16000)
21 #define ESP_AUDIO_SAMPLERATE_22K (22050)
22 #define ESP_AUDIO_SAMPLERATE_32K (32000)
23 #define ESP_AUDIO_SAMPLERATE_44K (44100)
24 #define ESP_AUDIO_SAMPLERATE_48K (48000)
25 
26 #define ESP_AUDIO_BIT_8 (8)
27 #define ESP_AUDIO_BIT_16 (16)
28 #define ESP_AUDIO_BIT_24 (24)
29 #define ESP_AUDIO_BIT_32 (32)
30 
31 #define ESP_AUDIO_CHANNEL_MONO (1)
32 #define ESP_AUDIO_CHANNEL_DUAL (2)
33 
34 #define ESP_AUDIO_U32_AT(ptr) (((uint32_t)(ptr)[0] << 24) | ((uint32_t)(ptr)[1] << 16) | ((uint32_t)(ptr)[2] << 8) | ((uint32_t)(ptr)[3]))
35 #define ESP_AUDIO_U64_AT(ptr) (((uint64_t)(ptr)[0] << 56) | ((uint64_t)(ptr)[1] << 48) | ((uint64_t)(ptr)[2] << 40) | ((uint64_t)(ptr)[3] << 32) | ((uint64_t)(ptr)[4] << 24) | ((uint64_t)(ptr)[5] << 16) | ((uint64_t)(ptr)[6] << 8) | ((uint64_t)(ptr)[7]))
36 
37 typedef enum
38 {
39  ESP_CODEC_TYPE_UNKNOW = 0,
40  ESP_CODEC_TYPE_RAW = 1,
41  ESP_CODEC_TYPE_WAV = 2,
42  ESP_CODEC_TYPE_MP3 = 3,
43  ESP_CODEC_TYPE_AAC = 4,
44  ESP_CODEC_TYPE_OPUS = 5,
45  ESP_CODEC_TYPE_M4A = 6,
46  ESP_CODEC_TYPE_MP4 = 7,
47  ESP_CODEC_TYPE_FLAC = 8,
48  ESP_CODEC_TYPE_OGG = 9,
49  ESP_CODEC_TYPE_TSAAC = 10,
50  ESP_CODEC_TYPE_AMRNB = 11,
51  ESP_CODEC_TYPE_AMRWB = 12,
52  ESP_CODEC_TYPE_PCM = 13,
53  ESP_AUDIO_TYPE_M3U8 = 14,
54  ESP_AUDIO_TYPE_PLS = 15,
55  ESP_CODEC_TYPE_UNSUPPORT = 16,
56 } esp_codec_type_t;
57 
58 typedef enum
59 {
60  ESP_DECODER_WORK_MODE_MANUAL = 0,
61  ESP_DECODER_WORK_MODE_AUTO = 1,
62 } esp_decoder_work_mode_t;
63 
64 /**
65  * @brief the enum value from `ESP_CODEC_ERR_OK` to `ESP_CODEC_ERR_TIMEOUT` rely on `audio_element_err_t` which in `audio_element.h`.
66  */
67 typedef enum
68 {
69  ESP_CODEC_ERR_CONTINUE = 1,
70  ESP_CODEC_ERR_OK = 0,
71  ESP_CODEC_ERR_FAIL = -1,
72  ESP_CODEC_ERR_DONE = -2,
73  ESP_CODEC_ERR_ABORT = -3,
74  ESP_CODEC_ERR_TIMEOUT = -4,
75  ESP_CODEC_ERR_UNSYNC = -5,
76  ESP_CODEC_ERR_UNSUPPORT = -6,
77  ESP_CODEC_ERR_PARSE = -7,
78  ESP_CODEC_ERR_INFO = -8,
79  ESP_CODEC_ERR_INPUT = -9,
80  ESP_CODEC_ERR_NO_MEM = -10,
82 
83 /**
84  * @brief Gain codec extension. need to sync by `esp_codec_type_t`.
85  * eg. esp_codec_type_t codec_type = ESP_CODEC_TYPE_MP3;
86  * char* ext = get_codec_ext(codec_type);
87  * the value of ext is `mp3`.
88  *
89  * @param codec_type the value of `esp_codec_type_t`
90  *
91  * @return codec extension
92  */
93 const char * get_codec_ext(esp_codec_type_t codec_type);
94 
95 #ifdef __cplusplus
96 }
97 #endif
98 
99 #endif
const char * get_codec_ext(esp_codec_type_t codec_type)
Gain codec extension. need to sync by esp_codec_type_t. eg. esp_codec_type_t codec_type = ESP_CODEC_T...
esp_codec_err_t
the enum value from ESP_CODEC_ERR_OK to ESP_CODEC_ERR_TIMEOUT rely on audio_element_err_t which in au...