#pragma once #include #include #include class Playlist { private: uint32_t _position = 0; uint32_t _current_track = 0; bool _started = false; bool _shuffled = false; std::vector _files; public: Playlist(String path); void start(); bool has_track_next(); bool has_track_prev(); bool track_next(); bool track_prev(); void track_restart(); bool set_track(uint8_t track); 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); void advent_shuffle(uint8_t day); bool is_fresh(); void dump(); void json(JsonObject json); };