/* * Copyright (C) 2005-2020 Team Kodi * This file is part of Kodi - https://kodi.tv * * SPDX-License-Identifier: GPL-2.0-or-later * See LICENSES/README.md for more information. */ #include "WindowSystemFactory.h" #include using namespace KODI::WINDOWING; std::list()>>> CWindowSystemFactory::m_windowSystems; std::list CWindowSystemFactory::GetWindowSystems() { std::list available; for (const auto& windowSystem : m_windowSystems) available.emplace_back(windowSystem.first); return available; } std::unique_ptr CWindowSystemFactory::CreateWindowSystem(const std::string& name) { auto windowSystem = std::find_if(m_windowSystems.begin(), m_windowSystems.end(), [&name](auto& windowSystem) { return windowSystem.first == name; }); if (windowSystem != m_windowSystems.end()) return windowSystem->second(); return nullptr; } void CWindowSystemFactory::RegisterWindowSystem( const std::function()>& createFunction, const std::string& name) { m_windowSystems.emplace_back(std::make_pair(name, createFunction)); }