Bela
Real-time, ultra-low-latency audio and sensor processing system for BeagleBone Black
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups
Es9080_Codec.h
1 #pragma once
2 
3 #include "AudioCodec.h"
4 #include "I2c.h"
5 #include <Gpio.h>
6 #include <array>
7 
8 class Es9080_Codec : public I2c, public AudioCodec
9 {
10 public:
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 
30 private:
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);
34 protected:
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:29
Definition: Es9080_Codec.h:8
Definition: I2c.h:23
Definition: Mcasp.h:32
Definition: Gpio.h:5
Definition: AudioCodec.h:6