xbmc
ControllerManager.h
1 /*
2  * Copyright (C) 2017-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 "ControllerTypes.h"
12 #include "addons/IAddon.h"
13 
14 #include <map>
15 #include <set>
16 #include <string>
17 
18 namespace KODI
19 {
20 namespace GAME
21 {
23 {
24 public:
25  CControllerManager() = default;
26  ~CControllerManager() = default;
27 
39  ControllerPtr GetController(const std::string& controllerId);
40 
46  ControllerPtr GetDefaultController();
47 
53  ControllerPtr GetDefaultKeyboard();
54 
60  ControllerPtr GetDefaultMouse();
61 
67  ControllerVector GetControllers();
68 
69 private:
70  ControllerPtr LoadController(const ADDON::AddonPtr& addon);
71 
72  std::map<std::string, ControllerPtr> m_cache;
73  std::set<std::string> m_failedControllers; // Controllers that failed to load
74 };
75 } // namespace GAME
76 } // namespace KODI
ControllerPtr GetDefaultMouse()
Get the default mouse.
Definition: ControllerManager.cpp:47
ControllerPtr GetController(const std::string &controllerId)
Get a controller.
Definition: ControllerManager.cpp:20
ControllerPtr GetDefaultController()
Get the default controller.
Definition: ControllerManager.cpp:37
Definition: ControllerManager.h:22
ControllerVector GetControllers()
Get installed controllers.
Definition: ControllerManager.cpp:52
Controller configuration window.
Definition: AudioDecoder.h:18
ControllerPtr GetDefaultKeyboard()
Get the default keyboard.
Definition: ControllerManager.cpp:42