Arduino AudioKit HAL
AudioKitCodec.h
1 #pragma once
2 #include "AudioKitConfig.h"
3 
4 // include drivers
5 #include "audio_hal/driver/es7148/es7148.h"
6 #include "audio_hal/driver/es7210/es7210.h"
7 #include "audio_hal/driver/es7243/es7243.h"
8 #include "audio_hal/driver/es8311/es8311.h"
9 #include "audio_hal/driver/es8374/es8374.h"
10 #include "audio_hal/driver/es8388/es8388.h"
11 #include "audio_hal/driver/tas5805m/tas5805m.h"
12 
13 #include "board.h"
14 
15 
16 /**
17  * @brief AudioKit API using the audio_hal
18  *
19  */
20 
22 
23  public:
24 
25  /// Provides the configuration for input & output
27  AudioKitConfig result;
29  return result;
30  }
31 
32  /// Provides the configuration for input or output
33  AudioKitConfig defaultConfig(bool isOutput) {
34  AudioKitConfig result;
35  if (isOutput){
37  } else {
39  }
40  return result;
41  }
42 
43  /// Starts the CODEC
44  bool begin(AudioKitConfig cfg){
45  config = cfg;
46  bool result = true;
47  audio_hal_conf.adc_input = config.adc_input;
48  audio_hal_conf.dac_output = config.dac_output;
49  audio_hal_conf.codec_mode = config.codec_mode;
50  //audio_hal_conf.i2s_iface = config.master_slave_mode;
51  if(audio_hal_init(&audio_hal_conf, &audio_hal)!=ESP_OK){
52  return false;
53  }
54 
55  // setup audio_hal_codec_i2s_iface_t
56  iface.mode = config.master_slave_mode;
57  iface.fmt = config.fmt;
58  iface.samples = config.samples;
59  iface.bits = config.bits;
60 
61  // configure codec
62  if(audio_hal_codec_iface_config(&audio_hal, config.codec_mode, &iface)!=ESP_OK){
63  return false;
64  }
65 
66  // start codec driver
68  }
69 
70  /// Stops the CODEC
71  bool end(){
72  // stop codec driver
74  // deinit
75  audio_hal_deinit(&audio_hal) == ESP_OK;
76  }
77 
78  /// Sets the codec active / inactive
79  bool setActive(bool active){
81  }
82 
83  /// Mutes the output
84  bool setMute(bool mute){
85  return audio_hal_set_mute(&audio_hal, mute) == ESP_OK;
86  }
87 
88  /// Defines the Volume
89  bool setVolume(int vol){
90  return (vol>0) ? audio_hal_set_volume(&audio_hal, vol) == ESP_OK : false;
91  }
92 
93  /// Determines the volume
94  int volume(){
95  int volume;
96  if (audio_hal_get_volume(&audio_hal, &volume)!=ESP_OK){
97  volume = -1;
98  }
99  return volume;
100  }
101 
102  protected:
104  audio_hal_codec_config_t audio_hal_conf;
106  AudioKitConfig config;
107 
108 };
audio_hal_iface_format_t fmt
Definition: audio_hal.h:125
@ AUDIO_HAL_CODEC_MODE_BOTH
Definition: audio_hal.h:48
@ AUDIO_HAL_CODEC_MODE_ENCODE
Definition: audio_hal.h:46
@ AUDIO_HAL_CODEC_MODE_DECODE
Definition: audio_hal.h:47
esp_err_t audio_hal_deinit(audio_hal_handle_t audio_hal)
Uninitialize media codec driver.
esp_err_t audio_hal_codec_iface_config(audio_hal_handle_t audio_hal, audio_hal_codec_mode_t mode, audio_hal_codec_i2s_iface_t *iface)
Set codec I2S interface samples rate & bit width and format either I2S or PCM/DSP.
audio_hal_iface_samples_t samples
Definition: audio_hal.h:126
audio_hal_codec_mode_t codec_mode
Definition: audio_hal.h:136
audio_hal_handle_t audio_hal_init(audio_hal_codec_config_t *audio_hal_conf, audio_hal_func_t *audio_hal_func)
Initialize media codec driver.
audio_hal_adc_input_t adc_input
Definition: audio_hal.h:134
esp_err_t audio_hal_set_mute(audio_hal_handle_t audio_hal, bool mute)
Set voice mute. Enables or disables DAC mute of a codec.
audio_hal_iface_mode_t mode
Definition: audio_hal.h:124
audio_hal_dac_output_t dac_output
Definition: audio_hal.h:135
esp_err_t audio_hal_ctrl_codec(audio_hal_handle_t audio_hal, audio_hal_codec_mode_t mode, audio_hal_ctrl_t audio_hal_ctrl)
Start/stop codec driver.
audio_hal_iface_bits_t bits
Definition: audio_hal.h:127
esp_err_t audio_hal_get_volume(audio_hal_handle_t audio_hal, int *volume)
get voice volume.
@ AUDIO_HAL_CTRL_START
Definition: audio_hal.h:76
@ AUDIO_HAL_CTRL_STOP
Definition: audio_hal.h:75
esp_err_t audio_hal_set_volume(audio_hal_handle_t audio_hal, int volume)
Set voice volume.
Configure media hal for initialization of audio codec chip.
Definition: audio_hal.h:133
I2s interface configuration for audio codec chip.
Definition: audio_hal.h:123
AudioKit API using the audio_hal.
Definition: AudioKitCodec.h:21
bool setMute(bool mute)
Mutes the output.
Definition: AudioKitCodec.h:84
bool begin(AudioKitConfig cfg)
Starts the CODEC.
Definition: AudioKitCodec.h:44
bool end()
Stops the CODEC.
Definition: AudioKitCodec.h:71
bool setActive(bool active)
Sets the codec active / inactive.
Definition: AudioKitCodec.h:79
AudioKitConfig defaultConfig(bool isOutput)
Provides the configuration for input or output.
Definition: AudioKitCodec.h:33
bool setVolume(int vol)
Defines the Volume.
Definition: AudioKitCodec.h:89
int volume()
Determines the volume.
Definition: AudioKitCodec.h:94
AudioKitConfig defaultConfig()
Provides the configuration for input & output.
Definition: AudioKitCodec.h:26
Configuation for AudioKit.
audio_hal_iface_bits_t bits
audio_hal_iface_samples_t samples
audio_hal_dac_output_t dac_output
audio_hal_adc_input_t adc_input
audio_hal_iface_format_t fmt
audio_hal_iface_mode_t master_slave_mode
audio_hal_codec_mode_t codec_mode
Configuration of functions and variables used to operate audio codec chip.
Definition: audio_hal.h:143