diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-10 18:07:22 +0000 |
commit | c04dcc2e7d834218ef2d4194331e383402495ae1 (patch) | |
tree | 7333e38d10d75386e60f336b80c2443c1166031d /xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h | |
parent | Initial commit. (diff) | |
download | kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.tar.xz kodi-c04dcc2e7d834218ef2d4194331e383402495ae1.zip |
Adding upstream version 2:20.4+dfsg.upstream/2%20.4+dfsg
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h')
-rw-r--r-- | xbmc/filesystem/VideoDatabaseDirectory/DirectoryNode.h | 99 |
1 files changed, 99 insertions, 0 deletions
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 <string> + +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; + }; + } +} + + + |