diff include/I2c_Codec.h @ 0:8a575ba3ab52

Initial commit.
author andrewm
date Fri, 31 Oct 2014 19:10:17 +0100
parents
children ef9392d077a4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/I2c_Codec.h	Fri Oct 31 19:10:17 2014 +0100
@@ -0,0 +1,51 @@
+/*
+ * I2c_Codec.h
+ *
+ * Handle writing the registers to the TLV320AIC310x
+ * series audio codecs, used on the BeagleBone Audio Cape.
+ * This code is designed to bypass the ALSA driver and
+ * configure the codec directly in a sensible way. It
+ * is complemented by code running on the PRU which uses
+ * the McASP serial port to transfer audio data.
+ *
+ *  Created on: May 25, 2014
+ *      Author: Andrew McPherson
+ */
+
+
+#ifndef I2CCODEC_H_
+#define I2CCODEC_H_
+
+#include "I2c.h"
+
+
+class I2c_Codec : public I2c
+{
+public:
+	int writeRegister(unsigned int reg, unsigned int value);
+
+	int initCodec();
+	int startAudio(int dual_rate);
+	int stopAudio();
+
+	int setDACVolume(int halfDbSteps);
+	int writeDACVolumeRegisters(bool mute);
+	int setADCVolume(int halfDbSteps);
+	int writeADCVolumeRegisters(bool mute);
+	int setHPVolume(int halfDbSteps);
+	int writeHPVolumeRegisters();
+
+	int readI2C();
+
+	I2c_Codec();
+	~I2c_Codec();
+
+private:
+	bool running;
+	int dacVolumeHalfDbs;
+	int adcVolumeHalfDbs;
+	int hpVolumeHalfDbs;
+};
+
+
+#endif /* I2CCODEC_H_ */