| 12345678910111213141516171819202122232425262728293031323334353637383940 | /*  *  Squeezelite for esp32 * *  (c) Sebastien 2019 *      Philippe G. 2019, philippe_44@outlook.com * *  This software is released under the MIT License. *  https://opensource.org/licenses/MIT * */#include "freertos/FreeRTOS.h"#include "driver/i2s.h"#include "driver/i2c.h"typedef enum { ADAC_ON = 0, ADAC_STANDBY, ADAC_OFF } adac_power_e;struct adac_s {	char *model;	bool (*init)(char *config, int i2c_port_num, i2s_config_t *i2s_config, bool *mck);	void (*deinit)(void);	void (*power)(adac_power_e mode);	void (*speaker)(bool active);	void (*headset)(bool active);	bool (*volume)(unsigned left, unsigned right);};extern const struct adac_s dac_tas57xx;extern const struct adac_s dac_tas5713;extern const struct adac_s dac_ac101;extern const struct adac_s dac_wm8978;extern const struct adac_s dac_external;int 		adac_init(char *config, int i2c_port);void		adac_deinit(void);esp_err_t 	adac_write(int i2c_addr, uint8_t reg, uint8_t *data, size_t count);esp_err_t 	adac_write_byte(int i2c_addr, uint8_t reg, uint8_t val);esp_err_t 	adac_write_word(int i2c_addr, uint8_t reg, uint16_t val);uint8_t 	adac_read_byte(int i2c_addr, uint8_t reg);uint16_t 	adac_read_word(int i2c_addr, uint8_t reg);
 |