Skip to content

Commit c2ee052

Browse files
committed
AudioSourceSD support SPI as parameter
1 parent 7b48253 commit c2ee052

File tree

2 files changed

+17
-7
lines changed

2 files changed

+17
-7
lines changed

src/AudioLibs/AudioSourceIdxSD.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,23 @@ class AudioSourceIdxSD : public AudioSource {
3636
start_path = startFilePath;
3737
exension = ext;
3838
setup_index = setupIndex;
39+
p_spi = &SPI;
40+
cs = chipSelect;
41+
}
42+
43+
// Pass your own spi instance, in case you need a dedicated one
44+
AudioSourceSD(const char *startFilePath, const char *ext, int chipSelect, SPIClass &spiInstance, bool setupIndex=true) {
45+
start_path = startFilePath;
46+
extension = ext;
47+
setup_index = setupIndex;
48+
p_spi = &spiInstance;
3949
cs = chipSelect;
4050
}
4151

4252
virtual void begin() override {
4353
TRACED();
4454
if (!is_sd_setup) {
45-
while (!SD.begin(cs)) {
55+
while (!SD.begin(cs, *p_spi)) {
4656
LOGW("SD.begin cs=%d failed", cs);
4757
delay(500);
4858
}
@@ -113,9 +123,9 @@ class AudioSourceIdxSD : public AudioSource {
113123
const char *file_name_pattern = "*";
114124
bool setup_index = true;
115125
bool is_sd_setup = false;
126+
SPIClass *p_spi = nullptr;
116127
int cs;
117128

118-
119129
};
120130

121131
} // namespace audio_tools

src/AudioLibs/AudioSourceSD.h

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,23 @@ class AudioSourceSD : public AudioSource {
3838
start_path = startFilePath;
3939
extension = ext;
4040
setup_index = setupIndex;
41-
spi = &SPI;
41+
p_spi = &SPI;
4242
cs = chipSelect;
4343
}
4444

4545
// Pass your own spi instance, in case you need a dedicated one
46-
AudioSourceSD(const char *startFilePath = "/", const char *ext = ".mp3", int chipSelect = PIN_CS, SPIClass &spiInstance = SPI, bool setupIndex=true) {
46+
AudioSourceSD(const char *startFilePath, const char *ext, int chipSelect, SPIClass &spiInstance, bool setupIndex=true) {
4747
start_path = startFilePath;
4848
extension = ext;
4949
setup_index = setupIndex;
50-
spi = &spiInstance;
50+
p_spi = &spiInstance;
5151
cs = chipSelect;
5252
}
5353

5454
virtual void begin() override {
5555
TRACED();
5656
if (!is_sd_setup) {
57-
while (!SD.begin(cs, *spi)) {
57+
while (!SD.begin(cs, *p_spi)) {
5858
LOGE("SD.begin cs=%d failed", cs);
5959
delay(1000);
6060
}
@@ -126,7 +126,7 @@ class AudioSourceSD : public AudioSource {
126126
bool setup_index = true;
127127
bool is_sd_setup = false;
128128
int cs;
129-
SPIClass *spi = nullptr;
129+
SPIClass *p_spi = nullptr;
130130
};
131131

132132
} // namespace audio_tools

0 commit comments

Comments
 (0)