#include "ChargeVideo.hpp" #include #include using namespace ChargeVideo; // ================== Video Managing ================== float Manager::DeltaTime = 0.0f; uint16_t Manager::videoIDCounter = 0; std::unordered_map> Manager::videoPlayMethods; std::vector Manager::toUnhook; Timeline Manager::time{}; void Manager::Advance() { if (time.currentFrameTime() == 0.0f) { time.start(); } DeltaTime = time.currentFrameDuration(); for (auto processVideo : videoPlayMethods) { processVideo.second(); } for (uint16_t id : toUnhook) { videoPlayMethods.erase(id); } time.nextFrame(); } uint16_t Manager::hookVideo(std::function videoPlay) { videoPlayMethods.insert({++videoIDCounter, videoPlay}); return videoIDCounter; } void Manager::unhookVideo(uint16_t ID) { toUnhook.push_back(ID); }