xbmc
FileExtensionProvider.h
1 /*
2  * Copyright (C) 2012-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 #pragma once
10 
11 #include <map>
12 #include <memory>
13 #include <string>
14 #include <vector>
15 
16 namespace ADDON
17 {
18 enum class AddonType;
19 class CAddonMgr;
20 struct AddonEvent;
21 }
22 
23 class CAdvancedSettings;
24 
26 {
27 public:
30 
34  std::string GetPictureExtensions() const;
35 
39  std::string GetMusicExtensions() const;
40 
44  std::string GetVideoExtensions() const;
45 
49  std::string GetSubtitleExtensions() const;
50 
54  std::string GetDiscStubExtensions() const;
55 
59  std::string GetFileFolderExtensions() const;
60 
64  bool EncodedHostName(const std::string& protocol) const;
65 
71  bool CanOperateExtension(const std::string& path) const;
72 
73 private:
74  std::string GetAddonExtensions(ADDON::AddonType type) const;
75  std::string GetAddonFileFolderExtensions(ADDON::AddonType type) const;
76  void SetAddonExtensions();
77  void SetAddonExtensions(ADDON::AddonType type);
78 
79  void OnAddonEvent(const ADDON::AddonEvent& event);
80 
81  // Construction properties
82  std::shared_ptr<CAdvancedSettings> m_advancedSettings;
83  ADDON::CAddonMgr &m_addonManager;
84 
85  // File extension properties
86  std::map<ADDON::AddonType, std::string> m_addonExtensions;
87  std::map<ADDON::AddonType, std::string> m_addonFileFolderExtensions;
88 
89  // Protocols from add-ons with encoded host names
90  std::vector<std::string> m_encoded;
91 };
Class - CAddonMgr Holds references to all addons, enabled or otherwise.
Definition: AddonManager.h:79
Definition: FileExtensionProvider.h:25
Definition: AddonEvents.h:18
Definition: AdvancedSettings.h:107
Definition: Addon.cpp:39