[PVR][Estuary] Timer settings dialog: Show client name in timer type selection dialog...
[xbmc.git] / xbmc / games / GameServices.h
blobc736febd9c3bd8d0b6b9274a4e35fa67b6dfe782
1 /*
2 * Copyright (C) 2017-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.
7 */
9 #pragma once
11 #include "controllers/ControllerTypes.h"
13 #include <memory>
14 #include <string>
16 class CInputManager;
17 class CProfileManager;
19 namespace PERIPHERALS
21 class CPeripherals;
24 namespace KODI
26 namespace RETRO
28 class CGUIGameRenderManager;
31 namespace GAME
33 class CGameAgentManager;
34 class CControllerManager;
35 class CGameSettings;
37 class CGameServices
39 public:
40 CGameServices(CControllerManager& controllerManager,
41 RETRO::CGUIGameRenderManager& renderManager,
42 PERIPHERALS::CPeripherals& peripheralManager,
43 const CProfileManager& profileManager,
44 CInputManager& inputManager);
45 ~CGameServices();
47 ControllerPtr GetController(const std::string& controllerId);
48 ControllerPtr GetDefaultController();
49 ControllerPtr GetDefaultKeyboard();
50 ControllerPtr GetDefaultMouse();
51 ControllerVector GetControllers();
53 std::string GetSavestatesFolder() const;
55 CGameSettings& GameSettings() { return *m_gameSettings; }
57 RETRO::CGUIGameRenderManager& GameRenderManager() { return m_gameRenderManager; }
59 CGameAgentManager& GameAgentManager() { return *m_gameAgentManager; }
61 private:
62 // Construction parameters
63 CControllerManager& m_controllerManager;
64 RETRO::CGUIGameRenderManager& m_gameRenderManager;
65 const CProfileManager& m_profileManager;
67 // Game services
68 std::unique_ptr<CGameSettings> m_gameSettings;
69 std::unique_ptr<CGameAgentManager> m_gameAgentManager;
71 } // namespace GAME
72 } // namespace KODI