1 /* 2 * Copyright (C) 2013-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 #include "IListProvider.h" 10 11 #include "DirectoryProvider.h" 12 #include "MultiProvider.h" 13 #include "StaticProvider.h" 14 #include "utils/XBMCTinyXML.h" 15 Create(const TiXmlNode * node,int parentID)16IListProvider *IListProvider::Create(const TiXmlNode *node, int parentID) 17 { 18 const TiXmlNode *root = node->FirstChild("content"); 19 if (root) 20 { 21 const TiXmlNode *next = root->NextSibling("content"); 22 if (next) 23 return new CMultiProvider(root, parentID); 24 25 return CreateSingle(root, parentID); 26 } 27 return NULL; 28 } 29 CreateSingle(const TiXmlNode * content,int parentID)30IListProvider *IListProvider::CreateSingle(const TiXmlNode *content, int parentID) 31 { 32 const TiXmlElement *item = content->FirstChildElement("item"); 33 if (item) 34 return new CStaticListProvider(content->ToElement(), parentID); 35 36 if (!content->NoChildren()) 37 return new CDirectoryProvider(content->ToElement(), parentID); 38 39 return NULL; 40 } 41