2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
11 #include "platform/Platform.h"
18 class CBinaryAddonManager
;
19 class CBinaryAddonCache
;
21 class CServiceAddonManager
;
22 class CRepositoryUpdater
;
30 namespace KODI::PLAYLIST
32 class CPlayListPlayer
;
35 class CContextMenuManager
;
39 #if defined(HAS_FILESYSTEM_SMB)
46 class CFavouritesService
;
50 class CWeatherManager
;
51 class CSlideShowDelegator
;
57 class CExtsMimeSupportList
;
62 class CControllerManager
;
68 class CGUIGameRenderManager
;
72 namespace MEDIA_DETECT
74 class CDetectDVDMedia
;
83 class CFileExtensionProvider
;
84 class CPlayerCoreFactory
;
85 class CDatabaseManager
;
86 class CProfileManager
;
96 bool InitForTesting();
98 bool InitStageTwo(const std::string
& profilesUserDataFolder
);
99 bool InitStageThree(const std::shared_ptr
<CProfileManager
>& profileManager
);
100 void DeinitTesting();
101 void DeinitStageThree();
102 void DeinitStageTwo();
103 void DeinitStageOne();
105 ADDON::CAddonMgr
& GetAddonMgr();
106 ADDON::CBinaryAddonManager
& GetBinaryAddonManager();
107 ADDON::CBinaryAddonCache
& GetBinaryAddonCache();
108 KODI::ADDONS::CExtsMimeSupportList
& GetExtsMimeSupportList();
109 ADDON::CVFSAddonCache
& GetVFSAddonCache();
110 ADDON::CServiceAddonManager
& GetServiceAddons();
111 ADDON::CRepositoryUpdater
& GetRepositoryUpdater();
112 CNetworkBase
& GetNetwork();
114 XBPython
& GetXBPython();
116 #if defined(HAS_FILESYSTEM_SMB)
117 WSDiscovery::IWSDiscovery
& GetWSDiscovery();
119 PVR::CPVRManager
& GetPVRManager();
120 CContextMenuManager
& GetContextMenuManager();
121 CDataCacheCore
& GetDataCacheCore();
122 /**\brief Get the platform object. This is save to be called after Init1() was called
124 CPlatform
& GetPlatform();
125 KODI::GAME::CControllerManager
& GetGameControllerManager();
126 KODI::GAME::CGameServices
& GetGameServices();
127 KODI::RETRO::CGUIGameRenderManager
& GetGameRenderManager();
128 PERIPHERALS::CPeripherals
& GetPeripherals();
130 KODI::PLAYLIST::CPlayListPlayer
& GetPlaylistPlayer();
131 CSlideShowDelegator
& GetSlideShowDelegator();
134 CFavouritesService
& GetFavouritesService();
135 CInputManager
& GetInputManager();
136 CFileExtensionProvider
& GetFileExtensionProvider();
138 CPowerManager
& GetPowerManager();
140 CWeatherManager
& GetWeatherManager();
142 CPlayerCoreFactory
& GetPlayerCoreFactory();
144 CDatabaseManager
& GetDatabaseManager();
146 CMediaManager
& GetMediaManager();
148 #if !defined(TARGET_WINDOWS) && defined(HAS_OPTICAL_DRIVE)
149 MEDIA_DETECT::CDetectDVDMedia
& GetDetectDVDMedia();
153 std::unique_ptr
<ADDON::CAddonMgr
> m_addonMgr
;
154 std::unique_ptr
<ADDON::CBinaryAddonManager
> m_binaryAddonManager
;
155 std::unique_ptr
<ADDON::CBinaryAddonCache
> m_binaryAddonCache
;
156 std::unique_ptr
<KODI::ADDONS::CExtsMimeSupportList
> m_extsMimeSupportList
;
157 std::unique_ptr
<ADDON::CVFSAddonCache
> m_vfsAddonCache
;
158 std::unique_ptr
<ADDON::CServiceAddonManager
> m_serviceAddons
;
159 std::unique_ptr
<ADDON::CRepositoryUpdater
> m_repositoryUpdater
;
160 #if defined(HAS_FILESYSTEM_SMB)
161 std::unique_ptr
<WSDiscovery::IWSDiscovery
> m_WSDiscovery
;
164 std::unique_ptr
<XBPython
> m_XBPython
;
166 std::unique_ptr
<PVR::CPVRManager
> m_PVRManager
;
167 std::unique_ptr
<CContextMenuManager
> m_contextMenuManager
;
168 std::unique_ptr
<CDataCacheCore
> m_dataCacheCore
;
169 std::unique_ptr
<CPlatform
> m_Platform
;
170 std::unique_ptr
<KODI::PLAYLIST::CPlayListPlayer
> m_playlistPlayer
;
171 std::unique_ptr
<KODI::GAME::CControllerManager
> m_gameControllerManager
;
172 std::unique_ptr
<KODI::GAME::CGameServices
> m_gameServices
;
173 std::unique_ptr
<KODI::RETRO::CGUIGameRenderManager
> m_gameRenderManager
;
174 std::unique_ptr
<PERIPHERALS::CPeripherals
> m_peripherals
;
175 std::unique_ptr
<CFavouritesService
> m_favouritesService
;
176 std::unique_ptr
<CInputManager
> m_inputManager
;
177 std::unique_ptr
<CFileExtensionProvider
> m_fileExtensionProvider
;
178 std::unique_ptr
<CNetworkBase
> m_network
;
179 std::unique_ptr
<CPowerManager
> m_powerManager
;
180 std::unique_ptr
<CWeatherManager
> m_weatherManager
;
181 std::unique_ptr
<CPlayerCoreFactory
> m_playerCoreFactory
;
182 std::unique_ptr
<CDatabaseManager
> m_databaseManager
;
183 std::unique_ptr
<CMediaManager
> m_mediaManager
;
184 #if !defined(TARGET_WINDOWS) && defined(HAS_OPTICAL_DRIVE)
185 std::unique_ptr
<MEDIA_DETECT::CDetectDVDMedia
> m_DetectDVDType
;
187 std::unique_ptr
<CSlideShowDelegator
> m_slideShowDelegator
;