From be933ef2241d79558f91796cc5b3a161f72ebf9c Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 19 Oct 2020 00:52:24 +0200 Subject: sync with upstream --- xbmc/utils/FileExtensionProvider.h | 79 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 xbmc/utils/FileExtensionProvider.h (limited to 'xbmc/utils/FileExtensionProvider.h') diff --git a/xbmc/utils/FileExtensionProvider.h b/xbmc/utils/FileExtensionProvider.h new file mode 100644 index 0000000..fce384a --- /dev/null +++ b/xbmc/utils/FileExtensionProvider.h @@ -0,0 +1,79 @@ +/* + * Copyright (C) 2012-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 "addons/AddonEvents.h" +#include "addons/addoninfo/AddonInfo.h" +#include "settings/AdvancedSettings.h" + +namespace ADDON +{ + class CAddonMgr; +} + +class CFileExtensionProvider +{ +public: + CFileExtensionProvider(ADDON::CAddonMgr& addonManager); + ~CFileExtensionProvider(); + + /*! + * @brief Returns a list of picture extensions + */ + std::string GetPictureExtensions() const; + + /*! + * @brief Returns a list of music extensions + */ + std::string GetMusicExtensions() const; + + /*! + * @brief Returns a list of video extensions + */ + std::string GetVideoExtensions() const; + + /*! + * @brief Returns a list of subtitle extensions + */ + std::string GetSubtitleExtensions() const; + + /*! + * @brief Returns a list of disc stub extensions + */ + std::string GetDiscStubExtensions() const; + + /*! + * @brief Returns a file folder extensions + */ + std::string GetFileFolderExtensions() const; + + /*! + * @brief Returns whether a url protocol from add-ons use encoded hostnames + */ + bool EncodedHostName(const std::string& protocol) const; + +private: + std::string GetAddonExtensions(const ADDON::TYPE &type) const; + std::string GetAddonFileFolderExtensions(const ADDON::TYPE &type) const; + void SetAddonExtensions(); + void SetAddonExtensions(const ADDON::TYPE &type); + + void OnAddonEvent(const ADDON::AddonEvent& event); + + // Construction properties + std::shared_ptr m_advancedSettings; + ADDON::CAddonMgr &m_addonManager; + + // File extension properties + std::map m_addonExtensions; + std::map m_addonFileFolderExtensions; + + // Protocols from add-ons with encoded host names + std::vector m_encoded; +}; -- cgit v1.2.3