/* AudioFileSourceFS Input Arduion "file" to be used by AudioGenerator Copyright (C) 2017 Earle F. Philhower, III This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef _AUDIOFILESOURCEFATFS_H #define _AUDIOFILESOURCEFATFS_H #ifdef ESP32 #include #include #include #include "AudioFileSource.h" #include "AudioFileSourceFS.h" /* AudioFileSource for FAT filesystem. */ class AudioFileSourceFATFS : public AudioFileSourceFS { public: AudioFileSourceFATFS() : AudioFileSourceFS(FFat) {}; AudioFileSourceFATFS(const char *filename) : AudioFileSourceFS(FFat) { // We call open() ourselves because calling AudioFileSourceFS(FFat, filename) // would call the parent open() and we do not want that open(filename); }; virtual bool open(const char *filename) override { // make sure that the FATFS filesystem has been mounted if (!FFat.begin()) { audioLogger->printf_P(PSTR("Unable to initialize FATFS filesystem\n")); return false; } else { // now that the fielsystem has been mounted, we can call the regular parent open() function return AudioFileSourceFS::open(filename); } }; // Others are inherited from base }; #endif #endif