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 --- .../VideoDatabaseDirectory/DirectoryNode.h | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h (limited to 'xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h') diff --git a/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h b/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h new file mode 100644 index 0000000..7ab27c5 --- /dev/null +++ b/xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h @@ -0,0 +1,99 @@ +/* + * Copyright (C) 2016-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. + */ + +#pragma once + +#include "utils/UrlOptions.h" + +#include + +class CFileItemList; + +namespace XFILE +{ + namespace VIDEODATABASEDIRECTORY + { + class CQueryParams; + + typedef enum _NODE_TYPE + { + NODE_TYPE_NONE=0, + NODE_TYPE_MOVIES_OVERVIEW, + NODE_TYPE_TVSHOWS_OVERVIEW, + NODE_TYPE_GENRE, + NODE_TYPE_ACTOR, + NODE_TYPE_ROOT, + NODE_TYPE_OVERVIEW, + NODE_TYPE_TITLE_MOVIES, + NODE_TYPE_YEAR, + NODE_TYPE_DIRECTOR, + NODE_TYPE_TITLE_TVSHOWS, + NODE_TYPE_SEASONS, + NODE_TYPE_EPISODES, + NODE_TYPE_RECENTLY_ADDED_MOVIES, + NODE_TYPE_RECENTLY_ADDED_EPISODES, + NODE_TYPE_STUDIO, + NODE_TYPE_MUSICVIDEOS_OVERVIEW, + NODE_TYPE_RECENTLY_ADDED_MUSICVIDEOS, + NODE_TYPE_TITLE_MUSICVIDEOS, + NODE_TYPE_MUSICVIDEOS_ALBUM, + NODE_TYPE_SETS, + NODE_TYPE_COUNTRY, + NODE_TYPE_TAGS, + NODE_TYPE_INPROGRESS_TVSHOWS + } NODE_TYPE; + + typedef struct { + NODE_TYPE node; + std::string id; + int label; + } Node; + + class CDirectoryNode + { + public: + static CDirectoryNode* ParseURL(const std::string& strPath); + static void GetDatabaseInfo(const std::string& strPath, CQueryParams& params); + virtual ~CDirectoryNode(); + + NODE_TYPE GetType() const; + + bool GetChilds(CFileItemList& items); + virtual NODE_TYPE GetChildType() const; + virtual std::string GetLocalizedName() const; + void CollectQueryParams(CQueryParams& params) const; + + CDirectoryNode* GetParent() const; + + std::string BuildPath() const; + + virtual bool CanCache() const; + protected: + CDirectoryNode(NODE_TYPE Type, const std::string& strName, CDirectoryNode* pParent); + static CDirectoryNode* CreateNode(NODE_TYPE Type, const std::string& strName, CDirectoryNode* pParent); + + void AddOptions(const std::string& options); + + const std::string& GetName() const; + int GetID() const; + void RemoveParent(); + + virtual bool GetContent(CFileItemList& items) const; + + + private: + NODE_TYPE m_Type; + std::string m_strName; + CDirectoryNode* m_pParent; + CUrlOptions m_options; + }; + } +} + + + -- cgit v1.2.3