#ifndef CODEC_DAC_H
#define CODEC_DAC_H


typedef enum
{
    VOLUME_MUTE = 0UL,
    VOLUME_N40DB,
    VOLUME_N39DB,
    VOLUME_N38DB,
    VOLUME_N37DB,
    VOLUME_N36DB,
    VOLUME_N35DB,
    VOLUME_N34DB,
    VOLUME_N33DB,
    VOLUME_N32DB,
    VOLUME_N31DB,
    VOLUME_N30DB,
    VOLUME_N29DB,
    VOLUME_N28DB,
    VOLUME_N27DB,
    VOLUME_N26DB,
    VOLUME_N25DB,
    VOLUME_N24DB,
    VOLUME_N23DB,
    VOLUME_N22DB,
    VOLUME_N21DB,
    VOLUME_N20DB,
    VOLUME_N19DB,
    VOLUME_N18DB,
    VOLUME_N17DB,
    VOLUME_N16DB,
    VOLUME_N15DB,
    VOLUME_N14DB,
    VOLUME_N13DB,
    VOLUME_N12DB,
    VOLUME_N11DB,
    VOLUME_N10DB,
    VOLUME_N09DB,
    VOLUME_N08DB,
    VOLUME_N07DB,
    VOLUME_N06DB,
    VOLUME_N05DB,
    VOLUME_N04DB,
    VOLUME_N03DB,
    VOLUME_N02DB,
    VOLUME_N01DB,
    VOLUME_N00DB,
    VOLUME_P01DB,
    VOLUME_P02DB,
    VOLUME_P03DB,
    VOLUME_P04DB,
    VOLUME_P05DB,
    VOLUME_P06DB,
    VOLUME_P07DB,
    VOLUME_P08DB,
    VOLUME_P09DB,
    VOLUME_P10DB,
    VOLUME_P11DB,
    VOLUME_P12DB,
    VOLUME_P13DB,
    VOLUME_P14DB,
    VOLUME_P15DB,
    VOLUME_P16DB,
    VOLUME_P17DB,
    VOLUME_P18DB,
    VOLUME_P19DB,
    VOLUME_P20DB,
    VOLUME_P21DB,
    VOLUME_P22DB,
    VOLUME_MAX,
} output_hp_volume_e;


void audio_dac_init(void);
void dac_dma_cfg(void);
void audio_dac_EQ_init(void);
void audio_dac_drc_init(void);
void adc_read_data(uint8_t *_data, uint32_t _len);
extern int32_t dac_write_data(uint8_t *buf, uint16_t points);
void codec_dac_set_volume(uint32_t volume);
void codec_dac_set_eq_type(eq_param_class_type eqtype);
void audio_dac_suspend(void);
#endif