Files
yoradio/yoRadio/yoRadio.ino
2022-04-18 12:55:32 +03:00

76 lines
1.6 KiB
C++

#include "Arduino.h"
#include "options.h"
#if DSP_MODEL==DSP_DUMMY
#define DUMMYDISPLAY
#endif
#include "config.h"
#include "telnet.h"
#include "player.h"
#include "display.h"
#include "player.h"
#include "network.h"
#include "netserver.h"
#include "controls.h"
#include "mqtt.h"
unsigned long checkMillis = 0;
unsigned long checkInterval = 3000;
void setup() {
Serial.begin(115200);
pinMode(LED_BUILTIN, OUTPUT);
config.init();
display.init();
player.init();
network.begin();
if (network.status != CONNECTED) {
netserver.begin();
display.start();
return;
}
netserver.begin();
telnet.begin();
#if PLAYER_FORCE_MONO
player.forceMono(true);
#endif
player.setVol(config.store.volume, true);
initControls();
display.start();
#ifdef MQTT_HOST
mqttInit();
#endif
if (config.store.smartstart == 1) player.play(config.store.lastStation);
}
void loop() {
if (network.status == CONNECTED) {
telnet.loop();
player.loop();
loopControls();
checkConnection();
}
// display.loop();
netserver.loop();
}
void checkConnection(){
if ((WiFi.status() != WL_CONNECTED) && (millis() - checkMillis >=checkInterval)) {
bool playing = player.isRunning();
if (playing) player.mode = STOPPED;
display.putRequest({NEWMODE, LOST});
Serial.println("Lost connection, reconnecting...");
while(true){
if (WiFi.status() == WL_CONNECTED) break;
WiFi.disconnect();
WiFi.reconnect();
delay(3000);
}
display.putRequest({NEWMODE, PLAYER});
if (playing) player.request.station = config.store.lastStation;
checkMillis = millis();
}
}