#include "ChargeVideo.hpp" #include #include using namespace ChargeVideo; // ================== Video Timing ================== float Time::DeltaTime = 0.0f; uint16_t Time::videoIDCounter = 0; std::unordered_map> Time::videoPlayMethods; std::vector Time::toUnhook; Timeline Time::time{}; void Time::AdvanceTime() { 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 Time::hookVideo(std::function videoPlay) { videoPlayMethods.insert({++videoIDCounter, videoPlay}); return videoIDCounter; } void Time::unhookVideo(uint16_t ID) { toUnhook.push_back(ID); }