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;
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");
175 if (
p_spi !=
nullptr) {
176 LOGI(
"p_spi->begin()")
183 LOGI(
"SPI not started");
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");
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 HIGH
Definition Arduino.h:46
#define OUTPUT
Definition Arduino.h:38
#define TRACEI()
Definition AudioLoggerIDF.h:32
#define TRACED()
Definition AudioLoggerIDF.h:31
#define LOGI(...)
Definition AudioLoggerIDF.h:28
#define LOGD(...)
Definition AudioLoggerIDF.h:27
#define LOGE(...)
Definition AudioLoggerIDF.h:30
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
#define VS1053_DREQ
Definition rp2040hower.h:51
#define VS1053_CS_SD
Definition rp2040hower.h:52
#define VS1053_DCS
Definition rp2040hower.h:50
#define VS1053_RESET
Definition rp2040hower.h:53
#define VS1053_CS
Definition rp2040hower.h:49