9#include "VS1053Driver.h"
62 VS1053_INPUT input_device = VS1053_MIC;
86 VS1053StreamOut(VS1053* vs) { p_VS1053 = vs; }
87 size_t write(
const uint8_t* data,
size_t len)
override {
88 if (p_VS1053 ==
nullptr) {
93 p_VS1053->playChunk((uint8_t*)data, len);
98 VS1053* p_VS1053 =
nullptr;
144 cfg.is_encoded_data =
true;
149 LOGI(
"is_encoded_data: %s",
cfg.is_encoded_data ?
"true" :
"false");
150 LOGI(
"is_midi: %s",
cfg.is_midi ?
"true" :
"false");
151 LOGI(
"cs_pin: %d",
cfg.cs_pin);
152 LOGI(
"dcs_pin: %d",
cfg.dcs_pin);
153 LOGI(
"dreq_pin: %d",
cfg.dreq_pin);
154 LOGI(
"reset_pin: %d",
cfg.reset_pin);
155 LOGI(
"cs_sd_pin: %d",
cfg.cs_sd_pin);
159 if (
p_spi !=
nullptr) {
160 LOGI(
"Using custom SPI instance");
162 (uint8_t)-1, *
p_spi);
167 if (
p_spi !=
nullptr) {
168 LOGE(
"Custom SPI is only supported when using VS1053_EXT");
174 if (
cfg.is_start_spi) {
175 if (
p_spi !=
nullptr) {
176 LOGI(
"p_spi->begin()")
183 LOGI(
"SPI not started");
186 if (
cfg.reset_pin != -1) {
187 LOGI(
"Setting reset pin to high: %d",
cfg.reset_pin);
195 if (
p_out ==
nullptr) {
213 result = beginMidi();
221 LOGD(
"Mode not supported");
227 if (!result)
LOGE(
"begin failed");
234 if (
p_out !=
nullptr) {
270 if (
p_vs1053 ==
nullptr)
return -1.0f;
271 return p_vs1053->getVolume() / 100.0f;
288 if (
p_vs1053 ==
nullptr)
return -1.0f;
289 return static_cast<float>(
p_vs1053->getBalance()) / 100.0f;
293 virtual size_t write(
const uint8_t* data,
size_t len)
override {
295 if (len == 0)
return 0;
296 if (
p_out ==
nullptr) {
297 LOGE(
"vs1053 is closed");
300 return p_out->write(data, len);
313 if (
p_out !=
nullptr) {
320 if (enc ==
nullptr) {
334 size_t readBytes(uint8_t* data,
size_t len)
override {
337 return p_vs1053->readBytes(data, len);
343 if (
p_vs1053 ==
nullptr)
return -1.0f;
344 return static_cast<float>(
getVS1053().treble()) / 100.0;
348 void setTreble(
float val) {
350 if (value < 0.0f) value = 0.0f;
351 if (value > 1.0f) value = 1.0f;
352 LOGD(
"setTreble: %f", value);
360 if (
p_vs1053 ==
nullptr)
return -1.0f;
361 return static_cast<float>(
getVS1053().bass()) / 100.0;
365 void setBass(
float val) {
367 if (value < 0.0f) value = 0.0f;
368 if (value > 1.0f) value = 1.0f;
369 LOGD(
"setBass: %f", value);
375 void setTrebleFrequencyLimit(uint16_t value) {
376 LOGD(
"setTrebleFrequencyLimit: %u", value);
378 getVS1053().setTrebleFrequencyLimit(value);
381 void setBassFrequencyLimit(uint16_t value) {
382 LOGD(
"setBassFrequencyLimit: %u", value);
384 getVS1053().setBassFrequencyLimit(value);
388 void sendMidiMessage(uint8_t cmd, uint8_t data1, uint8_t data2) {
392 LOGE(
"start with is_midi=true");
399 p_vs1053->sendMidiMessage(cmd, data1, data2);
424 p_vs1053->loadDefaultVs1053Patches();
438 rec.setInput(
cfg.input_device);
446 bool result =
p_vs1053->beginMidi();
#define VS1053_DEFAULT_VOLUME
RxTxMode
The Microcontroller is the Audio Source (TX_MODE) or Audio Sink (RX_MODE). RXTX_MODE is Source and Si...
Definition AudioTypes.h:26
@ TX_MODE
Definition AudioTypes.h:26
@ RX_MODE
Definition AudioTypes.h:26