Skip to content

Commit 9ca5fe6

Browse files
committed
1 parent 07a0a08 commit 9ca5fe6

File tree

2 files changed

+54
-41
lines changed

2 files changed

+54
-41
lines changed

src/AudioConfig.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -436,7 +436,9 @@ typedef uint32_t eps32_i2s_sample_rate_type;
436436
#define VS1053_RESET -1
437437
#define VS1053_CS_SD 13
438438

439-
439+
// use 0 for https://github.com/baldram/ESP_VS1053_Library
440+
// use 1 for https://github.com/pschatzmann/arduino-vs1053
441+
#define VS1053_EXT 0
440442
//----------------
441443

442444
#ifdef IS_DESKTO

src/AudioLibs/VS1053Stream.h

Lines changed: 51 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include "AudioTools/AudioStreams.h"
44
#include "VS1053.h"
55
#include "AudioCodecs/CodecCopy.h"
6+
67
namespace audio_tools {
78

89
/**
@@ -22,7 +23,11 @@ class VS1053BaseStream : public AudioStreamX {
2223

2324
bool begin() {
2425
LOGD(LOG_METHOD);
25-
p_vs1053 = new VS1053(_cs_pin,_dcs_pin,_dreq_pin, _reset_pin);
26+
if (_reset_pin!=-1){
27+
pinMode(_reset_pin, OUTPUT);
28+
digitalWrite(_reset_pin, HIGH);
29+
}
30+
p_vs1053 = new VS1053(_cs_pin,_dcs_pin,_dreq_pin);
2631
// initialize SPI
2732
SPI.begin();
2833

@@ -81,6 +86,21 @@ class VS1053BaseStream : public AudioStreamX {
8186
return static_cast<float>(p_vs1053->getBalance())/100.0;
8287
}
8388

89+
90+
/// Write encoded (mp3, aac, wav etc) data
91+
virtual size_t write(const uint8_t *buffer, size_t size) override{
92+
if (p_vs1053==nullptr) return 0;
93+
p_vs1053->playChunk((uint8_t*)buffer, size);
94+
return size;
95+
}
96+
97+
VS1053 &getVS1053() {
98+
LOGD(LOG_METHOD);
99+
if (p_vs1053==nullptr) begin();
100+
return *p_vs1053;
101+
}
102+
103+
#if VS1053_EXT
84104
/// Provides the treble amplitude value
85105
float treble() {
86106
LOGD(LOG_METHOD);
@@ -128,19 +148,7 @@ class VS1053BaseStream : public AudioStreamX {
128148
p_vs1053->setBassFrequencyLimit(value);
129149
}
130150
}
131-
132-
/// Write encoded (mp3, aac, wav etc) data
133-
virtual size_t write(const uint8_t *buffer, size_t size) override{
134-
if (p_vs1053==nullptr) return 0;
135-
p_vs1053->playChunk((uint8_t*)buffer, size);
136-
return size;
137-
}
138-
139-
VS1053 &getVS1053() {
140-
LOGD(LOG_METHOD);
141-
if (p_vs1053==nullptr) begin();
142-
return *p_vs1053;
143-
}
151+
#endif
144152

145153
protected:
146154
VS1053 *p_vs1053 = nullptr;
@@ -267,6 +275,34 @@ class VS1053Stream : public AudioStreamX {
267275
return p_driver->balance();
268276
}
269277

278+
/// Write audio data
279+
virtual size_t write(const uint8_t *buffer, size_t size) override{
280+
if (p_out==nullptr) return 0;
281+
return p_out->write(buffer, size);
282+
}
283+
284+
/// returns the VS1053 object
285+
VS1053 &getVS1053() {
286+
LOGD(LOG_METHOD);
287+
return p_driver->getVS1053();
288+
}
289+
290+
/// Defines an alternative encoder that will be used (e.g. MP3Encoder). It must be allocated on the heap!
291+
bool setEncoder(AudioEncoder *enc){
292+
LOGI(LOG_METHOD);
293+
if (p_out!=nullptr){
294+
logError("setEncoder");
295+
return false;
296+
}
297+
if (p_encoder!=nullptr){
298+
delete p_encoder;
299+
p_encoder = enc;
300+
}
301+
return true;
302+
}
303+
304+
#if VS1053_EXT
305+
270306
/// Provides the treble amplitude value
271307
float treble() {
272308
LOGD(LOG_METHOD);
@@ -325,32 +361,7 @@ class VS1053Stream : public AudioStreamX {
325361
}
326362
p_driver->setBassFrequencyLimit(value);
327363
}
328-
329-
/// Write audio data
330-
virtual size_t write(const uint8_t *buffer, size_t size) override{
331-
if (p_out==nullptr) return 0;
332-
return p_out->write(buffer, size);
333-
}
334-
335-
/// returns the VS1053 object
336-
VS1053 &getVS1053() {
337-
LOGD(LOG_METHOD);
338-
return p_driver->getVS1053();
339-
}
340-
341-
/// Defines an alternative encoder that will be used (e.g. MP3Encoder). It must be allocated on the heap!
342-
bool setEncoder(AudioEncoder *enc){
343-
LOGI(LOG_METHOD);
344-
if (p_out!=nullptr){
345-
logError("setEncoder");
346-
return false;
347-
}
348-
if (p_encoder!=nullptr){
349-
delete p_encoder;
350-
p_encoder = enc;
351-
}
352-
return true;
353-
}
364+
#endif
354365

355366
protected:
356367
VS1053Config cfg;

0 commit comments

Comments
 (0)