68 lines
1.5 KiB
C++
68 lines
1.5 KiB
C++
#include <WiFi.h>
|
|
#include <ArduinoOTA.h>
|
|
#include <SD.h>
|
|
#include "spi_master.h"
|
|
#include "playlist_manager.h"
|
|
#include "controller.h"
|
|
#include <Audio.h>
|
|
#include "esmp3.h"
|
|
#include <Ticker.h>
|
|
|
|
Controller controller;
|
|
Audio audio;
|
|
Ticker ticker_save_audio_current_time;
|
|
PlaylistManager* pm;
|
|
|
|
void setup() {
|
|
Serial.begin(115200);
|
|
WiFi.begin("Schlenz", "1410WischlingenPanda");
|
|
Serial.print("Connecting to WiFi...");
|
|
while(WiFi.status() != WL_CONNECTED) {
|
|
Serial.print(".");
|
|
delay(500);
|
|
}
|
|
Serial.println();
|
|
Serial.print("Connected to WiFi. IP address: ");
|
|
Serial.println(WiFi.localIP());
|
|
|
|
ArduinoOTA.begin();
|
|
Serial.println("Initializing SPI...");
|
|
SPI.begin();
|
|
SPI.setHwCs(false);
|
|
SPIMaster::initialize();
|
|
|
|
Serial.print("Initializing SD card...");
|
|
SPIMaster::enable_sd();
|
|
while(!SD.begin(14, SPI, 25000000)) {
|
|
for(int i=0; i<10; i++) {
|
|
if(SPI.transfer(0xFF)==0xFF) break;
|
|
delay(10);
|
|
}
|
|
Serial.print(".");
|
|
delay(100);
|
|
}
|
|
Serial.println();
|
|
|
|
Serial.println("Initializing PlaylistManager...");
|
|
pm = new PlaylistManager();
|
|
|
|
Serial.println("Setting up audio...");
|
|
audio.setPinout(I2S_BCLK, I2S_LRC, I2S_DOUT);
|
|
audio.setVolume(15);
|
|
audio.forceMono(true);
|
|
|
|
Serial.println("Setting up tickers...");
|
|
ticker_save_audio_current_time.attach(5, save_audio_current_time);
|
|
|
|
Serial.println("Setup finished.");
|
|
}
|
|
|
|
void loop() {
|
|
ArduinoOTA.handle();
|
|
controller.handle();
|
|
audio.loop();
|
|
}
|
|
|
|
void save_audio_current_time() {
|
|
pm->set_audio_current_time(audio.getAudioCurrentTime());
|
|
} |