arduino-audio-tools
Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AudioSourceSDFAT< AudioFs, AudioFile > Class Template Reference

ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD implementation Connect the SD card. For UTF8 Support change SdFatConfig.h define USE_UTF8_LONG_NAMES 1. More...

#include <AudioSourceSDFAT.h>

Inheritance diagram for AudioSourceSDFAT< AudioFs, AudioFile >:
AudioSource AudioSource

Public Member Functions

 AudioSourceSDFAT (AudioFs fs, const char *startFilePath="/", const char *ext="", bool setupIndex=true)
 Constructor for providing an open FS.
 
 AudioSourceSDFAT (const char *startFilePath, const char *ext, SdSpiConfig &config)
 Costructor with SdSpiConfig.
 
 AudioSourceSDFAT (const char *startFilePath, const char *ext, SdSpiConfig &config, bool setupIndex=true)
 Costructor with SdSpiConfig.
 
 AudioSourceSDFAT (const char *startFilePath="/", const char *ext=".mp3", int chipSelect=PIN_CS, int speedMHz=10)
 Default constructor.
 
 AudioSourceSDFAT (const char *startFilePath="/", const char *ext=".mp3", int chipSelect=PIN_CS, int speedMHz=10, int spi_mode=DEDICATED_SPI, bool setupIndex=true)
 Default constructor.
 
virtual ~AudioSourceSDFAT ()
 
virtual ~AudioSourceSDFAT ()
 Destructor.
 
virtual bool begin () override
 Reset actual stream and move to root.
 
virtual bool begin () override
 Reset actual stream and move to root.
 
void end ()
 
AudioFsgetAudioFs ()
 provides access to the AudioFs object
 
int index ()
 Provides the current index position.
 
int index ()
 Provides the current index position.
 
virtual bool isAutoNext ()
 Returns default setting go to the next.
 
virtual bool isAutoNext ()
 Returns default setting go to the next.
 
virtual StreamnextStream (int offset) override
 Returns next audio stream.
 
virtual StreamnextStream (int offset=1) override
 Returns next audio stream.
 
Streamoperator[] (int idx)
 access with array syntax
 
virtual StreampreviousStream (int offset)
 Returns previous audio stream.
 
virtual StreamselectStream (const char *path) override
 Returns audio stream by path: The index is not changed!
 
virtual StreamselectStream (const char *path) override
 Returns audio stream by path: The index is not changed!
 
virtual StreamselectStream (int index) override
 
virtual StreamselectStream (int index) override
 
virtual void setAutoNext (bool flag)
 
void setFileFilter (const char *filter)
 
void setFileFilter (const char *filter)
 Defines the regex filter criteria for selecting files. E.g. ".*Bob Dylan.*".
 
virtual StreamsetIndex (int index)
 same as selectStream - I just prefer this name
 
virtual bool setMetadataCallback (void(*fn)(MetaDataType info, const char *str, int len), ID3TypeSelection sel=SELECT_ICY)
 
virtual void setPath (const char *p)
 Allows to "correct" the start path if not defined in the constructor.
 
virtual void setPath (const char *p)
 Allows to "correct" the start path if not defined in the constructor.
 
virtual void setTimeout (int ms)
 Sets the timeout of Stream in milliseconds.
 
virtual void setTimeoutAutoNext (int millisec)
 
long size ()
 
virtual int timeoutAutoNext ()
 Provides the timeout which is triggering to move to the next stream.
 
const chartoStr ()
 provides the actual file name
 
const chartoStr ()
 provides the actual file name
 

Protected Member Functions

void getFileAtIndex (AudioFile dir, size_t pos, size_t &idx, AudioFile &result)
 
AudioFile getFileByPath (const char *path)
 
AudioFile getFileByPos (const char *dirStr, int pos)
 Determines the file at the indicated index (starting with 0)
 
const chargetFileName (AudioFile &file)
 
bool isValidAudioFile (AudioFile &file)
 checks if the file is a valid audio file
 

Protected Attributes

int cs
 
const charexension = nullptr
 
AudioFile file
 
char file_name [MAX_FILE_LEN]
 
const charfile_name_pattern = "*"
 
charfile_name_pattern = (char*) "*"
 
SDDirect< AudioFs, AudioFileidx {sd}
 
size_t idx_pos = 0
 
bool is_auto_next = true
 
bool is_close_sd = true
 
bool is_sd_setup = false
 
bool owns_cfg = false
 
SdSpiConfigp_cfg = nullptr
 
AudioFs sd
 
bool setup_index = true
 
const charstart_path = nullptr
 
int timeout
 
int timeout_auto_next_value = 500
 

Detailed Description

template<typename AudioFs = SdFat32, typename AudioFile = File32>
class audio_tools::AudioSourceSDFAT< AudioFs, AudioFile >

ESP32 AudioSource for AudioPlayer using an SD card as data source. This class is based on the Arduino SD implementation Connect the SD card. For UTF8 Support change SdFatConfig.h define USE_UTF8_LONG_NAMES 1.

AudioSource for AudioPlayer using an SD card as data source. This class is based on https://github.com/greiman/SdFat.

Parameters
<SdFat32,File32>,<SdFs,FsFile>,<SdExFat,ExFile>,<SdFat,File>
Author
Phil Schatzmann
Author
Phil Schatzmann

Constructor & Destructor Documentation

◆ AudioSourceSDFAT() [1/5]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioSourceSDFAT ( const char startFilePath = "/",
const char ext = ".mp3",
int  chipSelect = PIN_CS,
int  speedMHz = 10,
int  spi_mode = DEDICATED_SPI,
bool  setupIndex = true 
)
inline

Default constructor.

◆ AudioSourceSDFAT() [2/5]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioSourceSDFAT ( const char startFilePath,
const char ext,
SdSpiConfig config,
bool  setupIndex = true 
)
inline

Costructor with SdSpiConfig.

◆ AudioSourceSDFAT() [3/5]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioSourceSDFAT ( AudioFs  fs,
const char startFilePath = "/",
const char ext = "",
bool  setupIndex = true 
)
inline

Constructor for providing an open FS.

◆ ~AudioSourceSDFAT() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual ~AudioSourceSDFAT ( )
inlinevirtual

◆ AudioSourceSDFAT() [4/5]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioSourceSDFAT ( const char startFilePath = "/",
const char ext = ".mp3",
int  chipSelect = PIN_CS,
int  speedMHz = 10 
)
inline

Default constructor.

◆ AudioSourceSDFAT() [5/5]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioSourceSDFAT ( const char startFilePath,
const char ext,
SdSpiConfig config 
)
inline

Costructor with SdSpiConfig.

◆ ~AudioSourceSDFAT() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual ~AudioSourceSDFAT ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ begin() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual bool begin ( )
inlineoverridevirtual

Reset actual stream and move to root.

Implements AudioSource.

◆ begin() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual bool begin ( )
inlineoverridevirtual

Reset actual stream and move to root.

Implements AudioSource.

◆ end()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
void end ( )
inline

◆ getAudioFs()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioFs & getAudioFs ( )
inline

provides access to the AudioFs object

◆ getFileAtIndex()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
void getFileAtIndex ( AudioFile  dir,
size_t  pos,
size_t idx,
AudioFile result 
)
inlineprotected

◆ getFileByPath()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioFile getFileByPath ( const char path)
inlineprotected

◆ getFileByPos()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioFile getFileByPos ( const char dirStr,
int  pos 
)
inlineprotected

Determines the file at the indicated index (starting with 0)

◆ getFileName()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
const char * getFileName ( AudioFile file)
inlineprotected

◆ index() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
int index ( )
inlinevirtual

Provides the current index position.

Reimplemented from AudioSource.

◆ index() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
int index ( )
inlinevirtual

Provides the current index position.

Reimplemented from AudioSource.

◆ isAutoNext() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual bool isAutoNext ( )
inlinevirtual

Returns default setting go to the next.

Reimplemented from AudioSource.

◆ isAutoNext() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual bool isAutoNext ( )
inlinevirtual

Returns default setting go to the next.

Reimplemented from AudioSource.

◆ isValidAudioFile()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
bool isValidAudioFile ( AudioFile file)
inlineprotected

checks if the file is a valid audio file

◆ nextStream() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual Stream * nextStream ( int  offset)
inlineoverridevirtual

Returns next audio stream.

Implements AudioSource.

◆ nextStream() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual Stream * nextStream ( int  offset = 1)
inlineoverridevirtual

Returns next audio stream.

Implements AudioSource.

◆ operator[]()

Stream * operator[] ( int  idx)
inlineinherited

access with array syntax

◆ previousStream()

virtual Stream * previousStream ( int  offset)
inlinevirtualinherited

Returns previous audio stream.

Reimplemented in AudioSourceFTP< ClientType >, and AudioSourceURL.

◆ selectStream() [1/4]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual Stream * selectStream ( const char path)
inlineoverridevirtual

Returns audio stream by path: The index is not changed!

Implements AudioSource.

◆ selectStream() [2/4]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual Stream * selectStream ( const char path)
inlineoverridevirtual

Returns audio stream by path: The index is not changed!

Implements AudioSource.

◆ selectStream() [3/4]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual Stream * selectStream ( int  index)
inlineoverridevirtual

Returns audio stream at the indicated index (the index is zero based, so the first value is 0!)

Reimplemented from AudioSource.

◆ selectStream() [4/4]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual Stream * selectStream ( int  index)
inlineoverridevirtual

Returns audio stream at the indicated index (the index is zero based, so the first value is 0!)

Reimplemented from AudioSource.

◆ setAutoNext()

virtual void setAutoNext ( bool  flag)
inlinevirtualinherited

Reimplemented in AudioSourceCallback.

◆ setFileFilter() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
void setFileFilter ( const char filter)
inline

Defines the regex filter criteria for selecting files. E.g. ".*Bob Dylan.*"

◆ setFileFilter() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
void setFileFilter ( const char filter)
inline

Defines the regex filter criteria for selecting files. E.g. ".*Bob Dylan.*".

◆ setIndex()

virtual Stream * setIndex ( int  index)
inlinevirtualinherited

same as selectStream - I just prefer this name

◆ setMetadataCallback()

virtual bool setMetadataCallback ( void(*)(MetaDataType info, const char *str, int len)  fn,
ID3TypeSelection  sel = SELECT_ICY 
)
inlinevirtualinherited

Reimplemented in AudioSourceURL.

◆ setPath() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual void setPath ( const char p)
inlinevirtual

Allows to "correct" the start path if not defined in the constructor.

◆ setPath() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual void setPath ( const char p)
inlinevirtual

Allows to "correct" the start path if not defined in the constructor.

◆ setTimeout()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
virtual void setTimeout ( int  millisec)
inlinevirtual

Sets the timeout of Stream in milliseconds.

Reimplemented from AudioSource.

◆ setTimeoutAutoNext()

virtual void setTimeoutAutoNext ( int  millisec)
inlinevirtualinherited

Sets the timeout which is triggering to move to the next stream. - the default value is 500 ms

◆ size()

template<typename AudioFs = SdFat32, typename AudioFile = File32>
long size ( )
inline

Provides the number of files (The max index is size()-1): WARNING this is very slow if you have a lot of files in many subdirectories

◆ timeoutAutoNext()

virtual int timeoutAutoNext ( )
inlinevirtualinherited

Provides the timeout which is triggering to move to the next stream.

◆ toStr() [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
const char * toStr ( )
inlinevirtual

provides the actual file name

Reimplemented from AudioSource.

◆ toStr() [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
const char * toStr ( )
inlinevirtual

provides the actual file name

Reimplemented from AudioSource.

Member Data Documentation

◆ cs

template<typename AudioFs = SdFat32, typename AudioFile = File32>
int cs
protected

◆ exension

template<typename AudioFs = SdFat32, typename AudioFile = File32>
const char * exension = nullptr
protected

◆ file

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioFile file
protected

◆ file_name

template<typename AudioFs = SdFat32, typename AudioFile = File32>
char file_name
protected

◆ file_name_pattern [1/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
const char* file_name_pattern = "*"
protected

◆ file_name_pattern [2/2]

template<typename AudioFs = SdFat32, typename AudioFile = File32>
char* file_name_pattern = (char*) "*"
protected

◆ idx

template<typename AudioFs = SdFat32, typename AudioFile = File32>
SDDirect<AudioFs, AudioFile> idx {sd}
protected

◆ idx_pos

template<typename AudioFs = SdFat32, typename AudioFile = File32>
size_t idx_pos = 0
protected

◆ is_auto_next

bool is_auto_next = true
protectedinherited

◆ is_close_sd

template<typename AudioFs = SdFat32, typename AudioFile = File32>
bool is_close_sd = true
protected

◆ is_sd_setup

template<typename AudioFs = SdFat32, typename AudioFile = File32>
bool is_sd_setup = false
protected

◆ owns_cfg

template<typename AudioFs = SdFat32, typename AudioFile = File32>
bool owns_cfg = false
protected

◆ p_cfg

template<typename AudioFs = SdFat32, typename AudioFile = File32>
SdSpiConfig * p_cfg = nullptr
protected

◆ sd

template<typename AudioFs = SdFat32, typename AudioFile = File32>
AudioFs sd
protected

◆ setup_index

template<typename AudioFs = SdFat32, typename AudioFile = File32>
bool setup_index = true
protected

◆ start_path

template<typename AudioFs = SdFat32, typename AudioFile = File32>
const char * start_path = nullptr
protected

◆ timeout

template<typename AudioFs = SdFat32, typename AudioFile = File32>
int timeout
protected

◆ timeout_auto_next_value

int timeout_auto_next_value = 500
protectedinherited

The documentation for this class was generated from the following files: