File ExternalCodec.cpp¶
File List > examples > ExternalCodec > ExternalCodec.cpp
Go to the documentation of this file
Source Code¶
#include "daisy_seed.h"
using namespace daisy;
DaisySeed hw;
void AudioCallback(AudioHandle::InputBuffer in,
AudioHandle::OutputBuffer out,
size_t size)
{
for(size_t i = 0; i < size; i++)
{
out[0][i] = in[0][i];
out[1][i] = in[1][i];
out[2][i] = in[2][i];
out[3][i] = in[3][i];
}
}
int main(void)
{
hw.Init();
SaiHandle external_sai_handle;
SaiHandle::Config external_sai_cfg;
external_sai_cfg.periph = SaiHandle::Config::Peripheral::SAI_2;
external_sai_cfg.sr = SaiHandle::Config::SampleRate::SAI_48KHZ;
external_sai_cfg.bit_depth = SaiHandle::Config::BitDepth::SAI_24BIT;
external_sai_cfg.a_sync = SaiHandle::Config::Sync::SLAVE;
external_sai_cfg.b_sync = SaiHandle::Config::Sync::MASTER;
external_sai_cfg.a_dir = SaiHandle::Config::Direction::TRANSMIT;
external_sai_cfg.b_dir = SaiHandle::Config::Direction::RECEIVE;
external_sai_cfg.pin_config.fs = seed::D27;
external_sai_cfg.pin_config.mclk = seed::D24;
external_sai_cfg.pin_config.sck = seed::D28;
external_sai_cfg.pin_config.sb = seed::D25;
external_sai_cfg.pin_config.sa = seed::D26;
external_sai_handle.Init(external_sai_cfg);
AudioHandle::Config audio_cfg;
audio_cfg.blocksize = 48;
audio_cfg.samplerate = SaiHandle::Config::SampleRate::SAI_48KHZ;
audio_cfg.postgain = 0.5f;
hw.audio_handle.Init(audio_cfg, hw.AudioSaiHandle(), external_sai_handle);
hw.StartAudio(AudioCallback);
while(1) {}
}