blob: 137fd561f29790daa47a9067a1f98639ff14d320 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
/*
* Copyright (C) 2014-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 "addons/RepositoryUpdater.h"
#include "games/GameTypes.h"
#include "guilib/GUIDialog.h"
#include <memory>
namespace KODI
{
namespace GAME
{
class CControllerInstaller;
class IControllerList;
class IFeatureList;
class CGUIControllerWindow : public CGUIDialog
{
public:
CGUIControllerWindow(void);
~CGUIControllerWindow() override;
// implementation of CGUIControl via CGUIDialog
void DoProcess(unsigned int currentTime, CDirtyRegionList& dirtyregions) override;
bool OnMessage(CGUIMessage& message) override;
protected:
// implementation of CGUIWindow via CGUIDialog
void OnInitWindow() override;
void OnDeinitWindow(int nextWindowID) override;
private:
void OnControllerFocused(unsigned int controllerIndex);
void OnControllerSelected(unsigned int controllerIndex);
void OnFeatureFocused(unsigned int featureIndex);
void OnFeatureSelected(unsigned int featureIndex);
void UpdateButtons(void);
// Callbacks for events
void OnEvent(const ADDON::CRepositoryUpdater::RepositoryUpdated& event);
void OnEvent(const ADDON::AddonEvent& event);
// Action for the available button
void GetMoreControllers(void);
void GetAllControllers();
void ResetController(void);
void ShowHelp(void);
void ShowButtonCaptureDialog(void);
IControllerList* m_controllerList = nullptr;
IFeatureList* m_featureList = nullptr;
// Game parameters
GameClientPtr m_gameClient;
// Controller parameters
std::unique_ptr<CControllerInstaller> m_installer;
};
} // namespace GAME
} // namespace KODI
|