From c04dcc2e7d834218ef2d4194331e383402495ae1 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 20:07:22 +0200 Subject: Adding upstream version 2:20.4+dfsg. Signed-off-by: Daniel Baumann --- xbmc/listproviders/IListProvider.cpp | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 xbmc/listproviders/IListProvider.cpp (limited to 'xbmc/listproviders/IListProvider.cpp') diff --git a/xbmc/listproviders/IListProvider.cpp b/xbmc/listproviders/IListProvider.cpp new file mode 100644 index 0000000..3979319 --- /dev/null +++ b/xbmc/listproviders/IListProvider.cpp @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2013-2018 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 "IListProvider.h" + +#include "DirectoryProvider.h" +#include "MultiProvider.h" +#include "StaticProvider.h" +#include "utils/XBMCTinyXML.h" + +std::unique_ptr IListProvider::Create(const TiXmlNode* node, int parentID) +{ + const TiXmlNode *root = node->FirstChild("content"); + if (root) + { + const TiXmlNode *next = root->NextSibling("content"); + if (next) + return std::make_unique(root, parentID); + + return CreateSingle(root, parentID); + } + return std::unique_ptr{}; +} + +std::unique_ptr IListProvider::CreateSingle(const TiXmlNode* content, int parentID) +{ + const TiXmlElement *item = content->FirstChildElement("item"); + if (item) + return std::make_unique(content->ToElement(), parentID); + + if (!content->NoChildren()) + return std::make_unique(content->ToElement(), parentID); + + return std::unique_ptr{}; +} -- cgit v1.2.3