96kHz-16bit USB Audio Output interface with UDA1345 and 24.576MHz Xtal.

Dependencies:   I2S USBDevice mbed

Fork of USBAudioPlayback by Samuel Mokrani

Revision:
0:eb53799c0b97
Child:
3:44343b9dd8b6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Thu Mar 22 14:02:07 2012 +0000
@@ -0,0 +1,40 @@
+// Playback example with the USBAUDIO library
+
+#include "mbed.h"
+#include "USBAudio.h"
+
+// frequency: 48 kHz
+#define FREQ_SPK 48000
+#define FREQ_MIC 48000
+
+// 2channels: stereo
+#define NB_CHA_SPK 2
+#define NB_CHA_MIC 2
+
+// length computed: each ms, we receive 48 * 16bits ->48 * 2 bytes. as there are two channels, the length will be 48 * 2 * 2
+#define LENGTH_AUDIO_PACKET_SPK (FREQ_SPK / 500) * NB_CHA_SPK
+#define LENGTH_AUDIO_PACKET_MIC (FREQ_MIC / 500) * NB_CHA_MIC
+
+// USBAudio object
+USBAudio audio(FREQ_SPK, NB_CHA_SPK, FREQ_MIC, NB_CHA_MIC, 0xab45, 0x0378);
+
+int main() {
+    // buffer of int
+    int buf_in[LENGTH_AUDIO_PACKET_SPK/sizeof(int)];
+    int buf_out[LENGTH_AUDIO_PACKET_MIC/sizeof(int)];
+    int * stream_out = buf_in;
+    int * stream_in = buf_out;
+    int * tmp = NULL;
+
+    while (1) {
+        // read and write one audio packet each frame
+        audio.readWrite((uint8_t *)stream_in, (uint8_t *)stream_out);
+        
+        // swap the buffers
+        tmp = stream_in;
+        stream_in = stream_out;
+        stream_out = tmp;
+    }
+}
+
+