Skip to content

Commit d1b2525

Browse files
committed
VS1053 support is_midi_mode
1 parent 4903734 commit d1b2525

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

src/AudioLibs/VS1053Stream.h

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,8 @@ class VS1053BaseStream : public AudioStreamX {
161161
int16_t _reset_pin=-1;
162162
};
163163

164+
enum VS1053Mode {ENCODED_MODE, PCM_MODE, MIDI_MODE };
165+
164166
/**
165167
* @brief Configuration for VS1053Stream
166168
* @author Phil Schatzmann
@@ -174,13 +176,14 @@ class VS1053Config : public AudioBaseInfo {
174176
bits_per_sample = 16;
175177
}
176178
/// set to false if it is a pcm stream
177-
bool is_encoded_data = false;
178179
uint8_t cs_pin = VS1053_CS;
179180
uint8_t dcs_pin = VS1053_DCS;
180181
uint8_t dreq_pin = VS1053_DREQ;
181182
int16_t reset_pin = VS1053_RESET; // -1 is undefined
182183
uint8_t cs_sd_pin = VS1053_CS_SD;
183184
RxTxMode mode;
185+
bool is_encoded_data = false;
186+
bool is_midi_mode = false;
184187
};
185188

186189
/**
@@ -209,6 +212,10 @@ class VS1053Stream : public AudioStreamX {
209212
/// Starts with the indicated configuration
210213
bool begin(VS1053Config cfg) {
211214
LOGI(LOG_METHOD);
215+
// enfornce encoded data for midi mode
216+
if (cfg.is_midi_mode){
217+
cfg.is_encoded_data = true;
218+
}
212219
this->cfg = cfg;
213220
setAudioInfo(cfg);
214221
LOGI("is_encoded_data: %s", cfg.is_encoded_data?"true":"false");
@@ -226,7 +233,18 @@ class VS1053Stream : public AudioStreamX {
226233
p_out = new EncodedAudioStream(p_driver, p_enc);
227234
}
228235

236+
// hack to treat midi as separate mode
237+
const int MIDI_MODE = 100;
238+
int mode = cfg.mode;
239+
if (cfg.is_midi_mode){
240+
mode = MIDI_MODE;
241+
}
242+
229243
switch(cfg.mode){
244+
case MIDI_MODE:
245+
getVS1053().beginMIDI();
246+
return true;
247+
230248
case TX_MODE:
231249
p_out->begin(cfg);
232250
p_driver->begin();

0 commit comments

Comments
 (0)