#include <Arduino.h>
#include <WiFiManager.h>
#include <BluetoothA2DPSink.h>
#include <AudioTools.h>
BluetoothA2DPSink a2dp_sink;
SPDIFOutput spdif;
// Write data to SPDIF in callback
void read_data_stream(const uint8_t *data, uint32_t length) {
spdif.write(data, length);
}
void setup() {
Serial.begin(115200);
AudioLogger::instance().begin(Serial, AudioLogger::Warning);
// output to callback and no I2S
a2dp_sink.set_stream_reader(read_data_stream, false);
// connect to MyMusic with no automatic reconnect
a2dp_sink.start("DENON AVR-1910", false);
// setup output
auto cfg = spdif.defaultConfig();
cfg.pin_data = 23;
cfg.channels = 2;
cfg.bits_per_sample = 16;
spdif.begin(cfg);
WiFiManager wm;
bool res;
res = wm.autoConnect("DENON-AVR1910");
if(!res) {
Serial.println("Failed to connect");
}
else {
Serial.println("Connected");
}
}
// VolumeChanged doesnt work
int volume = 0;
void volumeChanged(int newVolume) {
Serial.println(newVolume);
volume = newVolume;
}
void connection_state_changed(esp_a2d_connection_state_t state, void* ptr) {
Serial.println(a2dp_sink.to_str(state));
}
void audio_state_changed(esp_a2d_audio_state_t state, void* ptr) {
Serial.println(a2dp_sink.to_str(state));
}
void loop() {
}