bitte mal testen.
Bei mir geht mit der Version vom 29012023 evtl. schon ältere
#define PLAY_LAST_RFID_AFTER_REBOOT bei Webradio nicht mehr
Ja, das ist ein Folgefehler wegen dem asynchronen WLAN-Start.
Da ich dieses Feature auch sehr vermisst habe, hab ich heute nach einer Lösung gesucht.
Mit ein paar Zeilen kann man sich diese Funktionalität zurückholen.
Ich hoffe ich hab nichts übersehen, aber grundlegend funktioniert es bei mir wie gewünscht.
Hier die Änderungen bzw. Ergänzungen:
2 Zeilen in AudioPlayer.cpp
für copy & paste:
#include "main.h"
gTriedToConnectToHost = true;
3 Zeilen in Wlan.cpp
Hier noch ein Screenshot zum besseren Finden der Stelle!
für copy & paste:
#include "main.h"
if (gPlayLastRfIdWhenWiFiConnected && gTriedToConnectToHost ) {
gPlayLastRfIdWhenWiFiConnected=false;
recoverLastRfidPlayedFromNvs(true);
}
4 hinzufügen und 2 Zeilen ersetzten in main.cpp
für copy & paste:
#include "main.h"
bool gPlayLastRfIdWhenWiFiConnected = false;
bool gTriedToConnectToHost = false;
void recoverLastRfidPlayedFromNvs(bool force) {
if (recoverLastRfid || force) {
gPlayLastRfIdWhenWiFiConnected = !force;
1 Datei neu erstellen (main.h)
#pragma once
extern bool gPlayLastRfIdWhenWiFiConnected;
extern bool gTriedToConnectToHost;
extern void recoverLastRfidPlayedFromNvs(bool force = false);
Viel Freude
Niko
Freut mich.
Was ich hier noch vergessen habe, sind an min. 2 Stellen ifdef Anweisungen. Wenn der Code nachher einmal ohne das define „play_last_rfid_after_boot“ compiliert wird, werden compilerfehlermeldungen erscheinen.
Lösung: Entweder diese hinzufügen oder die neu hinzugefügten Zeilen wieder entfernen.
Im neuen dev-branch PR ist das beteits hinzugefügt.