16 std::unique_ptr<IVideoPlayer> getVideoPlayer(
const std::string& key, SDL_Renderer* renderer,
int width,
int height);
17 void cacheVideoPlayer(
const std::string& key, std::unique_ptr<IVideoPlayer> player, SDL_Renderer* renderer,
int width,
int height);
18 void addOldVideoPlayer(std::unique_ptr<IVideoPlayer> player);
19 void clearOldVideoPlayers();
24 SDL_Renderer* renderer;
27 std::unique_ptr<IVideoPlayer> player;
28 CacheEntry(SDL_Renderer* r,
int w,
int h, std::unique_ptr<IVideoPlayer> p)
29 : renderer(r), width(w), height(h), player(std::move(p)) {}
32 std::unordered_map<std::string, CacheEntry> cache_;
33 std::list<std::string> lruKeys_;
34 std::deque<std::unique_ptr<IVideoPlayer>> oldVideoPlayers_;
35 static const size_t MAX_CACHE_SIZE = 48;