Remember selected file after power loss

This commit is contained in:
Gabriel Augendre 2023-01-04 11:02:19 +01:00
parent 70f47e8668
commit aed9942c02

View file

@ -7,6 +7,7 @@
#include <Wire.h> #include <Wire.h>
#include <Adafruit_GFX.h> #include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h> #include <Adafruit_SSD1306.h>
#include <Preferences.h>
// Toggle on to switch to AP mode. // Toggle on to switch to AP mode.
// Leave commented for wifi station mode. // Leave commented for wifi station mode.
@ -50,6 +51,7 @@ String selectedFile = "";
AsyncWebServer server(80); AsyncWebServer server(80);
Audio audio; Audio audio;
Preferences preferences;
byte buttonLastState = HIGH; byte buttonLastState = HIGH;
byte currentVolume = 12; byte currentVolume = 12;
@ -123,6 +125,7 @@ void onSelectFile(AsyncWebServerRequest *request)
if (request->hasParam("fileName", true)) if (request->hasParam("fileName", true))
{ {
selectedFile = request->getParam("fileName", true)->value(); selectedFile = request->getParam("fileName", true)->value();
preferences.putString("selectedFile", selectedFile);
Serial.print(selectedFile); Serial.print(selectedFile);
displayText("Selectionne : " + selectedFile); displayText("Selectionne : " + selectedFile);
} }
@ -160,6 +163,8 @@ void setup()
pinMode(LED, OUTPUT); pinMode(LED, OUTPUT);
digitalWrite(LED, LOW); digitalWrite(LED, LOW);
preferences.begin("buzzer", false);
// Screen // Screen
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS))
{ {
@ -197,6 +202,9 @@ void setup()
return; return;
} }
selectedFile = preferences.getString("selectedFile", "");
if (selectedFile == "" || !fileIsValid(selectedFile))
{
File root = SD.open("/"); File root = SD.open("/");
File file = root.openNextFile(); File file = root.openNextFile();
while (file) while (file)
@ -213,6 +221,8 @@ void setup()
file.close(); file.close();
file = root.openNextFile(); file = root.openNextFile();
} }
root.close();
}
display.clearDisplay(); display.clearDisplay();
display.setCursor(0, 0); display.setCursor(0, 0);