47 DAC_SOFT_MUTE_CONTROL,
51 DAC_ATTENUATION_BASE ,
52 ADC_SAMPLING_MODE = 0x50,
55 ADC_INPUT_CONFIGURATION,
57 ADC_SOFT_MUTE_CONTROL,
144 inline uint8_t
bit_set_to(uint8_t number, uint8_t n,
bool x) {
145 return (number & ~((uint8_t)1 << n)) | ((uint8_t)x << n);
150 if (level >= 1.0f)
return 255;
151 if (level <= 1.0e-5f)
return 54;
153 return 255 + roundf(log10f(level) * 40.0f);
158 if (level > 10.0)
return 255;
159 if (level < 1.0e-5f)
return 15;
160 return 215 + roundf(log10f(level) * 40.0f);
169 rv =
write(DAC_ATTENUATION_BASE + channel - 1, n);
186 rv =
write(ADC_ATTENUATION_BASE + channel - 1, n);
191 bool write(uint32_t address, uint32_t data) {
192 assert(
wire !=
nullptr);
193 uint8_t reg =
static_cast<uint8_t
>(address);
194 uint8_t value =
static_cast<uint8_t
>(data);
195 return i2c_bus_write_bytes(
wire,
i2c_addr, ®, 1, &value, 1) == 0;
198 bool write(uint32_t address,
const void* data, uint32_t len) {
199 assert(
wire !=
nullptr);
200 uint8_t reg =
static_cast<uint8_t
>(address);
201 return i2c_bus_write_bytes(
wire,
i2c_addr, ®, 1, (uint8_t*)data,
bool setInputVolume(int channel, float level)
Definition PCM3168.h:121
bool inputLevelInteger(int32_t n)
Definition PCM3168.h:174
bool invertADC(uint32_t data)
Definition PCM3168.h:132
bool end(void)
Definition PCM3168.h:90
const int ADC_CHANNELS_MAX
Definition PCM3168.h:136
bool setMute(int channel, bool mute)
Definition PCM3168.h:95
bool begin(FMT fmt=I2SHighSpeedTDM24bit)
Definition PCM3168.h:84
uint8_t i2c_addr
Definition PCM3168.h:139
bool setVolume(int channel, float level)
Definition PCM3168.h:112
bool setInputVolume(float level)
Definition PCM3168.h:117
uint8_t mute_dac
Definition PCM3168.h:141
uint8_t bit_set_to(uint8_t number, uint8_t n, bool x)
Definition PCM3168.h:144
bool write(uint32_t address, uint32_t data)
Definition PCM3168.h:191
FMT fmt
Definition PCM3168.h:140
void setWire(i2c_bus_handle_t w)
Definition PCM3168.h:82
uint32_t volumebyte(float level)
Definition PCM3168.h:149
const int DAC_CHANNELS_MAX
Definition PCM3168.h:137
uint8_t mute_adc
Definition PCM3168.h:142
bool setMuteADC(bool mute)
Definition PCM3168.h:105
int32_t inputlevelbyte(float level)
Definition PCM3168.h:157
void setAddress(uint8_t addr)
Definition PCM3168.h:80
bool setMute(bool mute)
Definition PCM3168.h:100
bool volumeInteger(uint32_t n)
Definition PCM3168.h:163
bool volumeInteger(int channel, uint32_t n)
Definition PCM3168.h:165
bool invertDAC(uint32_t data)
Definition PCM3168.h:128
bool setVolume(float level)
Definition PCM3168.h:110
i2c_bus_handle_t wire
Definition PCM3168.h:138
const uint8_t I2C_BASE
Definition PCM3168.h:135
bool inputLevelInteger(int channel, int32_t n)
Definition PCM3168.h:182
FMT
Definition PCM3168.h:65
@ I2SHighSpeedTDM24bit
Definition PCM3168.h:74
@ LeftTDM24bit
Definition PCM3168.h:73
@ LeftDSP24bit
Definition PCM3168.h:71
@ I2S24bit
Definition PCM3168.h:66
@ I2STDM24bit
Definition PCM3168.h:72
@ I2SDSP24bit
Definition PCM3168.h:70
@ Right24bit
Definition PCM3168.h:68
@ Right16bit
Definition PCM3168.h:69
@ LeftHighSpeedTDM24bit
Definition PCM3168.h:75
@ Left24bit
Definition PCM3168.h:67
bool write(uint32_t address, const void *data, uint32_t len)
Definition PCM3168.h:198
Namespace for audio driver components.
Definition AudioBoard.h:5
void * i2c_bus_handle_t
Definition DriverCommon.h:155