diff options
Diffstat (limited to 'tool/mbed/mbed-sdk/libraries/tests/usb/device/audio/main.cpp')
-rw-r--r-- | tool/mbed/mbed-sdk/libraries/tests/usb/device/audio/main.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tool/mbed/mbed-sdk/libraries/tests/usb/device/audio/main.cpp b/tool/mbed/mbed-sdk/libraries/tests/usb/device/audio/main.cpp new file mode 100644 index 0000000000..e18891032a --- /dev/null +++ b/tool/mbed/mbed-sdk/libraries/tests/usb/device/audio/main.cpp @@ -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; + } +} + + |