43 lines
1010 B
C++
43 lines
1010 B
C++
/**
|
|
* @file basic-a2dp-audioi2s.ino
|
|
* @brief A2DP Sink with output to I2SStream. This example is of small value
|
|
* since my Bluetooth Library already provides I2S output out of the box.
|
|
*
|
|
* @author Phil Schatzmann
|
|
* @copyright GPLv3
|
|
*/
|
|
|
|
#include "AudioTools.h"
|
|
#include "BluetoothA2DPSink.h"
|
|
|
|
BluetoothA2DPSink a2dp_sink;
|
|
I2SStream i2s;
|
|
|
|
// Write data to I2S
|
|
void read_data_stream(const uint8_t *data, uint32_t length) {
|
|
i2s.write(data, length);
|
|
}
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
AudioToolsLogger.begin(Serial, AudioToolsLogLevel::Warning);
|
|
|
|
// register callback
|
|
a2dp_sink.set_stream_reader(read_data_stream, false);
|
|
|
|
// Start Bluetooth Audio Receiver
|
|
a2dp_sink.set_auto_reconnect(false);
|
|
a2dp_sink.start("a2dp-i2s");
|
|
|
|
// setup output
|
|
auto cfg = i2s.defaultConfig();
|
|
cfg.pin_data = 23;
|
|
cfg.sample_rate = a2dp_sink.sample_rate();
|
|
cfg.channels = 2;
|
|
cfg.bits_per_sample = 16;
|
|
cfg.buffer_count = 8;
|
|
cfg.buffer_size = 256;
|
|
i2s.begin(cfg);
|
|
}
|
|
|
|
void loop() { delay(100); } |