USBAudio example: playback

Dependencies:   mbed USBDevice

main.cpp

Committer:
samux
Date:
2013-03-01
Revision:
2:6d4dcaa2c065
Parent:
0:eb53799c0b97

File content as of revision 2:6d4dcaa2c065:

// 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;
    }
}