1 /* 2 * Copyright (C) 2005-2018 Team Kodi 3 * This file is part of Kodi - https://kodi.tv 4 * 5 * SPDX-License-Identifier: GPL-2.0-or-later 6 * See LICENSES/README.md for more information. 7 */ 8 9 #pragma once 10 11 #include "BaseRenderer.h" 12 13 #include <map> 14 #include <string> 15 #include <vector> 16 17 namespace VIDEOPLAYER 18 { 19 20 typedef CBaseRenderer* (*CreateRenderer)(CVideoBuffer *buffer); 21 22 class CRendererFactory 23 { 24 public: 25 static CBaseRenderer* CreateRenderer(const std::string& id, CVideoBuffer* buffer); 26 27 static void RegisterRenderer(const std::string& id, VIDEOPLAYER::CreateRenderer createFunc); 28 static std::vector<std::string> GetRenderers(); 29 static void ClearRenderer(); 30 31 protected: 32 33 static std::map<std::string, VIDEOPLAYER::CreateRenderer> m_renderers; 34 }; 35 36 } 37