summaryrefslogtreecommitdiffstats
path: root/xbmc/ServiceBroker.h
diff options
context:
space:
mode:
Diffstat (limited to 'xbmc/ServiceBroker.h')
-rw-r--r--xbmc/ServiceBroker.h240
1 files changed, 240 insertions, 0 deletions
diff --git a/xbmc/ServiceBroker.h b/xbmc/ServiceBroker.h
new file mode 100644
index 0000000..dc502e4
--- /dev/null
+++ b/xbmc/ServiceBroker.h
@@ -0,0 +1,240 @@
+/*
+ * 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 "utils/GlobalsHandling.h"
+
+#include <memory>
+
+namespace ADDON
+{
+class CAddonMgr;
+class CBinaryAddonManager;
+class CBinaryAddonCache;
+class CVFSAddonCache;
+class CServiceAddonManager;
+class CRepositoryUpdater;
+} // namespace ADDON
+
+namespace ANNOUNCEMENT
+{
+class CAnnouncementManager;
+}
+
+namespace MEDIA_DETECT
+{
+class CDetectDVDMedia;
+}
+
+namespace PVR
+{
+class CPVRManager;
+}
+
+namespace PLAYLIST
+{
+class CPlayListPlayer;
+}
+
+namespace KODI
+{
+namespace MESSAGING
+{
+class CApplicationMessenger;
+}
+} // namespace KODI
+
+class CAppParams;
+template<class T>
+class CComponentContainer;
+class CContextMenuManager;
+class XBPython;
+class CDataCacheCore;
+class IAE;
+class IApplicationComponent;
+class CFavouritesService;
+class CInputManager;
+class CFileExtensionProvider;
+class CNetworkBase;
+class CWinSystemBase;
+class CRenderSystemBase;
+class CPowerManager;
+class CWeatherManager;
+class CPlayerCoreFactory;
+class CDatabaseManager;
+class CEventLog;
+class CGUIComponent;
+class CAppInboundProtocol;
+class CSettingsComponent;
+class CDecoderFilterManager;
+class CMediaManager;
+class CCPUInfo;
+class CLog;
+class CPlatform;
+class CTextureCache;
+class CJobManager;
+class CKeyboardLayoutManager;
+
+namespace WSDiscovery
+{
+class IWSDiscovery;
+}
+
+namespace KODI
+{
+namespace ADDONS
+{
+class CExtsMimeSupportList;
+}
+
+namespace GAME
+{
+class CControllerManager;
+class CGameServices;
+} // namespace GAME
+
+namespace RETRO
+{
+class CGUIGameRenderManager;
+}
+} // namespace KODI
+
+namespace PERIPHERALS
+{
+class CPeripherals;
+}
+
+namespace speech
+{
+class ISpeechRecognition;
+}
+
+class CServiceBroker
+{
+public:
+ CServiceBroker();
+ ~CServiceBroker();
+
+ static std::shared_ptr<CAppParams> GetAppParams();
+ static void RegisterAppParams(const std::shared_ptr<CAppParams>& appParams);
+ static void UnregisterAppParams();
+
+ static CLog& GetLogging();
+ static void CreateLogging();
+ static void DestroyLogging();
+
+ static std::shared_ptr<ANNOUNCEMENT::CAnnouncementManager> GetAnnouncementManager();
+ static void RegisterAnnouncementManager(
+ std::shared_ptr<ANNOUNCEMENT::CAnnouncementManager> announcementManager);
+ static void UnregisterAnnouncementManager();
+
+ static ADDON::CAddonMgr& GetAddonMgr();
+ static ADDON::CBinaryAddonManager& GetBinaryAddonManager();
+ static ADDON::CBinaryAddonCache& GetBinaryAddonCache();
+ static KODI::ADDONS::CExtsMimeSupportList& GetExtsMimeSupportList();
+ static ADDON::CVFSAddonCache& GetVFSAddonCache();
+ static XBPython& GetXBPython();
+ static WSDiscovery::IWSDiscovery& GetWSDiscovery();
+ static MEDIA_DETECT::CDetectDVDMedia& GetDetectDVDMedia();
+ static PVR::CPVRManager& GetPVRManager();
+ static CContextMenuManager& GetContextMenuManager();
+ static CDataCacheCore& GetDataCacheCore();
+ static CPlatform& GetPlatform();
+ static PLAYLIST::CPlayListPlayer& GetPlaylistPlayer();
+ static KODI::GAME::CControllerManager& GetGameControllerManager();
+ static KODI::GAME::CGameServices& GetGameServices();
+ static KODI::RETRO::CGUIGameRenderManager& GetGameRenderManager();
+ static PERIPHERALS::CPeripherals& GetPeripherals();
+ static CFavouritesService& GetFavouritesService();
+ static ADDON::CServiceAddonManager& GetServiceAddons();
+ static ADDON::CRepositoryUpdater& GetRepositoryUpdater();
+ static CInputManager& GetInputManager();
+ static CFileExtensionProvider& GetFileExtensionProvider();
+ static bool IsAddonInterfaceUp();
+ static bool IsServiceManagerUp();
+ static CNetworkBase& GetNetwork();
+ static CPowerManager& GetPowerManager();
+ static CWeatherManager& GetWeatherManager();
+ static CPlayerCoreFactory& GetPlayerCoreFactory();
+ static CDatabaseManager& GetDatabaseManager();
+ static CEventLog* GetEventLog();
+ static CMediaManager& GetMediaManager();
+ static CComponentContainer<IApplicationComponent>& GetAppComponents();
+
+ static CGUIComponent* GetGUI();
+ static void RegisterGUI(CGUIComponent* gui);
+ static void UnregisterGUI();
+
+ static void RegisterSettingsComponent(const std::shared_ptr<CSettingsComponent>& settings);
+ static void UnregisterSettingsComponent();
+ static std::shared_ptr<CSettingsComponent> GetSettingsComponent();
+
+ static void RegisterWinSystem(CWinSystemBase* winsystem);
+ static void UnregisterWinSystem();
+ static CWinSystemBase* GetWinSystem();
+ static CRenderSystemBase* GetRenderSystem();
+
+ static IAE* GetActiveAE();
+ static void RegisterAE(IAE* ae);
+ static void UnregisterAE();
+
+ static std::shared_ptr<CAppInboundProtocol> GetAppPort();
+ static void RegisterAppPort(std::shared_ptr<CAppInboundProtocol> port);
+ static void UnregisterAppPort();
+
+ static void RegisterDecoderFilterManager(CDecoderFilterManager* manager);
+ static CDecoderFilterManager* GetDecoderFilterManager();
+
+ static std::shared_ptr<CCPUInfo> GetCPUInfo();
+ static void RegisterCPUInfo(std::shared_ptr<CCPUInfo> cpuInfo);
+ static void UnregisterCPUInfo();
+
+ static void RegisterTextureCache(const std::shared_ptr<CTextureCache>& cache);
+ static void UnregisterTextureCache();
+ static std::shared_ptr<CTextureCache> GetTextureCache();
+
+ static void RegisterJobManager(const std::shared_ptr<CJobManager>& jobManager);
+ static void UnregisterJobManager();
+ static std::shared_ptr<CJobManager> GetJobManager();
+
+ static void RegisterAppMessenger(
+ const std::shared_ptr<KODI::MESSAGING::CApplicationMessenger>& appMessenger);
+ static void UnregisterAppMessenger();
+ static std::shared_ptr<KODI::MESSAGING::CApplicationMessenger> GetAppMessenger();
+
+ static void RegisterKeyboardLayoutManager(
+ const std::shared_ptr<CKeyboardLayoutManager>& keyboardLayoutManager);
+ static void UnregisterKeyboardLayoutManager();
+ static std::shared_ptr<CKeyboardLayoutManager> GetKeyboardLayoutManager();
+
+ static void RegisterSpeechRecognition(
+ const std::shared_ptr<speech::ISpeechRecognition>& speechRecognition);
+ static void UnregisterSpeechRecognition();
+ static std::shared_ptr<speech::ISpeechRecognition> GetSpeechRecognition();
+
+private:
+ std::shared_ptr<CAppParams> m_appParams;
+ std::unique_ptr<CLog> m_logging;
+ std::shared_ptr<ANNOUNCEMENT::CAnnouncementManager> m_pAnnouncementManager;
+ CGUIComponent* m_pGUI;
+ CWinSystemBase* m_pWinSystem;
+ IAE* m_pActiveAE;
+ std::shared_ptr<CAppInboundProtocol> m_pAppPort;
+ std::shared_ptr<CSettingsComponent> m_pSettingsComponent;
+ CDecoderFilterManager* m_decoderFilterManager;
+ std::shared_ptr<CCPUInfo> m_cpuInfo;
+ std::shared_ptr<CTextureCache> m_textureCache;
+ std::shared_ptr<CJobManager> m_jobManager;
+ std::shared_ptr<KODI::MESSAGING::CApplicationMessenger> m_appMessenger;
+ std::shared_ptr<CKeyboardLayoutManager> m_keyboardLayoutManager;
+ std::shared_ptr<speech::ISpeechRecognition> m_speechRecognition;
+};
+
+XBMC_GLOBAL_REF(CServiceBroker, g_serviceBroker);
+#define g_serviceBroker XBMC_GLOBAL_USE(CServiceBroker)