From 27d2b72fb4704f114f8c2b32f9123b46774ddf17 Mon Sep 17 00:00:00 2001 From: pschatzmann Date: Fri, 27 Sep 2024 09:32:03 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20doxygen=20from=20@=20pschatzma?= =?UTF-8?q?nn/arduino-audio-tools@2082737e77a97c5f1da8123890b96b758a1c4bc1?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _audio_source_s_d_8h_source.html | 175 +++++++++--------- ...o__tools_1_1_audio_source_s_d-members.html | 52 +++--- classaudio__tools_1_1_audio_source_s_d.html | 12 +- search/all_1.js | 4 +- search/functions_1.js | 4 +- 5 files changed, 132 insertions(+), 115 deletions(-) diff --git a/_audio_source_s_d_8h_source.html b/_audio_source_s_d_8h_source.html index 6527a45927..738c1eeeee 100644 --- a/_audio_source_s_d_8h_source.html +++ b/_audio_source_s_d_8h_source.html @@ -85,98 +85,107 @@
35 public:
37  AudioSourceSD(const char *startFilePath = "/", const char *ext = ".mp3", int chipSelect = PIN_CS, bool setupIndex=true) {
38  start_path = startFilePath;
-
39  exension = ext;
+
39  extension = ext;
40  setup_index = setupIndex;
-
41  cs = chipSelect;
-
42  }
-
43 
-
44  virtual void begin() override {
-
45  TRACED();
-
46  if (!is_sd_setup) {
-
47  while (!SD.begin(cs)) {
-
48  LOGE("SD.begin cs=%d failed",cs);
-
49  delay(1000);
-
50  }
-
51  is_sd_setup = true;
-
52  }
-
53  idx.begin(start_path, exension, file_name_pattern);
-
54  idx_pos = 0;
-
55  }
-
56 
-
57  void end() {
-
58  SD.end();
-
59  is_sd_setup = false;
-
60  }
-
61 
-
62  virtual Stream *nextStream(int offset = 1) override {
-
63  LOGI("nextStream: %d", offset);
-
64  return selectStream(idx_pos + offset);
+
41  spi = &SPI;
+
42  cs = chipSelect;
+
43  }
+
44 
+
45  // 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) {
+
47  start_path = startFilePath;
+
48  extension = ext;
+
49  setup_index = setupIndex;
+
50  spi = &spiInstance;
+
51  cs = chipSelect;
+
52  }
+
53 
+
54  virtual void begin() override {
+
55  TRACED();
+
56  if (!is_sd_setup) {
+
57  while (!SD.begin(cs, *spi)) {
+
58  LOGE("SD.begin cs=%d failed", cs);
+
59  delay(1000);
+
60  }
+
61  is_sd_setup = true;
+
62  }
+
63  idx.begin(start_path, extension, file_name_pattern);
+
64  idx_pos = 0;
65  }
66 
-
67  virtual Stream *selectStream(int index) override {
-
68  LOGI("selectStream: %d", index);
-
69  idx_pos = index;
-
70  file_name = idx[index];
-
71  if (file_name==nullptr) return nullptr;
-
72  LOGI("Using file %s", file_name);
-
73  file = SD.open(file_name);
-
74  return file ? &file : nullptr;
+
67  void end() {
+
68  SD.end();
+
69  is_sd_setup = false;
+
70  }
+
71 
+
72  virtual Stream *nextStream(int offset = 1) override {
+
73  LOGI("nextStream: %d", offset);
+
74  return selectStream(idx_pos + offset);
75  }
76 
-
77  virtual Stream *selectStream(const char *path) override {
-
78  file.close();
-
79  file = SD.open(path);
-
80  file_name = file.name();
-
81  LOGI("-> selectStream: %s", path);
-
82  return file ? &file : nullptr;
-
83  }
-
84 
-
87  void setFileFilter(const char *filter) { file_name_pattern = filter; }
-
88 
-
90  int index() { return idx_pos; }
-
91 
-
93  const char *toStr() { return file_name; }
+
77  virtual Stream *selectStream(int index) override {
+
78  LOGI("selectStream: %d", index);
+
79  idx_pos = index;
+
80  file_name = idx[index];
+
81  if (file_name==nullptr) return nullptr;
+
82  LOGI("Using file %s", file_name);
+
83  file = SD.open(file_name);
+
84  return file ? &file : nullptr;
+
85  }
+
86 
+
87  virtual Stream *selectStream(const char *path) override {
+
88  file.close();
+
89  file = SD.open(path);
+
90  file_name = file.name();
+
91  LOGI("-> selectStream: %s", path);
+
92  return file ? &file : nullptr;
+
93  }
94 
-
95  // provides default setting go to the next
-
96  virtual bool isAutoNext() { return true; }
-
97 
-
99  virtual void setPath(const char *p) { start_path = p; }
-
100 
-
102  long size() { return idx.size();}
-
103 
-
104 protected:
-
105 #if defined(USE_SD_NO_NS)
-
106  SDDirect<SDClass, File> idx{SD};
-
107 #else
-
108  SDDirect<fs::SDFS,fs::File> idx{SD};
-
109 #endif
-
110  File file;
-
111  size_t idx_pos = 0;
-
112  const char *file_name;
-
113  const char *exension = nullptr;
-
114  const char *start_path = nullptr;
-
115  const char *file_name_pattern = "*";
-
116  bool setup_index = true;
-
117  bool is_sd_setup = false;
-
118  int cs;
-
119 
-
120 
-
121 };
-
122 
-
123 } // namespace audio_tools
+
97  void setFileFilter(const char *filter) { file_name_pattern = filter; }
+
98 
+
100  int index() { return idx_pos; }
+
101 
+
103  const char *toStr() { return file_name; }
+
104 
+
105  // provides default setting go to the next
+
106  virtual bool isAutoNext() { return true; }
+
107 
+
109  virtual void setPath(const char *p) { start_path = p; }
+
110 
+
112  long size() { return idx.size();}
+
113 
+
114 protected:
+
115 #if defined(USE_SD_NO_NS)
+
116  SDDirect<SDClass, File> idx{SD};
+
117 #else
+
118  SDDirect<fs::SDFS,fs::File> idx{SD};
+
119 #endif
+
120  File file;
+
121  size_t idx_pos = 0;
+
122  const char *file_name;
+
123  const char *extension = nullptr;
+
124  const char *start_path = nullptr;
+
125  const char *file_name_pattern = "*";
+
126  bool setup_index = true;
+
127  bool is_sd_setup = false;
+
128  int cs;
+
129  SPIClass *spi = nullptr;
+
130 };
+
131 
+
132 } // namespace audio_tools
Abstract Audio Data Source for the AudioPlayer which is used by the Audio Players.
Definition: AudioSource.h:12
ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino...
Definition: AudioSourceSD.h:34
-
int index()
Provides the current index position.
Definition: AudioSourceSD.h:90
-
long size()
Provides the number of files (The max index is size()-1): WARNING this is very slow if you have a lot...
Definition: AudioSourceSD.h:102
-
const char * toStr()
provides the actual file name
Definition: AudioSourceSD.h:93
-
virtual void begin() override
Reset actual stream and move to root.
Definition: AudioSourceSD.h:44
-
virtual void setPath(const char *p)
Allows to "correct" the start path if not defined in the constructor.
Definition: AudioSourceSD.h:99
-
virtual bool isAutoNext()
Returns default setting go to the next.
Definition: AudioSourceSD.h:96
+
int index()
Provides the current index position.
Definition: AudioSourceSD.h:100
+
long size()
Provides the number of files (The max index is size()-1): WARNING this is very slow if you have a lot...
Definition: AudioSourceSD.h:112
+
const char * toStr()
provides the actual file name
Definition: AudioSourceSD.h:103
+
virtual void begin() override
Reset actual stream and move to root.
Definition: AudioSourceSD.h:54
+
virtual void setPath(const char *p)
Allows to "correct" the start path if not defined in the constructor.
Definition: AudioSourceSD.h:109
+
virtual bool isAutoNext()
Returns default setting go to the next.
Definition: AudioSourceSD.h:106
AudioSourceSD(const char *startFilePath="/", const char *ext=".mp3", int chipSelect=PIN_CS, bool setupIndex=true)
Default constructor.
Definition: AudioSourceSD.h:37
-
void setFileFilter(const char *filter)
Definition: AudioSourceSD.h:87
-
virtual Stream * nextStream(int offset=1) override
Returns next audio stream.
Definition: AudioSourceSD.h:62
-
virtual Stream * selectStream(int index) override
Returns audio stream at the indicated index (the index is zero based, so the first value is 0!...
Definition: AudioSourceSD.h:67
-
virtual Stream * selectStream(const char *path) override
Returns audio stream by path.
Definition: AudioSourceSD.h:77
+
void setFileFilter(const char *filter)
Definition: AudioSourceSD.h:97
+
virtual Stream * nextStream(int offset=1) override
Returns next audio stream.
Definition: AudioSourceSD.h:72
+
virtual Stream * selectStream(int index) override
Returns audio stream at the indicated index (the index is zero based, so the first value is 0!...
Definition: AudioSourceSD.h:77
+
virtual Stream * selectStream(const char *path) override
Returns audio stream by path.
Definition: AudioSourceSD.h:87
We access the files directy with an index. The index is determined by a recurseve tree walk thru the ...
Definition: SDDirect.h:18
long size()
Provides the number of files.
Definition: SDDirect.h:46
Definition: NoArduino.h:125
diff --git a/classaudio__tools_1_1_audio_source_s_d-members.html b/classaudio__tools_1_1_audio_source_s_d-members.html index c9bf02d8af..3f33d7a9ac 100644 --- a/classaudio__tools_1_1_audio_source_s_d-members.html +++ b/classaudio__tools_1_1_audio_source_s_d-members.html @@ -73,31 +73,33 @@

This is the complete list of members for AudioSourceSD, including all inherited members.

- - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/classaudio__tools_1_1_audio_source_s_d.html b/classaudio__tools_1_1_audio_source_s_d.html index 6caebd093b..0e4e0fcc16 100644 --- a/classaudio__tools_1_1_audio_source_s_d.html +++ b/classaudio__tools_1_1_audio_source_s_d.html @@ -94,6 +94,9 @@   + + @@ -168,9 +171,9 @@ - - + + @@ -192,6 +195,9 @@ + + diff --git a/search/all_1.js b/search/all_1.js index 40a0a19b03..8c5d987562 100644 --- a/search/all_1.js +++ b/search/all_1.js @@ -40,8 +40,8 @@ var searchData= ['addrequestheader_38',['addRequestHeader',['../classaudio__tools_1_1_u_r_l_stream.html#ad3dc068c14d312a8315248f59675ace3',1,'audio_tools::URLStream::addRequestHeader()'],['../classaudio__tools_1_1_http_request.html#ad3dc068c14d312a8315248f59675ace3',1,'audio_tools::HttpRequest::addRequestHeader()']]], ['address_39',['address',['../classaudio__tools_1_1_variable_speed_ring_buffer.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::VariableSpeedRingBuffer::address()'],['../classaudio__tools_1_1_buffer_r_t_o_s.html#a001493d22a88d48242cc331551def442',1,'audio_tools::BufferRTOS::address()'],['../classaudio__tools_1_1_synchronized_buffer.html#a001493d22a88d48242cc331551def442',1,'audio_tools::SynchronizedBuffer::address()'],['../classaudio__tools_1_1_n_buffer.html#a225f852d959563be49658300547343b5',1,'audio_tools::NBuffer::address()'],['../classaudio__tools_1_1_ring_buffer_file.html#a001493d22a88d48242cc331551def442',1,'audio_tools::RingBufferFile::address()'],['../classaudio__tools_1_1_ring_buffer.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::RingBuffer::address()'],['../classaudio__tools_1_1_single_buffer.html#a001493d22a88d48242cc331551def442',1,'audio_tools::SingleBuffer::address()'],['../classaudio__tools_1_1_base_buffer.html#a1630a475441016638ee45edc5c3074f5',1,'audio_tools::BaseBuffer::address()'],['../classaudio__tools_1_1_variable_speed_ring_buffer180.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::VariableSpeedRingBuffer180::address()'],['../classaudio__tools_1_1_variable_speed_ring_buffer_simple.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::VariableSpeedRingBufferSimple::address()']]], ['addstartstopaction_40',['addStartStopAction',['../classaudio__tools_1_1_audio_board_stream.html#a9fdbf0fe2878957057a1c856aac1afb4',1,'audio_tools::AudioBoardStream']]], - ['addurl_41',['addUrl',['../classaudio__tools_1_1_u_r_l_loader_h_l_s.html#a19aa4b0b3faf0b7cc89456c74a7b013a',1,'audio_tools::URLLoaderHLS']]], - ['addurl_42',['addURL',['../classaudio__tools_1_1_audio_source_dynamic_u_r_l.html#a91e2dc3e370b5eaa7d2758abba2b1d31',1,'audio_tools::AudioSourceDynamicURL']]], + ['addurl_41',['addURL',['../classaudio__tools_1_1_audio_source_dynamic_u_r_l.html#a91e2dc3e370b5eaa7d2758abba2b1d31',1,'audio_tools::AudioSourceDynamicURL']]], + ['addurl_42',['addUrl',['../classaudio__tools_1_1_u_r_l_loader_h_l_s.html#a19aa4b0b3faf0b7cc89456c74a7b013a',1,'audio_tools::URLLoaderHLS']]], ['addvolumeactions_43',['addVolumeActions',['../classaudio__tools_1_1_audio_board_stream.html#a9a6c8645266db32c2f6fd8257cc51f06',1,'audio_tools::AudioBoardStream']]], ['adpcmdecoder_44',['ADPCMDecoder',['../classaudio__tools_1_1_a_d_p_c_m_decoder.html',1,'audio_tools']]], ['adpcmdecoderxq_45',['ADPCMDecoderXQ',['../classaudio__tools_1_1_a_d_p_c_m_decoder_x_q.html',1,'audio_tools']]], diff --git a/search/functions_1.js b/search/functions_1.js index 75df40c7e7..f4a534e65d 100644 --- a/search/functions_1.js +++ b/search/functions_1.js @@ -24,8 +24,8 @@ var searchData= ['addrequestheader_2293',['addRequestHeader',['../classaudio__tools_1_1_u_r_l_stream.html#ad3dc068c14d312a8315248f59675ace3',1,'audio_tools::URLStream::addRequestHeader()'],['../classaudio__tools_1_1_http_request.html#ad3dc068c14d312a8315248f59675ace3',1,'audio_tools::HttpRequest::addRequestHeader()']]], ['address_2294',['address',['../classaudio__tools_1_1_variable_speed_ring_buffer_simple.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::VariableSpeedRingBufferSimple::address()'],['../classaudio__tools_1_1_variable_speed_ring_buffer180.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::VariableSpeedRingBuffer180::address()'],['../classaudio__tools_1_1_variable_speed_ring_buffer.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::VariableSpeedRingBuffer::address()'],['../classaudio__tools_1_1_base_buffer.html#a1630a475441016638ee45edc5c3074f5',1,'audio_tools::BaseBuffer::address()'],['../classaudio__tools_1_1_single_buffer.html#a001493d22a88d48242cc331551def442',1,'audio_tools::SingleBuffer::address()'],['../classaudio__tools_1_1_ring_buffer.html#a8790df7b9c12234348cad32e5652de5a',1,'audio_tools::RingBuffer::address()'],['../classaudio__tools_1_1_ring_buffer_file.html#a001493d22a88d48242cc331551def442',1,'audio_tools::RingBufferFile::address()'],['../classaudio__tools_1_1_n_buffer.html#a225f852d959563be49658300547343b5',1,'audio_tools::NBuffer::address()'],['../classaudio__tools_1_1_buffer_r_t_o_s.html#a001493d22a88d48242cc331551def442',1,'audio_tools::BufferRTOS::address()'],['../classaudio__tools_1_1_synchronized_buffer.html#a001493d22a88d48242cc331551def442',1,'audio_tools::SynchronizedBuffer::address()']]], ['addstartstopaction_2295',['addStartStopAction',['../classaudio__tools_1_1_audio_board_stream.html#a9fdbf0fe2878957057a1c856aac1afb4',1,'audio_tools::AudioBoardStream']]], - ['addurl_2296',['addURL',['../classaudio__tools_1_1_audio_source_dynamic_u_r_l.html#a91e2dc3e370b5eaa7d2758abba2b1d31',1,'audio_tools::AudioSourceDynamicURL']]], - ['addurl_2297',['addUrl',['../classaudio__tools_1_1_u_r_l_loader_h_l_s.html#a19aa4b0b3faf0b7cc89456c74a7b013a',1,'audio_tools::URLLoaderHLS']]], + ['addurl_2296',['addUrl',['../classaudio__tools_1_1_u_r_l_loader_h_l_s.html#a19aa4b0b3faf0b7cc89456c74a7b013a',1,'audio_tools::URLLoaderHLS']]], + ['addurl_2297',['addURL',['../classaudio__tools_1_1_audio_source_dynamic_u_r_l.html#a91e2dc3e370b5eaa7d2758abba2b1d31',1,'audio_tools::AudioSourceDynamicURL']]], ['addvolumeactions_2298',['addVolumeActions',['../classaudio__tools_1_1_audio_board_stream.html#a9a6c8645266db32c2f6fd8257cc51f06',1,'audio_tools::AudioBoardStream']]], ['allocate_2299',['allocate',['../classaudio__tools_1_1_allocator.html#a61444acca87cb94cc35f366fa09bcc46',1,'audio_tools::Allocator::allocate()'],['../classdsp__memory__manager.html#a61444acca87cb94cc35f366fa09bcc46',1,'dsp_memory_manager::allocate()']]], ['allocatebuffermemory_2300',['allocateBufferMemory',['../classaudio__tools_1_1_filter_effect_base.html#ab7eb1ffa88791165e943ff78fc23d1a9',1,'audio_tools::FilterEffectBase']]],
AudioSourceSD(const char *startFilePath="/", const char *ext=".mp3", int chipSelect=PIN_CS, bool setupIndex=true)AudioSourceSDinline
begin() overrideAudioSourceSDinlinevirtual
cs (defined in AudioSourceSD)AudioSourceSDprotected
end() (defined in AudioSourceSD)AudioSourceSDinline
exension (defined in AudioSourceSD)AudioSourceSDprotected
file (defined in AudioSourceSD)AudioSourceSDprotected
file_name (defined in AudioSourceSD)AudioSourceSDprotected
file_name_pattern (defined in AudioSourceSD)AudioSourceSDprotected
idx (defined in AudioSourceSD)AudioSourceSDprotected
idx_pos (defined in AudioSourceSD)AudioSourceSDprotected
index()AudioSourceSDinline
is_sd_setup (defined in AudioSourceSD)AudioSourceSDprotected
isAutoNext()AudioSourceSDinlinevirtual
nextStream(int offset=1) overrideAudioSourceSDinlinevirtual
operator[](int idx)AudioSourceinline
previousStream(int offset)AudioSourceinlinevirtual
selectStream(int index) overrideAudioSourceSDinlinevirtual
selectStream(const char *path) overrideAudioSourceSDinlinevirtual
setFileFilter(const char *filter)AudioSourceSDinline
setIndex(int index)AudioSourceinlinevirtual
setMetadataCallback(void(*fn)(MetaDataType info, const char *str, int len), ID3TypeSelection sel=SELECT_ICY) (defined in AudioSource)AudioSourceinlinevirtual
setPath(const char *p)AudioSourceSDinlinevirtual
setTimeout(int millisec)AudioSourceinlinevirtual
setTimeoutAutoNext(int millisec)AudioSourceinlinevirtual
setup_index (defined in AudioSourceSD)AudioSourceSDprotected
size()AudioSourceSDinline
AudioSourceSD(const char *startFilePath="/", const char *ext=".mp3", int chipSelect=PIN_CS, SPIClass &spiInstance=SPI, bool setupIndex=true) (defined in AudioSourceSD)AudioSourceSDinline
begin() overrideAudioSourceSDinlinevirtual
cs (defined in AudioSourceSD)AudioSourceSDprotected
end() (defined in AudioSourceSD)AudioSourceSDinline
extension (defined in AudioSourceSD)AudioSourceSDprotected
file (defined in AudioSourceSD)AudioSourceSDprotected
file_name (defined in AudioSourceSD)AudioSourceSDprotected
file_name_pattern (defined in AudioSourceSD)AudioSourceSDprotected
idx (defined in AudioSourceSD)AudioSourceSDprotected
idx_pos (defined in AudioSourceSD)AudioSourceSDprotected
index()AudioSourceSDinline
is_sd_setup (defined in AudioSourceSD)AudioSourceSDprotected
isAutoNext()AudioSourceSDinlinevirtual
nextStream(int offset=1) overrideAudioSourceSDinlinevirtual
operator[](int idx)AudioSourceinline
previousStream(int offset)AudioSourceinlinevirtual
selectStream(int index) overrideAudioSourceSDinlinevirtual
selectStream(const char *path) overrideAudioSourceSDinlinevirtual
setFileFilter(const char *filter)AudioSourceSDinline
setIndex(int index)AudioSourceinlinevirtual
setMetadataCallback(void(*fn)(MetaDataType info, const char *str, int len), ID3TypeSelection sel=SELECT_ICY) (defined in AudioSource)AudioSourceinlinevirtual
setPath(const char *p)AudioSourceSDinlinevirtual
setTimeout(int millisec)AudioSourceinlinevirtual
setTimeoutAutoNext(int millisec)AudioSourceinlinevirtual
setup_index (defined in AudioSourceSD)AudioSourceSDprotected
size()AudioSourceSDinline
spi (defined in AudioSourceSD)AudioSourceSDprotected
start_path (defined in AudioSourceSD)AudioSourceSDprotected
timeout_auto_next_value (defined in AudioSource)AudioSourceprotected
timeoutAutoNext()AudioSourceinlinevirtual
AudioSourceSD (const char *startFilePath="/", const char *ext=".mp3", int chipSelect=PIN_CS, bool setupIndex=true)
 Default constructor.
 
AudioSourceSD (const char *startFilePath="/", const char *ext=".mp3", int chipSelect=PIN_CS, SPIClass &spiInstance=SPI, bool setupIndex=true)
 
virtual void begin () override
 Reset actual stream and move to root.
int cs
 
-const char * exension = nullptr
 
+const char * extension = nullptr
 
File file
 
bool setup_index = true
 
+SPIClass * spi = nullptr
 
const char * start_path = nullptr