@@ -17,25 +17,33 @@ namespace audio_tools {
17
17
*/
18
18
class VS1053BaseStream : public AudioStreamX {
19
19
public:
20
- VS1053BaseStream (uint8_t _cs_pin, uint8_t _dcs_pin, uint8_t _dreq_pin,int16_t _reset_pin=-1 ){
20
+ VS1053BaseStream (uint8_t _cs_pin, uint8_t _dcs_pin, uint8_t _dreq_pin,int16_t _reset_pin=-1 , bool startSPI= true ){
21
21
LOGD (LOG_METHOD);
22
22
this ->_cs_pin = _cs_pin;
23
23
this ->_dcs_pin = _dcs_pin;
24
24
this ->_dreq_pin = _dreq_pin;
25
25
this ->_reset_pin = _reset_pin;
26
+ this ->_start_SPI = startSPI;
26
27
}
27
28
28
29
bool begin () {
29
30
LOGD (LOG_METHOD);
31
+ p_vs1053 = new VS1053 (_cs_pin,_dcs_pin,_dreq_pin);
32
+
33
+ // initialize SPI
34
+ if (_start_SPI) {
35
+ LOGI (" SPI.begin()" )
36
+ SPI.begin ();
37
+ } else {
38
+ LOGI (" SPI not started" );
39
+ }
40
+
30
41
if (_reset_pin!=-1 ){
31
42
LOGI (" Setting reset pin to high: %d" , _reset_pin);
32
43
pinMode (_reset_pin, OUTPUT);
33
44
digitalWrite (_reset_pin, HIGH);
34
45
delay (200 );
35
46
}
36
- p_vs1053 = new VS1053 (_cs_pin,_dcs_pin,_dreq_pin);
37
- // initialize SPI
38
- SPI.begin ();
39
47
40
48
p_vs1053->begin ();
41
49
p_vs1053->startSong ();
@@ -163,6 +171,7 @@ class VS1053BaseStream : public AudioStreamX {
163
171
VS1053 *p_vs1053 = nullptr ;
164
172
uint8_t _cs_pin, _dcs_pin, _dreq_pin;
165
173
int16_t _reset_pin=-1 ;
174
+ bool _start_SPI;
166
175
};
167
176
168
177
enum VS1053Mode {ENCODED_MODE, PCM_MODE, MIDI_MODE };
@@ -188,6 +197,7 @@ class VS1053Config : public AudioBaseInfo {
188
197
RxTxMode mode;
189
198
bool is_encoded_data = false ;
190
199
bool is_midi_mode = false ;
200
+ bool is_start_spi = true ;
191
201
};
192
202
193
203
/* *
@@ -231,7 +241,7 @@ class VS1053Stream : public AudioStreamX {
231
241
LOGI (" cs_sd_pin: %d" , cfg.cs_sd_pin );
232
242
233
243
if (p_driver==nullptr ){
234
- p_driver = new VS1053BaseStream (cfg.cs_pin ,cfg.dcs_pin ,cfg.dreq_pin , cfg.reset_pin );
244
+ p_driver = new VS1053BaseStream (cfg.cs_pin ,cfg.dcs_pin ,cfg.dreq_pin , cfg.reset_pin , cfg. is_start_spi );
235
245
}
236
246
if (p_out==nullptr ){
237
247
AudioEncoder *p_enc = cfg.is_encoded_data ? p_encoder :©
0 commit comments