adc_pdm_audio_codec.h 891 B

1234567891011121314151617181920212223242526272829
  1. #ifndef _BOX_AUDIO_CODEC_H
  2. #define _BOX_AUDIO_CODEC_H
  3. #include "audio_codec.h"
  4. #include <esp_codec_dev.h>
  5. #include <esp_codec_dev_defaults.h>
  6. class AdcPdmAudioCodec : public AudioCodec {
  7. private:
  8. esp_codec_dev_handle_t output_dev_ = nullptr;
  9. esp_codec_dev_handle_t input_dev_ = nullptr;
  10. gpio_num_t pa_ctrl_pin_ = GPIO_NUM_NC;
  11. virtual int Read(int16_t* dest, int samples) override;
  12. virtual int Write(const int16_t* data, int samples) override;
  13. public:
  14. AdcPdmAudioCodec(int input_sample_rate, int output_sample_rate,
  15. uint32_t adc_mic_channel, gpio_num_t pdm_speak_p, gpio_num_t pdm_speak_n, gpio_num_t pa_ctl);
  16. virtual ~AdcPdmAudioCodec();
  17. virtual void SetOutputVolume(int volume) override;
  18. virtual void EnableInput(bool enable) override;
  19. virtual void EnableOutput(bool enable) override;
  20. void Start();
  21. };
  22. #endif // _BOX_AUDIO_CODEC_H