2019-11-14 19:42:02 +00:00
|
|
|
#pragma once
|
|
|
|
#include <Arduino.h>
|
|
|
|
#include <vector>
|
2019-11-16 22:03:13 +00:00
|
|
|
#include <ArduinoJson.h>
|
2019-11-14 19:42:02 +00:00
|
|
|
|
|
|
|
class Playlist {
|
|
|
|
private:
|
|
|
|
uint32_t _position = 0;
|
|
|
|
uint32_t _current_track = 0;
|
2019-11-16 22:03:13 +00:00
|
|
|
bool _started = false;
|
2019-11-14 19:42:02 +00:00
|
|
|
bool _shuffled = false;
|
|
|
|
std::vector<String> _files;
|
|
|
|
public:
|
|
|
|
Playlist(String path);
|
2019-11-16 22:03:13 +00:00
|
|
|
void start();
|
2019-11-14 19:42:02 +00:00
|
|
|
bool has_track_next();
|
|
|
|
bool has_track_prev();
|
|
|
|
bool track_next();
|
|
|
|
bool track_prev();
|
|
|
|
void track_restart();
|
2019-11-16 22:03:13 +00:00
|
|
|
bool set_track(uint8_t track);
|
2019-11-14 19:42:02 +00:00
|
|
|
void reset();
|
|
|
|
bool is_empty();
|
|
|
|
String get_current_file();
|
|
|
|
uint32_t get_position();
|
|
|
|
void set_position(uint32_t p);
|
|
|
|
void shuffle(uint8_t random_offset=0);
|
2019-11-16 22:03:13 +00:00
|
|
|
void advent_shuffle(uint8_t day);
|
2019-11-14 19:42:02 +00:00
|
|
|
bool is_fresh();
|
2019-11-16 22:03:13 +00:00
|
|
|
void dump();
|
|
|
|
void json(JsonObject json);
|
2019-11-14 19:42:02 +00:00
|
|
|
};
|