summaryrefslogtreecommitdiffstats
path: root/xbmc/ServiceManager.h
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 18:07:22 +0000
commitc04dcc2e7d834218ef2d4194331e383402495ae1 (patch)
tree7333e38d10d75386e60f336b80c2443c1166031d /xbmc/ServiceManager.h
parentInitial commit. (diff)
downloadkodi-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/ServiceManager.h')
-rw-r--r--xbmc/ServiceManager.h200
1 files changed, 200 insertions, 0 deletions
diff --git a/xbmc/ServiceManager.h b/xbmc/ServiceManager.h
new file mode 100644
index 0000000..9c99811
--- /dev/null
+++ b/xbmc/ServiceManager.h
@@ -0,0 +1,200 @@
+/*
+ * Copyright (C) 2005-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 "platform/Platform.h"
+
+#include <memory>
+
+namespace ADDON
+{
+class CAddonMgr;
+class CBinaryAddonManager;
+class CBinaryAddonCache;
+class CVFSAddonCache;
+class CServiceAddonManager;
+class CRepositoryUpdater;
+} // namespace ADDON
+
+namespace PVR
+{
+class CPVRManager;
+}
+
+namespace PLAYLIST
+{
+class CPlayListPlayer;
+}
+
+class CContextMenuManager;
+#ifdef HAS_PYTHON
+class XBPython;
+#endif
+#if defined(HAS_FILESYSTEM_SMB)
+namespace WSDiscovery
+{
+class IWSDiscovery;
+}
+#endif
+class CDataCacheCore;
+class CFavouritesService;
+class CNetworkBase;
+class CWinSystemBase;
+class CPowerManager;
+class CWeatherManager;
+
+namespace KODI
+{
+namespace ADDONS
+{
+class CExtsMimeSupportList;
+}
+
+namespace GAME
+{
+class CControllerManager;
+class CGameServices;
+} // namespace GAME
+
+namespace RETRO
+{
+class CGUIGameRenderManager;
+}
+} // namespace KODI
+
+namespace MEDIA_DETECT
+{
+class CDetectDVDMedia;
+}
+
+namespace PERIPHERALS
+{
+class CPeripherals;
+}
+
+class CInputManager;
+class CFileExtensionProvider;
+class CPlayerCoreFactory;
+class CDatabaseManager;
+class CProfileManager;
+class CEventLog;
+class CMediaManager;
+
+class CServiceManager
+{
+public:
+ CServiceManager();
+ ~CServiceManager();
+
+ bool InitForTesting();
+ bool InitStageOne();
+ bool InitStageTwo(const std::string& profilesUserDataFolder);
+ bool InitStageThree(const std::shared_ptr<CProfileManager>& profileManager);
+ void DeinitTesting();
+ void DeinitStageThree();
+ void DeinitStageTwo();
+ void DeinitStageOne();
+
+ ADDON::CAddonMgr& GetAddonMgr();
+ ADDON::CBinaryAddonManager& GetBinaryAddonManager();
+ ADDON::CBinaryAddonCache& GetBinaryAddonCache();
+ KODI::ADDONS::CExtsMimeSupportList& GetExtsMimeSupportList();
+ ADDON::CVFSAddonCache& GetVFSAddonCache();
+ ADDON::CServiceAddonManager& GetServiceAddons();
+ ADDON::CRepositoryUpdater& GetRepositoryUpdater();
+ CNetworkBase& GetNetwork();
+#ifdef HAS_PYTHON
+ XBPython& GetXBPython();
+#endif
+#if defined(HAS_FILESYSTEM_SMB)
+ WSDiscovery::IWSDiscovery& GetWSDiscovery();
+#endif
+ PVR::CPVRManager& GetPVRManager();
+ CContextMenuManager& GetContextMenuManager();
+ CDataCacheCore& GetDataCacheCore();
+ /**\brief Get the platform object. This is save to be called after Init1() was called
+ */
+ CPlatform& GetPlatform();
+ KODI::GAME::CControllerManager& GetGameControllerManager();
+ KODI::GAME::CGameServices& GetGameServices();
+ KODI::RETRO::CGUIGameRenderManager& GetGameRenderManager();
+ PERIPHERALS::CPeripherals& GetPeripherals();
+
+ PLAYLIST::CPlayListPlayer& GetPlaylistPlayer();
+ int init_level = 0;
+
+ CFavouritesService& GetFavouritesService();
+ CInputManager& GetInputManager();
+ CFileExtensionProvider& GetFileExtensionProvider();
+
+ CPowerManager& GetPowerManager();
+
+ CWeatherManager& GetWeatherManager();
+
+ CPlayerCoreFactory& GetPlayerCoreFactory();
+
+ CDatabaseManager& GetDatabaseManager();
+
+ CMediaManager& GetMediaManager();
+
+#if !defined(TARGET_WINDOWS) && defined(HAS_DVD_DRIVE)
+ MEDIA_DETECT::CDetectDVDMedia& GetDetectDVDMedia();
+#endif
+
+protected:
+ struct delete_dataCacheCore
+ {
+ void operator()(CDataCacheCore* p) const;
+ };
+
+ struct delete_contextMenuManager
+ {
+ void operator()(CContextMenuManager* p) const;
+ };
+
+ struct delete_favouritesService
+ {
+ void operator()(CFavouritesService* p) const;
+ };
+
+ std::unique_ptr<ADDON::CAddonMgr> m_addonMgr;
+ std::unique_ptr<ADDON::CBinaryAddonManager> m_binaryAddonManager;
+ std::unique_ptr<ADDON::CBinaryAddonCache> m_binaryAddonCache;
+ std::unique_ptr<KODI::ADDONS::CExtsMimeSupportList> m_extsMimeSupportList;
+ std::unique_ptr<ADDON::CVFSAddonCache> m_vfsAddonCache;
+ std::unique_ptr<ADDON::CServiceAddonManager> m_serviceAddons;
+ std::unique_ptr<ADDON::CRepositoryUpdater> m_repositoryUpdater;
+#if defined(HAS_FILESYSTEM_SMB)
+ std::unique_ptr<WSDiscovery::IWSDiscovery> m_WSDiscovery;
+#endif
+#ifdef HAS_PYTHON
+ std::unique_ptr<XBPython> m_XBPython;
+#endif
+ std::unique_ptr<PVR::CPVRManager> m_PVRManager;
+ std::unique_ptr<CContextMenuManager, delete_contextMenuManager> m_contextMenuManager;
+ std::unique_ptr<CDataCacheCore, delete_dataCacheCore> m_dataCacheCore;
+ std::unique_ptr<CPlatform> m_Platform;
+ std::unique_ptr<PLAYLIST::CPlayListPlayer> m_playlistPlayer;
+ std::unique_ptr<KODI::GAME::CControllerManager> m_gameControllerManager;
+ std::unique_ptr<KODI::GAME::CGameServices> m_gameServices;
+ std::unique_ptr<KODI::RETRO::CGUIGameRenderManager> m_gameRenderManager;
+ std::unique_ptr<PERIPHERALS::CPeripherals> m_peripherals;
+ std::unique_ptr<CFavouritesService, delete_favouritesService> m_favouritesService;
+ std::unique_ptr<CInputManager> m_inputManager;
+ std::unique_ptr<CFileExtensionProvider> m_fileExtensionProvider;
+ std::unique_ptr<CNetworkBase> m_network;
+ std::unique_ptr<CPowerManager> m_powerManager;
+ std::unique_ptr<CWeatherManager> m_weatherManager;
+ std::unique_ptr<CPlayerCoreFactory> m_playerCoreFactory;
+ std::unique_ptr<CDatabaseManager> m_databaseManager;
+ std::unique_ptr<CMediaManager> m_mediaManager;
+#if !defined(TARGET_WINDOWS) && defined(HAS_DVD_DRIVE)
+ std::unique_ptr<MEDIA_DETECT::CDetectDVDMedia> m_DetectDVDType;
+#endif
+};