Bela
Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
Loading...
Searching...
No Matches
Es9080_Codec.h
1#pragma once
2
3#include "AudioCodec.h"
4#include "I2c.h"
5#include <Gpio.h>
6#include <array>
7
8class Es9080_Codec : public I2c, public AudioCodec
9{
10public:
11 Es9080_Codec(int i2cBus, int i2cAddress, AudioCodecParams::ClockSource clockSource, int resetPin, double mclkFrequency, bool isVerbose);
12 ~Es9080_Codec();
13
14 int initCodec();
15 int startAudio(int parameter);
16 int stopAudio();
17 unsigned int getNumIns();
18 unsigned int getNumOuts();
19 float getSampleRate();
20 int setInputGain(int channel, float newGain);
21 int setLineOutVolume(int channel, float gain);
22 int setHpVolume(int channel, float gain);
23 int disable();
24 int reset();
25 McaspConfig& getMcaspConfig();
26
27 int writeRegister(unsigned int reg, unsigned int value);
28 int readRegister(unsigned char reg);
29
30private:
31 enum {kNumOutChannels = 8};
32 int writeLineOutVolumeRegisters();
33 int setClocks(unsigned int divide_value, bool MASTER_BCK_DIV1, bool is16Bit, unsigned int MASTER_WS_SCALE);
34protected:
35 int executeProgram(const std::string& program);
36 std::array<float,kNumOutChannels> lineOutVolume{};
37 AudioCodecParams params;
38 McaspConfig mcaspConfig;
39 bool running;
40 bool verbose;
41 int setAddressForReg(unsigned int reg, bool write);
42 int currentAddress = 0xFF;
43 Gpio gpio;
44};
Definition AudioCodec.h:30
Definition Gpio.h:5
Definition Mcasp.h:33
Definition AudioCodec.h:6