1
0
This repo is archived. You can view files and clone it, but cannot push or open issues or pull requests.
tmk_keyboard_custom/tmk_core/tool/mbed/mbed-sdk/libraries/tests/usb/device/audio/main.cpp

41 lines
1.0 KiB
C++

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