aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGarrett Brown <themagnificentmrb@gmail.com>2024-01-13 18:52:06 -0800
committerGarrett Brown <themagnificentmrb@gmail.com>2024-01-16 17:58:04 -0800
commit371ef7cab7b1d7eecee73fc71dd0f9fe7f148413 (patch)
treeda682cb632e616c109368ef728365f909d1cf2ac
parentaa24e0282de67ad5352f38c77f5b7783b296fca5 (diff)
[Keyboard] Refactor keyboard files into input/keyboard/ folder
-rw-r--r--cmake/treedata/common/input.txt1
-rw-r--r--xbmc/ServiceBroker.cpp4
-rw-r--r--xbmc/ServiceBroker.h12
-rw-r--r--xbmc/addons/gui/GUIDialogAddonSettings.cpp3
-rw-r--r--xbmc/addons/gui/GUIWindowAddonBrowser.cpp2
-rw-r--r--xbmc/addons/interfaces/General.cpp23
-rw-r--r--xbmc/addons/interfaces/gui/Window.cpp3
-rw-r--r--xbmc/application/Application.cpp6
-rw-r--r--xbmc/dialogs/GUIDialogColorPicker.cpp2
-rw-r--r--xbmc/dialogs/GUIDialogContextMenu.cpp3
-rw-r--r--xbmc/dialogs/GUIDialogFileBrowser.cpp3
-rw-r--r--xbmc/dialogs/GUIDialogGamepad.cpp4
-rw-r--r--xbmc/dialogs/GUIDialogKeyboardGeneric.cpp52
-rw-r--r--xbmc/dialogs/GUIDialogKeyboardGeneric.h13
-rw-r--r--xbmc/dialogs/GUIDialogMediaSource.cpp33
-rw-r--r--xbmc/dialogs/GUIDialogNumeric.cpp6
-rw-r--r--xbmc/dialogs/GUIDialogPlayerProcessInfo.cpp3
-rw-r--r--xbmc/dialogs/GUIDialogSelect.cpp2
-rw-r--r--xbmc/dialogs/GUIDialogSlider.cpp3
-rw-r--r--xbmc/dialogs/GUIDialogSmartPlaylistEditor.cpp2
-rw-r--r--xbmc/dialogs/GUIDialogYesNo.cpp2
-rw-r--r--xbmc/events/windows/GUIWindowEventLog.cpp2
-rw-r--r--xbmc/games/controllers/windows/GUIConfigurationWizard.cpp1
-rw-r--r--xbmc/games/controllers/windows/GUIConfigurationWizard.h2
-rw-r--r--xbmc/games/dialogs/osd/DialogGameSaves.cpp2
-rw-r--r--xbmc/guilib/GUIAudioManager.cpp2
-rw-r--r--xbmc/guilib/GUIBaseContainer.cpp4
-rw-r--r--xbmc/guilib/GUIColorButtonControl.cpp2
-rw-r--r--xbmc/guilib/GUIControlFactory.cpp2
-rw-r--r--xbmc/guilib/GUIDialog.cpp3
-rw-r--r--xbmc/guilib/GUIEditControl.cpp6
-rw-r--r--xbmc/guilib/GUIFixedListContainer.cpp3
-rw-r--r--xbmc/guilib/GUIListContainer.cpp3
-rw-r--r--xbmc/guilib/GUIMultiImage.cpp1
-rw-r--r--xbmc/guilib/GUIPanelContainer.cpp3
-rw-r--r--xbmc/guilib/GUIRadioButtonControl.cpp3
-rw-r--r--xbmc/guilib/GUIToggleButtonControl.cpp3
-rw-r--r--xbmc/guilib/GUIWrappingListContainer.cpp3
-rw-r--r--xbmc/input/CMakeLists.txt15
-rw-r--r--xbmc/input/InputManager.cpp7
-rw-r--r--xbmc/input/InputManager.h4
-rw-r--r--xbmc/input/InputTypes.h3
-rw-r--r--xbmc/input/Key.h194
-rw-r--r--xbmc/input/actions/Action.cpp3
-rw-r--r--xbmc/input/joysticks/generic/ButtonMapping.cpp3
-rw-r--r--xbmc/input/keyboard/CMakeLists.txt19
-rw-r--r--xbmc/input/keyboard/Key.cpp (renamed from xbmc/input/Key.cpp)4
-rw-r--r--xbmc/input/keyboard/Key.h96
-rw-r--r--xbmc/input/keyboard/KeyIDs.h91
-rw-r--r--xbmc/input/keyboard/KeyboardEasterEgg.cpp2
-rw-r--r--xbmc/input/keyboard/KeyboardEasterEgg.h4
-rw-r--r--xbmc/input/keyboard/KeyboardLayout.cpp (renamed from xbmc/input/KeyboardLayout.cpp)5
-rw-r--r--xbmc/input/keyboard/KeyboardLayout.h (renamed from xbmc/input/KeyboardLayout.h)11
-rw-r--r--xbmc/input/keyboard/KeyboardLayoutManager.cpp (renamed from xbmc/input/KeyboardLayoutManager.cpp)3
-rw-r--r--xbmc/input/keyboard/KeyboardLayoutManager.h (renamed from xbmc/input/KeyboardLayoutManager.h)16
-rw-r--r--xbmc/input/keyboard/KeyboardStat.cpp (renamed from xbmc/input/KeyboardStat.cpp)18
-rw-r--r--xbmc/input/keyboard/KeyboardStat.h (renamed from xbmc/input/KeyboardStat.h)13
-rw-r--r--xbmc/input/keyboard/KeyboardTypes.h14
-rw-r--r--xbmc/input/keyboard/XBMC_keyboard.h (renamed from xbmc/input/XBMC_keyboard.h)9
-rw-r--r--xbmc/input/keyboard/XBMC_keysym.h (renamed from xbmc/input/XBMC_keysym.h)13
-rw-r--r--xbmc/input/keyboard/XBMC_keytable.cpp (renamed from xbmc/input/XBMC_keytable.cpp)22
-rw-r--r--xbmc/input/keyboard/XBMC_keytable.h (renamed from xbmc/input/XBMC_keytable.h)28
-rw-r--r--xbmc/input/keyboard/XBMC_vkeys.h (renamed from xbmc/input/XBMC_vkeys.h)5
-rw-r--r--xbmc/input/keyboard/generic/KeyboardInputHandling.cpp2
-rw-r--r--xbmc/input/keyboard/generic/KeyboardInputHandling.h1
-rw-r--r--xbmc/input/keyboard/interfaces/CMakeLists.txt8
-rw-r--r--xbmc/input/keyboard/interfaces/IKeyboardDriverHandler.h1
-rw-r--r--xbmc/input/keyboard/interfaces/IKeyboardInputHandler.h1
-rw-r--r--xbmc/input/keyboard/interfaces/IKeyboardInputProvider.h3
-rw-r--r--xbmc/input/keymaps/AppTranslator.cpp2
-rw-r--r--xbmc/input/keymaps/ButtonStat.cpp4
-rw-r--r--xbmc/input/keymaps/ButtonStat.h3
-rw-r--r--xbmc/input/keymaps/ButtonTranslator.cpp4
-rw-r--r--xbmc/input/keymaps/joysticks/GamepadTranslator.cpp2
-rw-r--r--xbmc/input/keymaps/keyboard/KeyboardActionMap.cpp2
-rw-r--r--xbmc/input/keymaps/keyboard/KeyboardTranslator.cpp9
-rw-r--r--xbmc/input/mouse/MouseStat.cpp2
-rw-r--r--xbmc/input/mouse/MouseTranslator.cpp2
-rw-r--r--xbmc/input/touch/generic/GenericTouchActionHandler.cpp2
-rw-r--r--xbmc/interfaces/json-rpc/GUIOperations.cpp3
-rw-r--r--xbmc/interfaces/json-rpc/PlaylistOperations.cpp3
-rw-r--r--xbmc/interfaces/legacy/Control.h2
-rw-r--r--xbmc/interfaces/legacy/Window.cpp2
-rw-r--r--xbmc/interfaces/legacy/WindowDialogMixin.cpp2
-rw-r--r--xbmc/interfaces/legacy/WindowXML.cpp2
-rw-r--r--xbmc/interfaces/swig/AddonModuleXbmcgui.i4
-rw-r--r--xbmc/music/dialogs/GUIDialogMusicInfo.cpp3
-rw-r--r--xbmc/music/dialogs/GUIDialogMusicOSD.cpp3
-rw-r--r--xbmc/music/dialogs/GUIDialogSongInfo.cpp3
-rw-r--r--xbmc/music/dialogs/GUIDialogVisualisationPresetList.cpp1
-rw-r--r--xbmc/music/windows/GUIWindowMusicNav.cpp3
-rw-r--r--xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp3
-rw-r--r--xbmc/network/EventClient.cpp2
-rw-r--r--xbmc/network/EventServer.cpp3
-rw-r--r--xbmc/peripherals/Peripherals.cpp4
-rw-r--r--xbmc/peripherals/devices/PeripheralHID.h2
-rw-r--r--xbmc/pictures/GUIDialogPictureInfo.cpp3
-rw-r--r--xbmc/platform/android/activity/AndroidKey.cpp2
-rw-r--r--xbmc/platform/android/activity/JNIXBMCMediaSession.cpp3
-rw-r--r--xbmc/platform/android/activity/XBMCApp.cpp3
-rw-r--r--xbmc/platform/darwin/ios/XBMCController.h2
-rw-r--r--xbmc/platform/darwin/ios/XBMCController.mm4
-rw-r--r--xbmc/profiles/windows/GUIWindowSettingsProfile.cpp2
-rw-r--r--xbmc/programs/GUIWindowPrograms.cpp2
-rw-r--r--xbmc/pvr/windows/GUIWindowPVRChannels.cpp2
-rw-r--r--xbmc/settings/Settings.cpp5
-rw-r--r--xbmc/settings/dialogs/GUIDialogSettingsBase.cpp3
-rw-r--r--xbmc/settings/windows/GUIWindowSettingsCategory.cpp3
-rw-r--r--xbmc/video/Teletext.cpp4
-rw-r--r--xbmc/video/dialogs/GUIDialogFullScreenInfo.cpp3
-rw-r--r--xbmc/video/dialogs/GUIDialogVideoInfo.cpp3
-rw-r--r--xbmc/video/dialogs/GUIDialogVideoManager.cpp3
-rw-r--r--xbmc/video/windows/GUIWindowVideoNav.cpp3
-rw-r--r--xbmc/windowing/XBMC_events.h2
-rw-r--r--xbmc/windowing/android/WinEventsAndroid.cpp2
-rw-r--r--xbmc/windowing/ios/WinEventsIOS.mm2
-rw-r--r--xbmc/windowing/tvos/WinEventsTVOS.mm2
-rw-r--r--xbmc/windowing/wayland/InputProcessorKeyboard.h2
-rw-r--r--xbmc/windowing/wayland/InputProcessorPointer.h2
-rw-r--r--xbmc/windowing/wayland/XkbcommonKeymap.h2
-rw-r--r--xbmc/windowing/windows/WinEventsWin32.cpp3
-rw-r--r--xbmc/windowing/windows/WinKeyMap.h4
-rw-r--r--xbmc/windows/GUIWindowFileManager.cpp2
-rw-r--r--xbmc/windows/GUIWindowLoginScreen.cpp3
-rw-r--r--xbmc/windows/GUIWindowStartup.cpp2
125 files changed, 585 insertions, 415 deletions
diff --git a/cmake/treedata/common/input.txt b/cmake/treedata/common/input.txt
index 6f99ec52c4..99a50a7d32 100644
--- a/cmake/treedata/common/input.txt
+++ b/cmake/treedata/common/input.txt
@@ -8,6 +8,7 @@ xbmc/input/joysticks/generic input/joysticks/generic
xbmc/input/joysticks/interfaces input/joysticks/interfaces
xbmc/input/keyboard input/keyboard
xbmc/input/keyboard/generic input/keyboard/generic
+xbmc/input/keyboard/interfaces input/keyboard/interfaces
xbmc/input/keymaps input/keymaps
xbmc/input/keymaps/generic input/keymaps/generic
xbmc/input/keymaps/interfaces input/keymaps/interfaces
diff --git a/xbmc/ServiceBroker.cpp b/xbmc/ServiceBroker.cpp
index dbb7e4345b..fbcadb6053 100644
--- a/xbmc/ServiceBroker.cpp
+++ b/xbmc/ServiceBroker.cpp
@@ -413,7 +413,7 @@ std::shared_ptr<KODI::MESSAGING::CApplicationMessenger> CServiceBroker::GetAppMe
}
void CServiceBroker::RegisterKeyboardLayoutManager(
- const std::shared_ptr<CKeyboardLayoutManager>& keyboardLayoutManager)
+ const std::shared_ptr<KEYBOARD::CKeyboardLayoutManager>& keyboardLayoutManager)
{
g_serviceBroker.m_keyboardLayoutManager = keyboardLayoutManager;
}
@@ -423,7 +423,7 @@ void CServiceBroker::UnregisterKeyboardLayoutManager()
g_serviceBroker.m_keyboardLayoutManager.reset();
}
-std::shared_ptr<CKeyboardLayoutManager> CServiceBroker::GetKeyboardLayoutManager()
+std::shared_ptr<KEYBOARD::CKeyboardLayoutManager> CServiceBroker::GetKeyboardLayoutManager()
{
return g_serviceBroker.m_keyboardLayoutManager;
}
diff --git a/xbmc/ServiceBroker.h b/xbmc/ServiceBroker.h
index 26b7ec9ef8..659b07d61d 100644
--- a/xbmc/ServiceBroker.h
+++ b/xbmc/ServiceBroker.h
@@ -79,7 +79,6 @@ class CLog;
class CPlatform;
class CTextureCache;
class CJobManager;
-class CKeyboardLayoutManager;
class CSlideShowDelegator;
namespace WSDiscovery
@@ -100,6 +99,11 @@ class CControllerManager;
class CGameServices;
} // namespace GAME
+namespace KEYBOARD
+{
+class CKeyboardLayoutManager;
+} // namespace KEYBOARD
+
namespace RETRO
{
class CGUIGameRenderManager;
@@ -212,9 +216,9 @@ public:
static std::shared_ptr<KODI::MESSAGING::CApplicationMessenger> GetAppMessenger();
static void RegisterKeyboardLayoutManager(
- const std::shared_ptr<CKeyboardLayoutManager>& keyboardLayoutManager);
+ const std::shared_ptr<KODI::KEYBOARD::CKeyboardLayoutManager>& keyboardLayoutManager);
static void UnregisterKeyboardLayoutManager();
- static std::shared_ptr<CKeyboardLayoutManager> GetKeyboardLayoutManager();
+ static std::shared_ptr<KODI::KEYBOARD::CKeyboardLayoutManager> GetKeyboardLayoutManager();
static void RegisterSpeechRecognition(
const std::shared_ptr<speech::ISpeechRecognition>& speechRecognition);
@@ -235,7 +239,7 @@ private:
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<KODI::KEYBOARD::CKeyboardLayoutManager> m_keyboardLayoutManager;
std::shared_ptr<speech::ISpeechRecognition> m_speechRecognition;
std::shared_ptr<CSlideShowDelegator> m_slideshowDelegator;
};
diff --git a/xbmc/addons/gui/GUIDialogAddonSettings.cpp b/xbmc/addons/gui/GUIDialogAddonSettings.cpp
index 085e1eeca4..4830283e4d 100644
--- a/xbmc/addons/gui/GUIDialogAddonSettings.cpp
+++ b/xbmc/addons/gui/GUIDialogAddonSettings.cpp
@@ -21,7 +21,8 @@
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
#include "guilib/WindowIDs.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
diff --git a/xbmc/addons/gui/GUIWindowAddonBrowser.cpp b/xbmc/addons/gui/GUIWindowAddonBrowser.cpp
index 2f522e7856..f130bacad1 100644
--- a/xbmc/addons/gui/GUIWindowAddonBrowser.cpp
+++ b/xbmc/addons/gui/GUIWindowAddonBrowser.cpp
@@ -29,7 +29,7 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/helpers/DialogHelper.h"
#include "platform/Platform.h"
#include "settings/MediaSourceSettings.h"
diff --git a/xbmc/addons/interfaces/General.cpp b/xbmc/addons/interfaces/General.cpp
index eef6ccd2bc..be45ce5a41 100644
--- a/xbmc/addons/interfaces/General.cpp
+++ b/xbmc/addons/interfaces/General.cpp
@@ -18,8 +18,8 @@
#include "application/ApplicationComponents.h"
#include "application/ApplicationPowerHandling.h"
#include "dialogs/GUIDialogKaiToast.h"
-#include "input/KeyboardLayout.h"
-#include "input/KeyboardLayoutManager.h"
+#include "input/keyboard/KeyboardLayout.h"
+#include "input/keyboard/KeyboardLayoutManager.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
#include "utils/CharsetConverter.h"
@@ -32,7 +32,8 @@
#include <string.h>
using namespace kodi; // addon-dev-kit namespace
-using KODI::UTILITY::CDigest;
+using namespace KODI;
+using UTILITY::CDigest;
namespace ADDON
{
@@ -402,17 +403,17 @@ bool Interface_General::get_keyboard_layout(void* kodiBase, char** layout_name,
std::string activeLayout = CServiceBroker::GetSettingsComponent()->GetSettings()->GetString(CSettings::SETTING_LOCALE_ACTIVEKEYBOARDLAYOUT);
- CKeyboardLayout layout;
+ KEYBOARD::CKeyboardLayout layout;
if (!CServiceBroker::GetKeyboardLayoutManager()->GetLayout(activeLayout, layout))
return false;
*layout_name = strdup(layout.GetName().c_str());
- unsigned int modifiers = CKeyboardLayout::ModifierKeyNone;
+ unsigned int modifiers = KEYBOARD::CKeyboardLayout::ModifierKeyNone;
if (modifier_key & STD_KB_MODIFIER_KEY_SHIFT)
- modifiers |= CKeyboardLayout::ModifierKeyShift;
+ modifiers |= KEYBOARD::CKeyboardLayout::ModifierKeyShift;
if (modifier_key & STD_KB_MODIFIER_KEY_SYMBOL)
- modifiers |= CKeyboardLayout::ModifierKeySymbol;
+ modifiers |= KEYBOARD::CKeyboardLayout::ModifierKeySymbol;
for (unsigned int row = 0; row < STD_KB_BUTTONS_MAX_ROWS; row++)
{
@@ -436,10 +437,11 @@ bool Interface_General::change_keyboard_layout(void* kodiBase, char** layout_nam
return false;
}
- std::vector<CKeyboardLayout> layouts;
+ std::vector<KEYBOARD::CKeyboardLayout> layouts;
unsigned int currentLayout = 0;
- const KeyboardLayouts& keyboardLayouts = CServiceBroker::GetKeyboardLayoutManager()->GetLayouts();
+ const KEYBOARD::KeyboardLayouts& keyboardLayouts =
+ CServiceBroker::GetKeyboardLayoutManager()->GetLayouts();
const std::shared_ptr<CSettings> settings = CServiceBroker::GetSettingsComponent()->GetSettings();
std::vector<CVariant> layoutNames = settings->GetList(CSettings::SETTING_LOCALE_KEYBOARDLAYOUTS);
std::string activeLayout = settings->GetString(CSettings::SETTING_LOCALE_ACTIVEKEYBOARDLAYOUT);
@@ -458,7 +460,8 @@ bool Interface_General::change_keyboard_layout(void* kodiBase, char** layout_nam
currentLayout++;
if (currentLayout >= layouts.size())
currentLayout = 0;
- CKeyboardLayout layout = layouts.empty() ? CKeyboardLayout() : layouts[currentLayout];
+ KEYBOARD::CKeyboardLayout layout =
+ layouts.empty() ? KEYBOARD::CKeyboardLayout() : layouts[currentLayout];
CServiceBroker::GetSettingsComponent()->GetSettings()->SetString(CSettings::SETTING_LOCALE_ACTIVEKEYBOARDLAYOUT, layout.GetName());
*layout_name = strdup(layout.GetName().c_str());
diff --git a/xbmc/addons/interfaces/gui/Window.cpp b/xbmc/addons/interfaces/gui/Window.cpp
index aa4e185656..b817d443a3 100644
--- a/xbmc/addons/interfaces/gui/Window.cpp
+++ b/xbmc/addons/interfaces/gui/Window.cpp
@@ -23,7 +23,8 @@
#include "guilib/GUIRenderingControl.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/TextureManager.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "utils/FileUtils.h"
#include "utils/StringUtils.h"
diff --git a/xbmc/application/Application.cpp b/xbmc/application/Application.cpp
index b005954343..2d3f5f19d7 100644
--- a/xbmc/application/Application.cpp
+++ b/xbmc/application/Application.cpp
@@ -78,8 +78,10 @@
#include "guilib/TextureManager.h"
#include "input/InertialScrollingHandler.h"
#include "input/InputManager.h"
-#include "input/KeyboardLayoutManager.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "input/actions/ActionTranslator.h"
+#include "input/keyboard/KeyboardLayoutManager.h"
#include "interfaces/AnnouncementManager.h"
#include "interfaces/builtins/Builtins.h"
#include "interfaces/generic/ScriptInvocationManager.h"
@@ -334,7 +336,7 @@ bool CApplication::Create()
const auto appMessenger = std::make_shared<CApplicationMessenger>();
CServiceBroker::RegisterAppMessenger(appMessenger);
- const auto keyboardLayoutManager = std::make_shared<CKeyboardLayoutManager>();
+ const auto keyboardLayoutManager = std::make_shared<KEYBOARD::CKeyboardLayoutManager>();
CServiceBroker::RegisterKeyboardLayoutManager(keyboardLayoutManager);
m_ServiceManager = std::make_unique<CServiceManager>();
diff --git a/xbmc/dialogs/GUIDialogColorPicker.cpp b/xbmc/dialogs/GUIDialogColorPicker.cpp
index 5b6842996b..b4bc59c355 100644
--- a/xbmc/dialogs/GUIDialogColorPicker.cpp
+++ b/xbmc/dialogs/GUIDialogColorPicker.cpp
@@ -13,7 +13,7 @@
#include "guilib/GUIColorManager.h"
#include "guilib/GUIMessage.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "utils/ColorUtils.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
diff --git a/xbmc/dialogs/GUIDialogContextMenu.cpp b/xbmc/dialogs/GUIDialogContextMenu.cpp
index dcc9edec34..36d9fd1043 100644
--- a/xbmc/dialogs/GUIDialogContextMenu.cpp
+++ b/xbmc/dialogs/GUIDialogContextMenu.cpp
@@ -25,7 +25,8 @@
#include "guilib/GUIControlGroupList.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "media/MediaLockState.h"
#include "profiles/ProfileManager.h"
#include "profiles/dialogs/GUIDialogLockSettings.h"
diff --git a/xbmc/dialogs/GUIDialogFileBrowser.cpp b/xbmc/dialogs/GUIDialogFileBrowser.cpp
index 4c6122cc11..9181313747 100644
--- a/xbmc/dialogs/GUIDialogFileBrowser.cpp
+++ b/xbmc/dialogs/GUIDialogFileBrowser.cpp
@@ -25,7 +25,8 @@
#include "guilib/GUIKeyboardFactory.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "network/GUIDialogNetworkSetup.h"
#include "network/Network.h"
diff --git a/xbmc/dialogs/GUIDialogGamepad.cpp b/xbmc/dialogs/GUIDialogGamepad.cpp
index 07f58097f2..2d376ed67f 100644
--- a/xbmc/dialogs/GUIDialogGamepad.cpp
+++ b/xbmc/dialogs/GUIDialogGamepad.cpp
@@ -13,7 +13,9 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/KeyIDs.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "utils/Digest.h"
#include "utils/StringUtils.h"
diff --git a/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp b/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp
index 388cf0fdca..eaccfe5de9 100644
--- a/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp
+++ b/xbmc/dialogs/GUIDialogKeyboardGeneric.cpp
@@ -18,9 +18,11 @@
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
#include "input/InputCodingTable.h"
-#include "input/Key.h"
-#include "input/KeyboardLayoutManager.h"
-#include "input/XBMC_vkeys.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/KeyIDs.h"
+#include "input/keyboard/KeyboardLayoutManager.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "interfaces/AnnouncementManager.h"
#include "messaging/ApplicationMessenger.h"
#include "settings/Settings.h"
@@ -37,7 +39,8 @@
#include <mutex>
-using namespace KODI::MESSAGING;
+using namespace KODI;
+using namespace MESSAGING;
#define BUTTON_ID_OFFSET 100
#define BUTTONS_PER_ROW 20
@@ -124,7 +127,7 @@ CGUIDialogKeyboardGeneric::CGUIDialogKeyboardGeneric()
m_bIsConfirmed = false;
m_bShift = false;
m_hiddenInput = false;
- m_keyType = LOWER;
+ m_keyType = KEY_TYPE::LOWER;
m_currentLayout = 0;
m_loadType = KEEP_IN_MEMORY;
m_isKeyboardNavigationMode = false;
@@ -175,7 +178,8 @@ void CGUIDialogKeyboardGeneric::OnInitWindow()
// fill in the keyboard layouts
m_currentLayout = 0;
m_layouts.clear();
- const KeyboardLayouts& keyboardLayouts = CServiceBroker::GetKeyboardLayoutManager()->GetLayouts();
+ const KEYBOARD::KeyboardLayouts& keyboardLayouts =
+ CServiceBroker::GetKeyboardLayoutManager()->GetLayouts();
const std::shared_ptr<CSettings> settings = CServiceBroker::GetSettingsComponent()->GetSettings();
std::vector<CVariant> layoutNames = settings->GetList(CSettings::SETTING_LOCALE_KEYBOARDLAYOUTS);
std::string activeLayout = settings->GetString(CSettings::SETTING_LOCALE_ACTIVEKEYBOARDLAYOUT);
@@ -316,10 +320,10 @@ bool CGUIDialogKeyboardGeneric::OnMessage(CGUIMessage& message)
OnShift();
break;
case CTL_BUTTON_CAPS:
- if (m_keyType == LOWER)
- m_keyType = CAPS;
- else if (m_keyType == CAPS)
- m_keyType = LOWER;
+ if (m_keyType == KEY_TYPE::LOWER)
+ m_keyType = KEY_TYPE::CAPS;
+ else if (m_keyType == KEY_TYPE::CAPS)
+ m_keyType = KEY_TYPE::LOWER;
UpdateButtons();
break;
case CTL_BUTTON_LAYOUT:
@@ -493,12 +497,13 @@ void CGUIDialogKeyboardGeneric::OnClickButton(int iButtonControl)
void CGUIDialogKeyboardGeneric::UpdateButtons()
{
SET_CONTROL_SELECTED(GetID(), CTL_BUTTON_SHIFT, m_bShift);
- SET_CONTROL_SELECTED(GetID(), CTL_BUTTON_CAPS, m_keyType == CAPS);
- SET_CONTROL_SELECTED(GetID(), CTL_BUTTON_SYMBOLS, m_keyType == SYMBOLS);
+ SET_CONTROL_SELECTED(GetID(), CTL_BUTTON_CAPS, m_keyType == KEY_TYPE::CAPS);
+ SET_CONTROL_SELECTED(GetID(), CTL_BUTTON_SYMBOLS, m_keyType == KEY_TYPE::SYMBOLS);
if (m_currentLayout >= m_layouts.size())
m_currentLayout = 0;
- CKeyboardLayout layout = m_layouts.empty() ? CKeyboardLayout() : m_layouts[m_currentLayout];
+ KEYBOARD::CKeyboardLayout layout =
+ m_layouts.empty() ? KEYBOARD::CKeyboardLayout() : m_layouts[m_currentLayout];
m_codingtable = layout.GetCodingTable();
if (m_codingtable && !m_codingtable->IsInitialized())
m_codingtable->Initialize();
@@ -531,14 +536,14 @@ void CGUIDialogKeyboardGeneric::UpdateButtons()
}
SET_CONTROL_LABEL(CTL_BUTTON_LAYOUT, layout.GetName());
- unsigned int modifiers = CKeyboardLayout::ModifierKeyNone;
- if ((m_keyType == CAPS && !m_bShift) || (m_keyType == LOWER && m_bShift))
- modifiers |= CKeyboardLayout::ModifierKeyShift;
- if (m_keyType == SYMBOLS)
+ unsigned int modifiers = KEYBOARD::CKeyboardLayout::ModifierKeyNone;
+ if ((m_keyType == KEY_TYPE::CAPS && !m_bShift) || (m_keyType == KEY_TYPE::LOWER && m_bShift))
+ modifiers |= KEYBOARD::CKeyboardLayout::ModifierKeyShift;
+ if (m_keyType == KEY_TYPE::SYMBOLS)
{
- modifiers |= CKeyboardLayout::ModifierKeySymbol;
+ modifiers |= KEYBOARD::CKeyboardLayout::ModifierKeySymbol;
if (m_bShift)
- modifiers |= CKeyboardLayout::ModifierKeyShift;
+ modifiers |= KEYBOARD::CKeyboardLayout::ModifierKeyShift;
}
for (unsigned int row = 0; row < BUTTONS_MAX_ROWS; row++)
@@ -589,17 +594,18 @@ void CGUIDialogKeyboardGeneric::OnLayout()
m_currentLayout++;
if (m_currentLayout >= m_layouts.size())
m_currentLayout = 0;
- CKeyboardLayout layout = m_layouts.empty() ? CKeyboardLayout() : m_layouts[m_currentLayout];
+ KEYBOARD::CKeyboardLayout layout =
+ m_layouts.empty() ? KEYBOARD::CKeyboardLayout() : m_layouts[m_currentLayout];
CServiceBroker::GetSettingsComponent()->GetSettings()->SetString(CSettings::SETTING_LOCALE_ACTIVEKEYBOARDLAYOUT, layout.GetName());
UpdateButtons();
}
void CGUIDialogKeyboardGeneric::OnSymbols()
{
- if (m_keyType == SYMBOLS)
- m_keyType = LOWER;
+ if (m_keyType == KEY_TYPE::SYMBOLS)
+ m_keyType = KEY_TYPE::LOWER;
else
- m_keyType = SYMBOLS;
+ m_keyType = KEY_TYPE::SYMBOLS;
UpdateButtons();
}
diff --git a/xbmc/dialogs/GUIDialogKeyboardGeneric.h b/xbmc/dialogs/GUIDialogKeyboardGeneric.h
index c88d0564e7..56557cefd8 100644
--- a/xbmc/dialogs/GUIDialogKeyboardGeneric.h
+++ b/xbmc/dialogs/GUIDialogKeyboardGeneric.h
@@ -10,7 +10,7 @@
#include "guilib/GUIDialog.h"
#include "guilib/GUIKeyboard.h"
-#include "input/KeyboardLayout.h"
+#include "input/keyboard/KeyboardLayout.h"
#include <memory>
#include <string>
@@ -20,7 +20,12 @@ class CGUIFont;
class CSpeechRecognitionListener;
-enum KEYBOARD {CAPS, LOWER, SYMBOLS};
+enum class KEY_TYPE
+{
+ CAPS,
+ LOWER,
+ SYMBOLS
+};
class CGUIDialogKeyboardGeneric : public CGUIDialog, public CGUIKeyboard
{
@@ -68,13 +73,13 @@ class CGUIDialogKeyboardGeneric : public CGUIDialog, public CGUIKeyboard
void NormalCharacter(const std::string &ch);
bool m_bIsConfirmed;
- KEYBOARD m_keyType;
+ KEY_TYPE m_keyType;
bool m_bShift;
bool m_hiddenInput;
bool m_isKeyboardNavigationMode;
int m_previouslyFocusedButton;
- std::vector<CKeyboardLayout> m_layouts;
+ std::vector<KODI::KEYBOARD::CKeyboardLayout> m_layouts;
unsigned int m_currentLayout;
std::string m_strHeading;
diff --git a/xbmc/dialogs/GUIDialogMediaSource.cpp b/xbmc/dialogs/GUIDialogMediaSource.cpp
index 13b13e5fab..72b80bff53 100644
--- a/xbmc/dialogs/GUIDialogMediaSource.cpp
+++ b/xbmc/dialogs/GUIDialogMediaSource.cpp
@@ -7,29 +7,30 @@
*/
#include "GUIDialogMediaSource.h"
-#include "ServiceBroker.h"
-#include "guilib/GUIKeyboardFactory.h"
+
+#include "FileItem.h"
#include "GUIDialogFileBrowser.h"
-#include "video/windows/GUIWindowVideoBase.h"
-#include "music/windows/GUIWindowMusicBase.h"
-#include "guilib/GUIComponent.h"
-#include "guilib/GUIWindowManager.h"
-#include "input/Key.h"
+#include "GUIDialogYesNo.h"
+#include "PasswordManager.h"
+#include "ServiceBroker.h"
+#include "URL.h"
#include "Util.h"
-#include "utils/URIUtils.h"
-#include "utils/StringUtils.h"
-#include "utils/Variant.h"
#include "filesystem/Directory.h"
#include "filesystem/PVRDirectory.h"
-#include "GUIDialogYesNo.h"
-#include "FileItem.h"
+#include "guilib/GUIComponent.h"
+#include "guilib/GUIKeyboardFactory.h"
+#include "guilib/GUIWindowManager.h"
+#include "guilib/LocalizeStrings.h"
+#include "input/actions/ActionIDs.h"
+#include "music/windows/GUIWindowMusicBase.h"
+#include "pvr/recordings/PVRRecordingsPath.h"
#include "settings/MediaSourceSettings.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
-#include "guilib/LocalizeStrings.h"
-#include "PasswordManager.h"
-#include "URL.h"
-#include "pvr/recordings/PVRRecordingsPath.h"
+#include "utils/StringUtils.h"
+#include "utils/URIUtils.h"
+#include "utils/Variant.h"
+#include "video/windows/GUIWindowVideoBase.h"
#if defined(TARGET_ANDROID)
#include "utils/FileUtils.h"
diff --git a/xbmc/dialogs/GUIDialogNumeric.cpp b/xbmc/dialogs/GUIDialogNumeric.cpp
index 356efc401c..802834fbc6 100644
--- a/xbmc/dialogs/GUIDialogNumeric.cpp
+++ b/xbmc/dialogs/GUIDialogNumeric.cpp
@@ -14,8 +14,10 @@
#include "guilib/GUILabelControl.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
-#include "input/XBMC_vkeys.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/KeyIDs.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "interfaces/AnnouncementManager.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "utils/Digest.h"
diff --git a/xbmc/dialogs/GUIDialogPlayerProcessInfo.cpp b/xbmc/dialogs/GUIDialogPlayerProcessInfo.cpp
index 8276311646..87ec544b45 100644
--- a/xbmc/dialogs/GUIDialogPlayerProcessInfo.cpp
+++ b/xbmc/dialogs/GUIDialogPlayerProcessInfo.cpp
@@ -8,7 +8,8 @@
#include "GUIDialogPlayerProcessInfo.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
CGUIDialogPlayerProcessInfo::CGUIDialogPlayerProcessInfo(void)
: CGUIDialog(WINDOW_DIALOG_PLAYER_PROCESS_INFO, "DialogPlayerProcessInfo.xml")
diff --git a/xbmc/dialogs/GUIDialogSelect.cpp b/xbmc/dialogs/GUIDialogSelect.cpp
index 54518691df..c6add4bd16 100644
--- a/xbmc/dialogs/GUIDialogSelect.cpp
+++ b/xbmc/dialogs/GUIDialogSelect.cpp
@@ -11,7 +11,7 @@
#include "FileItem.h"
#include "guilib/GUIMessage.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "utils/StringUtils.h"
#include <memory>
diff --git a/xbmc/dialogs/GUIDialogSlider.cpp b/xbmc/dialogs/GUIDialogSlider.cpp
index 5d9fb1d3ff..24209dfc9f 100644
--- a/xbmc/dialogs/GUIDialogSlider.cpp
+++ b/xbmc/dialogs/GUIDialogSlider.cpp
@@ -13,7 +13,8 @@
#include "guilib/GUISliderControl.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#define CONTROL_HEADING 10
#define CONTROL_SLIDER 11
diff --git a/xbmc/dialogs/GUIDialogSmartPlaylistEditor.cpp b/xbmc/dialogs/GUIDialogSmartPlaylistEditor.cpp
index dadd08a121..98714d38dc 100644
--- a/xbmc/dialogs/GUIDialogSmartPlaylistEditor.cpp
+++ b/xbmc/dialogs/GUIDialogSmartPlaylistEditor.cpp
@@ -19,7 +19,7 @@
#include "guilib/GUIKeyboardFactory.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "profiles/ProfileManager.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
diff --git a/xbmc/dialogs/GUIDialogYesNo.cpp b/xbmc/dialogs/GUIDialogYesNo.cpp
index 1f11993612..e9135950d3 100644
--- a/xbmc/dialogs/GUIDialogYesNo.cpp
+++ b/xbmc/dialogs/GUIDialogYesNo.cpp
@@ -11,7 +11,7 @@
#include "ServiceBroker.h"
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/helpers/DialogHelper.h"
CGUIDialogYesNo::CGUIDialogYesNo(int overrideId /* = -1 */)
diff --git a/xbmc/events/windows/GUIWindowEventLog.cpp b/xbmc/events/windows/GUIWindowEventLog.cpp
index 01ec4bb8a1..fdd9a37b00 100644
--- a/xbmc/events/windows/GUIWindowEventLog.cpp
+++ b/xbmc/events/windows/GUIWindowEventLog.cpp
@@ -17,7 +17,7 @@
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
#include "guilib/WindowIDs.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
#include "utils/StringUtils.h"
diff --git a/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp b/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp
index 3387554e75..58ddedf766 100644
--- a/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp
+++ b/xbmc/games/controllers/windows/GUIConfigurationWizard.cpp
@@ -14,6 +14,7 @@
#include "games/controllers/guicontrols/GUIFeatureButton.h"
#include "games/controllers/input/PhysicalFeature.h"
#include "input/InputManager.h"
+#include "input/actions/ActionIDs.h"
#include "input/joysticks/JoystickUtils.h"
#include "input/joysticks/interfaces/IButtonMap.h"
#include "input/joysticks/interfaces/IButtonMapCallback.h"
diff --git a/xbmc/games/controllers/windows/GUIConfigurationWizard.h b/xbmc/games/controllers/windows/GUIConfigurationWizard.h
index 9903b1e5f3..272279f9f3 100644
--- a/xbmc/games/controllers/windows/GUIConfigurationWizard.h
+++ b/xbmc/games/controllers/windows/GUIConfigurationWizard.h
@@ -10,9 +10,9 @@
#include "IConfigurationWindow.h"
#include "games/controllers/input/PhysicalFeature.h"
-#include "input/XBMC_keysym.h"
#include "input/joysticks/DriverPrimitive.h"
#include "input/joysticks/interfaces/IButtonMapper.h"
+#include "input/keyboard/XBMC_keysym.h"
#include "input/keyboard/interfaces/IKeyboardDriverHandler.h"
#include "threads/CriticalSection.h"
#include "threads/Event.h"
diff --git a/xbmc/games/dialogs/osd/DialogGameSaves.cpp b/xbmc/games/dialogs/osd/DialogGameSaves.cpp
index 90e7785693..a2c08d606f 100644
--- a/xbmc/games/dialogs/osd/DialogGameSaves.cpp
+++ b/xbmc/games/dialogs/osd/DialogGameSaves.cpp
@@ -26,7 +26,7 @@
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
#include "guilib/WindowIDs.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "utils/FileUtils.h"
#include "utils/Variant.h"
#include "view/GUIViewControl.h"
diff --git a/xbmc/guilib/GUIAudioManager.cpp b/xbmc/guilib/GUIAudioManager.cpp
index e6941892de..0be723b8c2 100644
--- a/xbmc/guilib/GUIAudioManager.cpp
+++ b/xbmc/guilib/GUIAudioManager.cpp
@@ -14,8 +14,8 @@
#include "addons/addoninfo/AddonType.h"
#include "cores/AudioEngine/Interfaces/AE.h"
#include "filesystem/Directory.h"
-#include "input/Key.h"
#include "input/WindowTranslator.h"
+#include "input/actions/Action.h"
#include "input/actions/ActionIDs.h"
#include "input/actions/ActionTranslator.h"
#include "settings/Settings.h"
diff --git a/xbmc/guilib/GUIBaseContainer.cpp b/xbmc/guilib/GUIBaseContainer.cpp
index 35b2225cf1..9f39f678a7 100644
--- a/xbmc/guilib/GUIBaseContainer.cpp
+++ b/xbmc/guilib/GUIBaseContainer.cpp
@@ -15,7 +15,9 @@
#include "ServiceBroker.h"
#include "guilib/guiinfo/GUIInfoLabels.h"
#include "guilib/listproviders/IListProvider.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/KeyIDs.h"
#include "input/mouse/MouseEvent.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
diff --git a/xbmc/guilib/GUIColorButtonControl.cpp b/xbmc/guilib/GUIColorButtonControl.cpp
index 67597d7ab5..1e40667cfc 100644
--- a/xbmc/guilib/GUIColorButtonControl.cpp
+++ b/xbmc/guilib/GUIColorButtonControl.cpp
@@ -10,7 +10,7 @@
#include "GUIInfoManager.h"
#include "LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/keyboard/Key.h"
#include "utils/ColorUtils.h"
#include "utils/StringUtils.h"
diff --git a/xbmc/guilib/GUIControlFactory.cpp b/xbmc/guilib/GUIControlFactory.cpp
index b65fc95f25..001537fb72 100644
--- a/xbmc/guilib/GUIControlFactory.cpp
+++ b/xbmc/guilib/GUIControlFactory.cpp
@@ -49,7 +49,7 @@
#include "cores/RetroPlayer/guicontrols/GUIGameControl.h"
#include "games/controllers/guicontrols/GUIGameController.h"
#include "games/controllers/guicontrols/GUIGameControllerList.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "pvr/guilib/GUIEPGGridContainer.h"
#include "utils/CharsetConverter.h"
#include "utils/RssManager.h"
diff --git a/xbmc/guilib/GUIDialog.cpp b/xbmc/guilib/GUIDialog.cpp
index 70c35148f7..a3021c6452 100644
--- a/xbmc/guilib/GUIDialog.cpp
+++ b/xbmc/guilib/GUIDialog.cpp
@@ -13,7 +13,8 @@
#include "GUILabelControl.h"
#include "GUIWindowManager.h"
#include "ServiceBroker.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "threads/SingleLock.h"
#include "utils/TimeUtils.h"
diff --git a/xbmc/guilib/GUIEditControl.cpp b/xbmc/guilib/GUIEditControl.cpp
index 7d5a643021..686d2ef206 100644
--- a/xbmc/guilib/GUIEditControl.cpp
+++ b/xbmc/guilib/GUIEditControl.cpp
@@ -16,8 +16,10 @@
#include "ServiceBroker.h"
#include "XBDateTime.h"
#include "dialogs/GUIDialogNumeric.h"
-#include "input/Key.h"
-#include "input/XBMC_vkeys.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/KeyIDs.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "utils/CharsetConverter.h"
#include "utils/ColorUtils.h"
#include "utils/Digest.h"
diff --git a/xbmc/guilib/GUIFixedListContainer.cpp b/xbmc/guilib/GUIFixedListContainer.cpp
index 0295736d18..ab24f5cf58 100644
--- a/xbmc/guilib/GUIFixedListContainer.cpp
+++ b/xbmc/guilib/GUIFixedListContainer.cpp
@@ -9,7 +9,8 @@
#include "GUIFixedListContainer.h"
#include "GUIListItemLayout.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
CGUIFixedListContainer::CGUIFixedListContainer(int parentID, int controlID, float posX, float posY, float width, float height, ORIENTATION orientation, const CScroller& scroller, int preloadItems, int fixedPosition, int cursorRange)
: CGUIBaseContainer(parentID, controlID, posX, posY, width, height, orientation, scroller, preloadItems)
diff --git a/xbmc/guilib/GUIListContainer.cpp b/xbmc/guilib/GUIListContainer.cpp
index b078263aa6..15612a9b49 100644
--- a/xbmc/guilib/GUIListContainer.cpp
+++ b/xbmc/guilib/GUIListContainer.cpp
@@ -10,7 +10,8 @@
#include "GUIListItemLayout.h"
#include "GUIMessage.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "utils/StringUtils.h"
CGUIListContainer::CGUIListContainer(int parentID, int controlID, float posX, float posY, float width, float height, ORIENTATION orientation, const CScroller& scroller, int preloadItems)
diff --git a/xbmc/guilib/GUIMultiImage.cpp b/xbmc/guilib/GUIMultiImage.cpp
index 39593e68ee..e42dc8b1b3 100644
--- a/xbmc/guilib/GUIMultiImage.cpp
+++ b/xbmc/guilib/GUIMultiImage.cpp
@@ -15,7 +15,6 @@
#include "TextureManager.h"
#include "WindowIDs.h"
#include "filesystem/Directory.h"
-#include "input/Key.h"
#include "utils/FileExtensionProvider.h"
#include "utils/JobManager.h"
#include "utils/Random.h"
diff --git a/xbmc/guilib/GUIPanelContainer.cpp b/xbmc/guilib/GUIPanelContainer.cpp
index cc50178cdf..e4c7a79a39 100644
--- a/xbmc/guilib/GUIPanelContainer.cpp
+++ b/xbmc/guilib/GUIPanelContainer.cpp
@@ -12,7 +12,8 @@
#include "GUIListItemLayout.h"
#include "GUIMessage.h"
#include "guilib/guiinfo/GUIInfoLabels.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "utils/StringUtils.h"
#include <cassert>
diff --git a/xbmc/guilib/GUIRadioButtonControl.cpp b/xbmc/guilib/GUIRadioButtonControl.cpp
index cc169ecdef..4cad844e69 100644
--- a/xbmc/guilib/GUIRadioButtonControl.cpp
+++ b/xbmc/guilib/GUIRadioButtonControl.cpp
@@ -10,7 +10,8 @@
#include "GUIInfoManager.h"
#include "LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
CGUIRadioButtonControl::CGUIRadioButtonControl(int parentID,
int controlID,
diff --git a/xbmc/guilib/GUIToggleButtonControl.cpp b/xbmc/guilib/GUIToggleButtonControl.cpp
index 42bd7eec01..650dc3df69 100644
--- a/xbmc/guilib/GUIToggleButtonControl.cpp
+++ b/xbmc/guilib/GUIToggleButtonControl.cpp
@@ -11,7 +11,8 @@
#include "GUIDialog.h"
#include "GUIInfoManager.h"
#include "GUIWindowManager.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
CGUIToggleButtonControl::CGUIToggleButtonControl(int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo& textureFocus, const CTextureInfo& textureNoFocus, const CTextureInfo& altTextureFocus, const CTextureInfo& altTextureNoFocus, const CLabelInfo &labelInfo, bool wrapMultiLine)
: CGUIButtonControl(parentID, controlID, posX, posY, width, height, textureFocus, textureNoFocus, labelInfo, wrapMultiLine)
diff --git a/xbmc/guilib/GUIWrappingListContainer.cpp b/xbmc/guilib/GUIWrappingListContainer.cpp
index e1bc3c0fb8..c5980448f4 100644
--- a/xbmc/guilib/GUIWrappingListContainer.cpp
+++ b/xbmc/guilib/GUIWrappingListContainer.cpp
@@ -11,7 +11,8 @@
#include "FileItem.h"
#include "GUIListItemLayout.h"
#include "GUIMessage.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
CGUIWrappingListContainer::CGUIWrappingListContainer(int parentID, int controlID, float posX, float posY, float width, float height, ORIENTATION orientation, const CScroller& scroller, int preloadItems, int fixedPosition)
: CGUIBaseContainer(parentID, controlID, posX, posY, width, height, orientation, scroller, preloadItems)
diff --git a/xbmc/input/CMakeLists.txt b/xbmc/input/CMakeLists.txt
index d005048ea4..4587b7eaba 100644
--- a/xbmc/input/CMakeLists.txt
+++ b/xbmc/input/CMakeLists.txt
@@ -4,12 +4,8 @@ set(SOURCES InertialScrollingHandler.cpp
InputCodingTableKorean.cpp
InputManager.cpp
InputTranslator.cpp
- Key.cpp
- KeyboardLayout.cpp
- KeyboardLayoutManager.cpp
- KeyboardStat.cpp
WindowTranslator.cpp
- XBMC_keytable.cpp)
+)
set(HEADERS InertialScrollingHandler.h
InputCodingTable.h
@@ -19,14 +15,7 @@ set(HEADERS InertialScrollingHandler.h
InputManager.h
InputTranslator.h
InputTypes.h
- Key.h
- KeyboardLayout.h
- KeyboardLayoutManager.h
- KeyboardStat.h
WindowTranslator.h
- XBMC_keyboard.h
- XBMC_keysym.h
- XBMC_keytable.h
- XBMC_vkeys.h)
+)
core_add_library(input)
diff --git a/xbmc/input/InputManager.cpp b/xbmc/input/InputManager.cpp
index 0f41cf71bd..be0e86e98f 100644
--- a/xbmc/input/InputManager.cpp
+++ b/xbmc/input/InputManager.cpp
@@ -9,7 +9,6 @@
#include "InputManager.h"
#include "ServiceBroker.h"
-#include "XBMC_vkeys.h"
#include "application/AppInboundProtocol.h"
#include "application/Application.h"
#include "application/ApplicationComponents.h"
@@ -19,8 +18,12 @@
#include "guilib/GUIControl.h"
#include "guilib/GUIWindow.h"
#include "guilib/GUIWindowManager.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "input/keyboard/KeyboardEasterEgg.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "input/keyboard/interfaces/IKeyboardDriverHandler.h"
#include "input/keymaps/ButtonTranslator.h"
#include "input/keymaps/KeymapEnvironment.h"
diff --git a/xbmc/input/InputManager.h b/xbmc/input/InputManager.h
index ac22736599..cbdeab6ddf 100644
--- a/xbmc/input/InputManager.h
+++ b/xbmc/input/InputManager.h
@@ -8,9 +8,9 @@
#pragma once
-#include "input/KeyboardStat.h"
#include "input/actions/Action.h"
#include "input/actions/interfaces/IActionListener.h"
+#include "input/keyboard/KeyboardStat.h"
#include "input/keymaps/ButtonStat.h"
#include "input/mouse/MouseStat.h"
#include "input/mouse/interfaces/IMouseInputProvider.h"
@@ -285,7 +285,7 @@ private:
*/
void ProcessQueuedActions();
- CKeyboardStat m_Keyboard;
+ KODI::KEYBOARD::CKeyboardStat m_Keyboard;
KODI::KEYMAP::CButtonStat m_buttonStat;
CMouseStat m_Mouse;
CKey m_LastKey;
diff --git a/xbmc/input/InputTypes.h b/xbmc/input/InputTypes.h
index 851beb72d6..29da9aa31a 100644
--- a/xbmc/input/InputTypes.h
+++ b/xbmc/input/InputTypes.h
@@ -39,8 +39,5 @@ enum class INTERCARDINAL_DIRECTION
LEFTUP = LEFT | UP,
LEFTDOWN = LEFT | DOWN,
};
-
-const unsigned int HOLD_TRESHOLD = 250;
-
} // namespace INPUT
} // namespace KODI
diff --git a/xbmc/input/Key.h b/xbmc/input/Key.h
deleted file mode 100644
index 6ef3491453..0000000000
--- a/xbmc/input/Key.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * 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
-
-/*!
- \file Key.h
- \brief
- */
-
-//! @todo Remove dependence on CAction
-#include "input/actions/Action.h"
-#include "input/actions/ActionIDs.h"
-
-#include <stdint.h>
-#include <string>
-
-// Reserved 0 - 255
-// IRRemote.h
-// XINPUT_IR_REMOTE-*
-
-/*
- * EventServer "gamepad" keys based on original Xbox controller
- */
-// Analogue - don't change order
-#define KEY_BUTTON_A 256
-#define KEY_BUTTON_B 257
-#define KEY_BUTTON_X 258
-#define KEY_BUTTON_Y 259
-#define KEY_BUTTON_BLACK 260
-#define KEY_BUTTON_WHITE 261
-#define KEY_BUTTON_LEFT_TRIGGER 262
-#define KEY_BUTTON_RIGHT_TRIGGER 263
-
-#define KEY_BUTTON_LEFT_THUMB_STICK 264
-#define KEY_BUTTON_RIGHT_THUMB_STICK 265
-
-#define KEY_BUTTON_RIGHT_THUMB_STICK_UP 266 // right thumb stick directions
-#define KEY_BUTTON_RIGHT_THUMB_STICK_DOWN 267 // for defining different actions per direction
-#define KEY_BUTTON_RIGHT_THUMB_STICK_LEFT 268
-#define KEY_BUTTON_RIGHT_THUMB_STICK_RIGHT 269
-
-// Digital - don't change order
-#define KEY_BUTTON_DPAD_UP 270
-#define KEY_BUTTON_DPAD_DOWN 271
-#define KEY_BUTTON_DPAD_LEFT 272
-#define KEY_BUTTON_DPAD_RIGHT 273
-
-#define KEY_BUTTON_START 274
-#define KEY_BUTTON_BACK 275
-
-#define KEY_BUTTON_LEFT_THUMB_BUTTON 276
-#define KEY_BUTTON_RIGHT_THUMB_BUTTON 277
-
-#define KEY_BUTTON_LEFT_ANALOG_TRIGGER 278
-#define KEY_BUTTON_RIGHT_ANALOG_TRIGGER 279
-
-#define KEY_BUTTON_LEFT_THUMB_STICK_UP 280 // left thumb stick directions
-#define KEY_BUTTON_LEFT_THUMB_STICK_DOWN 281 // for defining different actions per direction
-#define KEY_BUTTON_LEFT_THUMB_STICK_LEFT 282
-#define KEY_BUTTON_LEFT_THUMB_STICK_RIGHT 283
-
-// 0xF000 -> 0xF200 is reserved for the keyboard; a keyboard press is either
-#define KEY_VKEY 0xF000 // a virtual key/functional key e.g. cursor left
-#define KEY_UNICODE \
- 0xF200 // another printable character whose range is not included in this KEY code
-
-// 0xE000 -> 0xEFFF is reserved for mouse actions
-#define KEY_VMOUSE 0xEFFF
-
-#define KEY_MOUSE_START 0xE000
-#define KEY_MOUSE_CLICK 0xE000
-#define KEY_MOUSE_RIGHTCLICK 0xE001
-#define KEY_MOUSE_MIDDLECLICK 0xE002
-#define KEY_MOUSE_DOUBLE_CLICK 0xE010
-#define KEY_MOUSE_LONG_CLICK 0xE020
-#define KEY_MOUSE_WHEEL_UP 0xE101
-#define KEY_MOUSE_WHEEL_DOWN 0xE102
-#define KEY_MOUSE_MOVE 0xE103
-#define KEY_MOUSE_DRAG 0xE104
-#define KEY_MOUSE_DRAG_START 0xE105
-#define KEY_MOUSE_DRAG_END 0xE106
-#define KEY_MOUSE_RDRAG 0xE107
-#define KEY_MOUSE_RDRAG_START 0xE108
-#define KEY_MOUSE_RDRAG_END 0xE109
-#define KEY_MOUSE_NOOP 0xEFFF
-#define KEY_MOUSE_END 0xEFFF
-
-// 0xD000 -> 0xD0FF is reserved for WM_APPCOMMAND messages
-#define KEY_APPCOMMAND 0xD000
-
-#define KEY_INVALID 0xFFFF
-
-#define ICON_TYPE_NONE 101
-#define ICON_TYPE_PROGRAMS 102
-#define ICON_TYPE_MUSIC 103
-#define ICON_TYPE_PICTURES 104
-#define ICON_TYPE_VIDEOS 105
-#define ICON_TYPE_FILES 106
-#define ICON_TYPE_WEATHER 107
-#define ICON_TYPE_SETTINGS 109
-
-#ifndef SWIG
-
-/*!
- \ingroup actionkeys
- \brief
- */
-class CKey
-{
-public:
- CKey(void);
- CKey(uint32_t buttonCode,
- uint8_t leftTrigger = 0,
- uint8_t rightTrigger = 0,
- float leftThumbX = 0.0f,
- float leftThumbY = 0.0f,
- float rightThumbX = 0.0f,
- float rightThumbY = 0.0f,
- float repeat = 0.0f);
- CKey(uint32_t buttonCode, unsigned int held);
- CKey(uint32_t keycode,
- uint8_t vkey,
- wchar_t unicode,
- char ascii,
- uint32_t modifiers,
- uint32_t lockingModifiers,
- unsigned int held);
- CKey(const CKey& key);
- void Reset();
-
- virtual ~CKey(void);
- CKey& operator=(const CKey& key);
- uint8_t GetLeftTrigger() const;
- uint8_t GetRightTrigger() const;
- float GetLeftThumbX() const;
- float GetLeftThumbY() const;
- float GetRightThumbX() const;
- float GetRightThumbY() const;
- float GetRepeat() const;
- bool FromKeyboard() const;
- bool IsAnalogButton() const;
- bool IsIRRemote() const;
- void SetFromService(bool fromService);
- bool GetFromService() const { return m_fromService; }
-
- inline uint32_t GetButtonCode() const { return m_buttonCode; }
- inline uint32_t GetKeycode() const { return m_keycode; } // XBMCKey enum in XBMC_keysym.h
- inline uint8_t GetVKey() const { return m_vkey; }
- inline wchar_t GetUnicode() const { return m_unicode; }
- inline char GetAscii() const { return m_ascii; }
- inline uint32_t GetModifiers() const { return m_modifiers; }
- inline uint32_t GetLockingModifiers() const { return m_lockingModifiers; }
- inline unsigned int GetHeld() const { return m_held; }
-
- enum Modifier
- {
- MODIFIER_CTRL = 0x00010000,
- MODIFIER_SHIFT = 0x00020000,
- MODIFIER_ALT = 0x00040000,
- MODIFIER_RALT = 0x00080000,
- MODIFIER_SUPER = 0x00100000,
- MODIFIER_META = 0X00200000,
- MODIFIER_LONG = 0X01000000,
- MODIFIER_NUMLOCK = 0X02000000,
- MODIFIER_CAPSLOCK = 0X04000000,
- MODIFIER_SCROLLLOCK = 0X08000000,
- };
-
-private:
- uint32_t m_buttonCode;
- uint32_t m_keycode;
- uint8_t m_vkey;
- wchar_t m_unicode;
- char m_ascii;
- uint32_t m_modifiers;
- uint32_t m_lockingModifiers;
- unsigned int m_held;
-
- uint8_t m_leftTrigger;
- uint8_t m_rightTrigger;
- float m_leftThumbX;
- float m_leftThumbY;
- float m_rightThumbX;
- float m_rightThumbY;
- float m_repeat; // time since last keypress
- bool m_fromService;
-};
-#endif // undef SWIG
diff --git a/xbmc/input/actions/Action.cpp b/xbmc/input/actions/Action.cpp
index 95e1d368ea..3795858931 100644
--- a/xbmc/input/actions/Action.cpp
+++ b/xbmc/input/actions/Action.cpp
@@ -10,7 +10,8 @@
#include "ActionIDs.h"
#include "ActionTranslator.h"
-#include "input/Key.h"
+#include "input/keyboard/Key.h"
+#include "input/keyboard/KeyIDs.h"
using namespace KODI;
using namespace ACTION;
diff --git a/xbmc/input/joysticks/generic/ButtonMapping.cpp b/xbmc/input/joysticks/generic/ButtonMapping.cpp
index c68dc58ef1..51a7226753 100644
--- a/xbmc/input/joysticks/generic/ButtonMapping.cpp
+++ b/xbmc/input/joysticks/generic/ButtonMapping.cpp
@@ -13,12 +13,13 @@
#include "games/controllers/ControllerManager.h"
#include "games/controllers/input/PhysicalFeature.h"
#include "input/InputTranslator.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "input/joysticks/DriverPrimitive.h"
#include "input/joysticks/JoystickTranslator.h"
#include "input/joysticks/JoystickUtils.h"
#include "input/joysticks/interfaces/IButtonMap.h"
#include "input/joysticks/interfaces/IButtonMapper.h"
+#include "input/keyboard/Key.h"
#include "input/keymaps/interfaces/IKeymap.h"
#include "utils/log.h"
diff --git a/xbmc/input/keyboard/CMakeLists.txt b/xbmc/input/keyboard/CMakeLists.txt
index ddccd03273..b39b88a9ce 100644
--- a/xbmc/input/keyboard/CMakeLists.txt
+++ b/xbmc/input/keyboard/CMakeLists.txt
@@ -1,11 +1,22 @@
-set(SOURCES KeyboardEasterEgg.cpp
+set(SOURCES Key.cpp
+ KeyboardEasterEgg.cpp
+ KeyboardLayout.cpp
+ KeyboardLayoutManager.cpp
+ KeyboardStat.cpp
+ XBMC_keytable.cpp
)
-set(HEADERS interfaces/IKeyboardDriverHandler.h
- interfaces/IKeyboardInputHandler.h
- interfaces/IKeyboardInputProvider.h
+set(HEADERS Key.h
KeyboardEasterEgg.h
+ KeyboardLayout.h
+ KeyboardLayoutManager.h
+ KeyboardStat.h
KeyboardTypes.h
+ KeyIDs.h
+ XBMC_keyboard.h
+ XBMC_keysym.h
+ XBMC_keytable.h
+ XBMC_vkeys.h
)
core_add_library(input_keyboard)
diff --git a/xbmc/input/Key.cpp b/xbmc/input/keyboard/Key.cpp
index 24f6a0c1b5..3a16710b79 100644
--- a/xbmc/input/Key.cpp
+++ b/xbmc/input/keyboard/Key.cpp
@@ -6,7 +6,9 @@
* See LICENSES/README.md for more information.
*/
-#include "input/Key.h"
+#include "Key.h"
+
+#include "KeyIDs.h"
CKey::CKey(void)
{
diff --git a/xbmc/input/keyboard/Key.h b/xbmc/input/keyboard/Key.h
new file mode 100644
index 0000000000..c878174171
--- /dev/null
+++ b/xbmc/input/keyboard/Key.h
@@ -0,0 +1,96 @@
+/*
+ * 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 <stdint.h>
+#include <string>
+
+/*!
+ * \ingroup keyboard
+ */
+class CKey
+{
+public:
+ CKey(void);
+ CKey(uint32_t buttonCode,
+ uint8_t leftTrigger = 0,
+ uint8_t rightTrigger = 0,
+ float leftThumbX = 0.0f,
+ float leftThumbY = 0.0f,
+ float rightThumbX = 0.0f,
+ float rightThumbY = 0.0f,
+ float repeat = 0.0f);
+ CKey(uint32_t buttonCode, unsigned int held);
+ CKey(uint32_t keycode,
+ uint8_t vkey,
+ wchar_t unicode,
+ char ascii,
+ uint32_t modifiers,
+ uint32_t lockingModifiers,
+ unsigned int held);
+ CKey(const CKey& key);
+ void Reset();
+
+ virtual ~CKey(void);
+ CKey& operator=(const CKey& key);
+ uint8_t GetLeftTrigger() const;
+ uint8_t GetRightTrigger() const;
+ float GetLeftThumbX() const;
+ float GetLeftThumbY() const;
+ float GetRightThumbX() const;
+ float GetRightThumbY() const;
+ float GetRepeat() const;
+ bool FromKeyboard() const;
+ bool IsAnalogButton() const;
+ bool IsIRRemote() const;
+ void SetFromService(bool fromService);
+ bool GetFromService() const { return m_fromService; }
+
+ inline uint32_t GetButtonCode() const { return m_buttonCode; }
+ inline uint32_t GetKeycode() const { return m_keycode; } // XBMCKey enum in XBMC_keysym.h
+ inline uint8_t GetVKey() const { return m_vkey; }
+ inline wchar_t GetUnicode() const { return m_unicode; }
+ inline char GetAscii() const { return m_ascii; }
+ inline uint32_t GetModifiers() const { return m_modifiers; }
+ inline uint32_t GetLockingModifiers() const { return m_lockingModifiers; }
+ inline unsigned int GetHeld() const { return m_held; }
+
+ enum Modifier
+ {
+ MODIFIER_CTRL = 0x00010000,
+ MODIFIER_SHIFT = 0x00020000,
+ MODIFIER_ALT = 0x00040000,
+ MODIFIER_RALT = 0x00080000,
+ MODIFIER_SUPER = 0x00100000,
+ MODIFIER_META = 0X00200000,
+ MODIFIER_LONG = 0X01000000,
+ MODIFIER_NUMLOCK = 0X02000000,
+ MODIFIER_CAPSLOCK = 0X04000000,
+ MODIFIER_SCROLLLOCK = 0X08000000,
+ };
+
+private:
+ uint32_t m_buttonCode;
+ uint32_t m_keycode;
+ uint8_t m_vkey;
+ wchar_t m_unicode;
+ char m_ascii;
+ uint32_t m_modifiers;
+ uint32_t m_lockingModifiers;
+ unsigned int m_held;
+
+ uint8_t m_leftTrigger;
+ uint8_t m_rightTrigger;
+ float m_leftThumbX;
+ float m_leftThumbY;
+ float m_rightThumbX;
+ float m_rightThumbY;
+ float m_repeat; // time since last keypress
+ bool m_fromService;
+};
diff --git a/xbmc/input/keyboard/KeyIDs.h b/xbmc/input/keyboard/KeyIDs.h
new file mode 100644
index 0000000000..aceb3318d0
--- /dev/null
+++ b/xbmc/input/keyboard/KeyIDs.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (C) 2005-2024 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
+
+/// \ingroup keyboard
+/// \{
+
+// Reserved 0 - 255
+// IRRemote.h
+// XINPUT_IR_REMOTE-*
+
+/*
+ * EventServer "gamepad" keys based on original Xbox controller
+ */
+// Analogue - don't change order
+#define KEY_BUTTON_A 256
+#define KEY_BUTTON_B 257
+#define KEY_BUTTON_X 258
+#define KEY_BUTTON_Y 259
+#define KEY_BUTTON_BLACK 260
+#define KEY_BUTTON_WHITE 261
+#define KEY_BUTTON_LEFT_TRIGGER 262
+#define KEY_BUTTON_RIGHT_TRIGGER 263
+
+#define KEY_BUTTON_LEFT_THUMB_STICK 264
+#define KEY_BUTTON_RIGHT_THUMB_STICK 265
+
+#define KEY_BUTTON_RIGHT_THUMB_STICK_UP 266 // right thumb stick directions
+#define KEY_BUTTON_RIGHT_THUMB_STICK_DOWN 267 // for defining different actions per direction
+#define KEY_BUTTON_RIGHT_THUMB_STICK_LEFT 268
+#define KEY_BUTTON_RIGHT_THUMB_STICK_RIGHT 269
+
+// Digital - don't change order
+#define KEY_BUTTON_DPAD_UP 270
+#define KEY_BUTTON_DPAD_DOWN 271
+#define KEY_BUTTON_DPAD_LEFT 272
+#define KEY_BUTTON_DPAD_RIGHT 273
+
+#define KEY_BUTTON_START 274
+#define KEY_BUTTON_BACK 275
+
+#define KEY_BUTTON_LEFT_THUMB_BUTTON 276
+#define KEY_BUTTON_RIGHT_THUMB_BUTTON 277
+
+#define KEY_BUTTON_LEFT_ANALOG_TRIGGER 278
+#define KEY_BUTTON_RIGHT_ANALOG_TRIGGER 279
+
+#define KEY_BUTTON_LEFT_THUMB_STICK_UP 280 // left thumb stick directions
+#define KEY_BUTTON_LEFT_THUMB_STICK_DOWN 281 // for defining different actions per direction
+#define KEY_BUTTON_LEFT_THUMB_STICK_LEFT 282
+#define KEY_BUTTON_LEFT_THUMB_STICK_RIGHT 283
+
+// 0xF000 -> 0xF200 is reserved for the keyboard; a keyboard press is either:
+// - A virtual key/functional key e.g. cursor left
+#define KEY_VKEY 0xF000
+// - Another printable character whose range is not included in this KEY code
+#define KEY_UNICODE 0xF200
+
+// 0xE000 -> 0xEFFF is reserved for mouse actions
+#define KEY_VMOUSE 0xEFFF
+
+#define KEY_MOUSE_START 0xE000
+#define KEY_MOUSE_CLICK 0xE000
+#define KEY_MOUSE_RIGHTCLICK 0xE001
+#define KEY_MOUSE_MIDDLECLICK 0xE002
+#define KEY_MOUSE_DOUBLE_CLICK 0xE010
+#define KEY_MOUSE_LONG_CLICK 0xE020
+#define KEY_MOUSE_WHEEL_UP 0xE101
+#define KEY_MOUSE_WHEEL_DOWN 0xE102
+#define KEY_MOUSE_MOVE 0xE103
+#define KEY_MOUSE_DRAG 0xE104
+#define KEY_MOUSE_DRAG_START 0xE105
+#define KEY_MOUSE_DRAG_END 0xE106
+#define KEY_MOUSE_RDRAG 0xE107
+#define KEY_MOUSE_RDRAG_START 0xE108
+#define KEY_MOUSE_RDRAG_END 0xE109
+#define KEY_MOUSE_NOOP 0xEFFF
+#define KEY_MOUSE_END 0xEFFF
+
+// 0xD000 -> 0xD0FF is reserved for WM_APPCOMMAND messages
+#define KEY_APPCOMMAND 0xD000
+
+#define KEY_INVALID 0xFFFF
+
+/// \}
diff --git a/xbmc/input/keyboard/KeyboardEasterEgg.cpp b/xbmc/input/keyboard/KeyboardEasterEgg.cpp
index 8b7049d0c6..98935010f4 100644
--- a/xbmc/input/keyboard/KeyboardEasterEgg.cpp
+++ b/xbmc/input/keyboard/KeyboardEasterEgg.cpp
@@ -8,8 +8,8 @@
#include "input/keyboard/KeyboardEasterEgg.h"
-#include "input/Key.h"
#include "input/joysticks/JoystickEasterEgg.h"
+#include "input/keyboard/Key.h"
using namespace KODI;
using namespace KEYBOARD;
diff --git a/xbmc/input/keyboard/KeyboardEasterEgg.h b/xbmc/input/keyboard/KeyboardEasterEgg.h
index 00c1791416..f9c78bd124 100644
--- a/xbmc/input/keyboard/KeyboardEasterEgg.h
+++ b/xbmc/input/keyboard/KeyboardEasterEgg.h
@@ -8,7 +8,7 @@
#pragma once
-#include "input/XBMC_vkeys.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "input/keyboard/interfaces/IKeyboardDriverHandler.h"
#include <vector>
@@ -18,6 +18,8 @@ namespace KODI
namespace KEYBOARD
{
/*!
+ * \ingroup keyboard
+ *
* \brief Hush!!!
*/
class CKeyboardEasterEgg : public IKeyboardDriverHandler
diff --git a/xbmc/input/KeyboardLayout.cpp b/xbmc/input/keyboard/KeyboardLayout.cpp
index 81d4933cb8..93318350ea 100644
--- a/xbmc/input/KeyboardLayout.cpp
+++ b/xbmc/input/keyboard/KeyboardLayout.cpp
@@ -8,8 +8,8 @@
#include "KeyboardLayout.h"
-#include "InputCodingTableFactory.h"
#include "guilib/LocalizeStrings.h"
+#include "input/InputCodingTableFactory.h"
#include "utils/CharsetConverter.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
@@ -19,6 +19,9 @@
#include <tinyxml2.h>
+using namespace KODI;
+using namespace KEYBOARD;
+
CKeyboardLayout::~CKeyboardLayout() = default;
bool CKeyboardLayout::Load(const tinyxml2::XMLElement* element)
diff --git a/xbmc/input/KeyboardLayout.h b/xbmc/input/keyboard/KeyboardLayout.h
index 673476a394..6f98b4a5f0 100644
--- a/xbmc/input/KeyboardLayout.h
+++ b/xbmc/input/keyboard/KeyboardLayout.h
@@ -8,7 +8,7 @@
#pragma once
-#include "InputCodingTable.h"
+#include "input/InputCodingTable.h"
#include <map>
#include <string>
@@ -19,6 +19,13 @@ namespace tinyxml2
class XMLElement;
}
+namespace KODI
+{
+namespace KEYBOARD
+{
+/*!
+ * \ingroup keyboard
+ */
class CKeyboardLayout
{
public:
@@ -53,3 +60,5 @@ private:
Keyboards m_keyboards;
IInputCodingTablePtr m_codingtable;
};
+} // namespace KEYBOARD
+} // namespace KODI
diff --git a/xbmc/input/KeyboardLayoutManager.cpp b/xbmc/input/keyboard/KeyboardLayoutManager.cpp
index f2d97c7ee9..8e26187766 100644
--- a/xbmc/input/KeyboardLayoutManager.cpp
+++ b/xbmc/input/keyboard/KeyboardLayoutManager.cpp
@@ -20,6 +20,9 @@
#include <algorithm>
#include <cstring>
+using namespace KODI;
+using namespace KEYBOARD;
+
#define KEYBOARD_LAYOUTS_PATH "special://xbmc/system/keyboardlayouts"
CKeyboardLayoutManager::~CKeyboardLayoutManager()
diff --git a/xbmc/input/KeyboardLayoutManager.h b/xbmc/input/keyboard/KeyboardLayoutManager.h
index 49c6473be4..f58f64ce3c 100644
--- a/xbmc/input/KeyboardLayoutManager.h
+++ b/xbmc/input/keyboard/KeyboardLayoutManager.h
@@ -8,7 +8,7 @@
#pragma once
-#include "input/KeyboardLayout.h"
+#include "KeyboardLayout.h"
#include <map>
#include <string>
@@ -18,8 +18,18 @@
class CSetting;
struct StringSettingOption;
-typedef std::map<std::string, CKeyboardLayout> KeyboardLayouts;
+namespace KODI
+{
+namespace KEYBOARD
+{
+/*!
+ * \ingroup keyboard
+ */
+using KeyboardLayouts = std::map<std::string, CKeyboardLayout>;
+/*!
+ * \ingroup keyboard
+ */
class CKeyboardLayoutManager
{
public:
@@ -43,3 +53,5 @@ private:
KeyboardLayouts m_layouts;
};
+} // namespace KEYBOARD
+} // namespace KODI
diff --git a/xbmc/input/KeyboardStat.cpp b/xbmc/input/keyboard/KeyboardStat.cpp
index ac36fe456f..276f3ce999 100644
--- a/xbmc/input/KeyboardStat.cpp
+++ b/xbmc/input/keyboard/KeyboardStat.cpp
@@ -14,16 +14,16 @@
#include "KeyboardStat.h"
#include "ServiceBroker.h"
-#include "input/InputTypes.h"
-#include "input/XBMC_keytable.h"
-#include "input/XBMC_vkeys.h"
+#include "input/keyboard/KeyboardTypes.h"
+#include "input/keyboard/XBMC_keytable.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "peripherals/Peripherals.h"
#include "peripherals/devices/PeripheralHID.h"
#include "utils/log.h"
#include "windowing/XBMC_events.h"
using namespace KODI;
-using namespace INPUT;
+using namespace KEYBOARD;
bool operator==(const XBMC_keysym& lhs, const XBMC_keysym& rhs)
{
@@ -111,7 +111,7 @@ CKey CKeyboardStat::TranslateKey(XBMC_keysym& keysym) const
// Continue by trying to match both the sym and unicode. This will identify
// the majority of keypresses
- else if (KeyTableLookupSymAndUnicode(keysym.sym, keysym.unicode, &keytable))
+ else if (KeyTable::LookupSymAndUnicode(keysym.sym, keysym.unicode, &keytable))
{
vkey = keytable.vkey;
ascii = keytable.ascii;
@@ -119,7 +119,7 @@ CKey CKeyboardStat::TranslateKey(XBMC_keysym& keysym) const
// If we failed to match the sym and unicode try just the unicode. This
// will match keys like \ that are on different keys on regional keyboards.
- else if (KeyTableLookupUnicode(keysym.unicode, &keytable))
+ else if (KeyTable::LookupUnicode(keysym.unicode, &keytable))
{
if (keycode == 0)
keycode = keytable.sym;
@@ -128,7 +128,7 @@ CKey CKeyboardStat::TranslateKey(XBMC_keysym& keysym) const
}
// If there is still no match try the sym
- else if (KeyTableLookupSym(keysym.sym, &keytable))
+ else if (KeyTable::LookupSym(keysym.sym, &keytable))
{
vkey = keytable.vkey;
@@ -169,7 +169,7 @@ CKey CKeyboardStat::TranslateKey(XBMC_keysym& keysym) const
auto now = std::chrono::steady_clock::now();
held = std::chrono::duration_cast<std::chrono::milliseconds>(now - m_lastKeyTime);
- if (held.count() > HOLD_TRESHOLD)
+ if (held.count() > KEY_HOLD_TRESHOLD)
modifiers |= CKey::MODIFIER_LONG;
}
@@ -236,7 +236,7 @@ std::string CKeyboardStat::GetKeyName(int KeyID)
// Now get the key name
keyid = KeyID & 0xFF;
- bool VKeyFound = KeyTableLookupVKeyName(keyid, &keytable);
+ bool VKeyFound = KeyTable::LookupVKeyName(keyid, &keytable);
if (VKeyFound)
keyname.append(keytable.keyname);
else
diff --git a/xbmc/input/KeyboardStat.h b/xbmc/input/keyboard/KeyboardStat.h
index 77d59a9b97..267f78cc09 100644
--- a/xbmc/input/KeyboardStat.h
+++ b/xbmc/input/keyboard/KeyboardStat.h
@@ -24,12 +24,19 @@
// ASCII/unicode could be derived from scancodes, virtual keys, modifiers and/or other
// ASCII/unicode.
-#include "input/Key.h"
-#include "input/XBMC_keyboard.h"
+#include "input/keyboard/Key.h"
+#include "input/keyboard/XBMC_keyboard.h"
#include <chrono>
#include <string>
+namespace KODI
+{
+namespace KEYBOARD
+{
+/*!
+ * \ingroup keyboard
+ */
class CKeyboardStat
{
public:
@@ -51,3 +58,5 @@ private:
XBMC_keysym m_lastKeysym;
std::chrono::time_point<std::chrono::steady_clock> m_lastKeyTime;
};
+} // namespace KEYBOARD
+} // namespace KODI
diff --git a/xbmc/input/keyboard/KeyboardTypes.h b/xbmc/input/keyboard/KeyboardTypes.h
index 5a5d39bcf1..110a2d08e0 100644
--- a/xbmc/input/keyboard/KeyboardTypes.h
+++ b/xbmc/input/keyboard/KeyboardTypes.h
@@ -8,8 +8,8 @@
#pragma once
-#include "input/Key.h"
-#include "input/XBMC_keysym.h"
+#include "input/keyboard/Key.h"
+#include "input/keyboard/XBMC_keysym.h"
#include <string>
@@ -17,6 +17,9 @@ namespace KODI
{
namespace KEYBOARD
{
+/// \ingroup keyboard
+/// \{
+
/*!
* \brief Symbol of a hardware-independent key
*/
@@ -36,5 +39,12 @@ using KeyName = std::string;
* \todo Move CKey enum to this file
*/
using Modifier = CKey::Modifier;
+
+/*!
+ * \brief Duration for which a keyboard key is considered held
+ */
+const unsigned int KEY_HOLD_TRESHOLD = 250;
+
+/// \}
} // namespace KEYBOARD
} // namespace KODI
diff --git a/xbmc/input/XBMC_keyboard.h b/xbmc/input/keyboard/XBMC_keyboard.h
index 09f2af76d6..cb12461a80 100644
--- a/xbmc/input/XBMC_keyboard.h
+++ b/xbmc/input/keyboard/XBMC_keyboard.h
@@ -17,6 +17,9 @@
#include <stdint.h>
+/// \ingroup keyboard
+/// \{
+
/* Keysym structure
- The scancode is hardware dependent, and should not be used by general
applications. If no hardware scancode is available, it will be 0.
@@ -33,13 +36,15 @@
An international character..
}
*/
-typedef struct XBMC_keysym
+struct XBMC_keysym
{
unsigned char scancode; /* hardware specific scancode */
XBMCKey sym; /* SDL virtual keysym */
XBMCMod mod; /* current key modifiers */
uint16_t unicode; /* translated character */
-} XBMC_keysym;
+};
/* This is the mask which refers to all hotkey bindings */
#define XBMC_ALL_HOTKEYS 0xFFFFFFFF
+
+/// \}
diff --git a/xbmc/input/XBMC_keysym.h b/xbmc/input/keyboard/XBMC_keysym.h
index 7a23dabc33..2ea921ff9f 100644
--- a/xbmc/input/XBMC_keysym.h
+++ b/xbmc/input/keyboard/XBMC_keysym.h
@@ -11,6 +11,9 @@
#pragma once
+/// \ingroup keyboard
+/// \{
+
// The XBMC_keysym identifies a physical key on the keyboard i.e. it is
// analogous to a scan code but is hardware independent.
// These values are bazsed on the SDL_keysym standards, see:
@@ -22,7 +25,7 @@
// On OSs that don't support SDL (i.e. Windows) the OS dependant key
// handling code converts keypresses to an XBMC_keysym value.
-typedef enum
+enum XBMCKey
{
// The keyboard syms have been cleverly chosen to map to ASCII
XBMCK_UNKNOWN = 0x00,
@@ -282,10 +285,10 @@ typedef enum
XBMCK_EJECT = 344,
XBMCK_LAST
-} XBMCKey;
+};
// Enumeration of valid key mods (possibly OR'd together)
-typedef enum
+enum XBMCMod
{
XBMCKMOD_NONE = 0x0000,
XBMCKMOD_LSHIFT = 0x0001,
@@ -302,10 +305,12 @@ typedef enum
XBMCKMOD_CAPS = 0x2000,
XBMCKMOD_MODE = 0x4000,
XBMCKMOD_RESERVED = 0x8000
-} XBMCMod;
+};
#define XBMCKMOD_CTRL (XBMCKMOD_LCTRL | XBMCKMOD_RCTRL)
#define XBMCKMOD_SHIFT (XBMCKMOD_LSHIFT | XBMCKMOD_RSHIFT)
#define XBMCKMOD_ALT (XBMCKMOD_LALT | XBMCKMOD_RALT)
#define XBMCKMOD_META (XBMCKMOD_LMETA | XBMCKMOD_RMETA)
#define XBMCKMOD_SUPER (XBMCKMOD_LSUPER | XBMCKMOD_RSUPER)
+
+/// \}
diff --git a/xbmc/input/XBMC_keytable.cpp b/xbmc/input/keyboard/XBMC_keytable.cpp
index 95ddb4c5ba..a6ed1224a6 100644
--- a/xbmc/input/XBMC_keytable.cpp
+++ b/xbmc/input/keyboard/XBMC_keytable.cpp
@@ -6,12 +6,17 @@
* See LICENSES/README.md for more information.
*/
-#include "input/XBMC_keytable.h"
+#include "input/keyboard/XBMC_keytable.h"
-#include "input/XBMC_keysym.h"
-#include "input/XBMC_vkeys.h"
+#include "input/keyboard/XBMC_keysym.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "utils/StringUtils.h"
+using namespace KODI;
+using namespace KEYBOARD;
+
+namespace
+{
// The array of XBMCKEYTABLEs used in XBMC.
// scancode, sym, unicode, ascii, vkey, keyname
static const XBMCKEYTABLE XBMCKeyTable[] = {
@@ -245,8 +250,9 @@ static const XBMCKEYTABLE XBMCKeyTable[] = {
{XBMCK_EPG, 0, 0, XBMCVK_EPG, "epg"}};
static int XBMCKeyTableSize = sizeof(XBMCKeyTable) / sizeof(XBMCKEYTABLE);
+} // namespace
-bool KeyTableLookupName(std::string keyname, XBMCKEYTABLE* keytable)
+bool KeyTable::LookupName(std::string keyname, XBMCKEYTABLE* keytable)
{
// If the name being searched for is empty there will be no match
if (keyname.empty())
@@ -272,7 +278,7 @@ bool KeyTableLookupName(std::string keyname, XBMCKEYTABLE* keytable)
return false;
}
-bool KeyTableLookupSym(uint16_t sym, XBMCKEYTABLE* keytable)
+bool KeyTable::LookupSym(uint16_t sym, XBMCKEYTABLE* keytable)
{
// If the sym being searched for is zero there will be no match
if (sym == 0)
@@ -292,7 +298,7 @@ bool KeyTableLookupSym(uint16_t sym, XBMCKEYTABLE* keytable)
return false;
}
-bool KeyTableLookupUnicode(uint16_t unicode, XBMCKEYTABLE* keytable)
+bool KeyTable::LookupUnicode(uint16_t unicode, XBMCKEYTABLE* keytable)
{
// If the unicode being searched for is zero there will be no match
if (unicode == 0)
@@ -312,7 +318,7 @@ bool KeyTableLookupUnicode(uint16_t unicode, XBMCKEYTABLE* keytable)
return false;
}
-bool KeyTableLookupSymAndUnicode(uint16_t sym, uint16_t unicode, XBMCKEYTABLE* keytable)
+bool KeyTable::LookupSymAndUnicode(uint16_t sym, uint16_t unicode, XBMCKEYTABLE* keytable)
{
// If the sym being searched for is zero there will be no match (the
// unicode can be zero if the sym is non-zero)
@@ -333,7 +339,7 @@ bool KeyTableLookupSymAndUnicode(uint16_t sym, uint16_t unicode, XBMCKEYTABLE* k
return false;
}
-bool KeyTableLookupVKeyName(uint32_t vkey, XBMCKEYTABLE* keytable)
+bool KeyTable::LookupVKeyName(uint32_t vkey, XBMCKEYTABLE* keytable)
{
// If the vkey being searched for is zero there will be no match
if (vkey == 0)
diff --git a/xbmc/input/XBMC_keytable.h b/xbmc/input/keyboard/XBMC_keytable.h
index 1a4990ee0f..d911c31e8e 100644
--- a/xbmc/input/XBMC_keytable.h
+++ b/xbmc/input/keyboard/XBMC_keytable.h
@@ -11,9 +11,15 @@
#include <stdint.h>
#include <string>
-typedef struct struct_XBMCKEYTABLE
+namespace KODI
{
+namespace KEYBOARD
+{
+/// \ingroup keyboard
+/// \{
+struct XBMCKEYTABLE
+{
// The sym is a value that identifies which key was pressed. Note
// that it specifies the key not the character so it is unaffected by
// shift, control, etc.
@@ -33,11 +39,17 @@ typedef struct struct_XBMCKEYTABLE
// this is used in the mapping table.
uint32_t vkey;
const char* keyname;
+};
-} XBMCKEYTABLE;
-
-bool KeyTableLookupName(std::string keyname, XBMCKEYTABLE* keytable);
-bool KeyTableLookupSym(uint16_t sym, XBMCKEYTABLE* keytable);
-bool KeyTableLookupUnicode(uint16_t unicode, XBMCKEYTABLE* keytable);
-bool KeyTableLookupSymAndUnicode(uint16_t sym, uint16_t unicode, XBMCKEYTABLE* keytable);
-bool KeyTableLookupVKeyName(uint32_t vkey, XBMCKEYTABLE* keytable);
+struct KeyTable
+{
+ static bool LookupName(std::string keyname, XBMCKEYTABLE* keytable);
+ static bool LookupSym(uint16_t sym, XBMCKEYTABLE* keytable);
+ static bool LookupUnicode(uint16_t unicode, XBMCKEYTABLE* keytable);
+ static bool LookupSymAndUnicode(uint16_t sym, uint16_t unicode, XBMCKEYTABLE* keytable);
+ static bool LookupVKeyName(uint32_t vkey, XBMCKEYTABLE* keytable);
+};
+
+/// \}
+} // namespace KEYBOARD
+} // namespace KODI
diff --git a/xbmc/input/XBMC_vkeys.h b/xbmc/input/keyboard/XBMC_vkeys.h
index 833d2dafad..c1fd99e5fe 100644
--- a/xbmc/input/XBMC_vkeys.h
+++ b/xbmc/input/keyboard/XBMC_vkeys.h
@@ -11,6 +11,9 @@
#pragma once
+/// \ingroup keyboard
+/// \{
+
// The XBMC_vkey identifies a key that is mapped to an action or function.
// The keysym.sym generated by SDL_KEYDOWN is mapped to a vkey and the vkey
// is used to lookup an action in the global mapping table.
@@ -271,3 +274,5 @@ typedef enum
#define VK_BACKTICK 0xDF
#define VK_OEM_102 0xE2
#endif
+
+/// \}
diff --git a/xbmc/input/keyboard/generic/KeyboardInputHandling.cpp b/xbmc/input/keyboard/generic/KeyboardInputHandling.cpp
index 5e84081a58..8d733822e7 100644
--- a/xbmc/input/keyboard/generic/KeyboardInputHandling.cpp
+++ b/xbmc/input/keyboard/generic/KeyboardInputHandling.cpp
@@ -8,9 +8,9 @@
#include "KeyboardInputHandling.h"
-#include "input/XBMC_keysym.h"
#include "input/joysticks/DriverPrimitive.h"
#include "input/joysticks/interfaces/IButtonMap.h"
+#include "input/keyboard/XBMC_keysym.h"
#include "input/keyboard/interfaces/IKeyboardInputHandler.h"
using namespace KODI;
diff --git a/xbmc/input/keyboard/generic/KeyboardInputHandling.h b/xbmc/input/keyboard/generic/KeyboardInputHandling.h
index 4cd2d26295..438189ed47 100644
--- a/xbmc/input/keyboard/generic/KeyboardInputHandling.h
+++ b/xbmc/input/keyboard/generic/KeyboardInputHandling.h
@@ -23,6 +23,7 @@ class IKeyboardInputHandler;
/*!
* \ingroup keyboard
+ *
* \brief Class to translate input from Kodi keycodes to key names defined
* by the keyboard's controller profile
*/
diff --git a/xbmc/input/keyboard/interfaces/CMakeLists.txt b/xbmc/input/keyboard/interfaces/CMakeLists.txt
new file mode 100644
index 0000000000..154eb287b3
--- /dev/null
+++ b/xbmc/input/keyboard/interfaces/CMakeLists.txt
@@ -0,0 +1,8 @@
+set(HEADERS IKeyboardDriverHandler.h
+ IKeyboardInputHandler.h
+ IKeyboardInputProvider.h
+)
+
+if(NOT ENABLE_STATIC_LIBS)
+ core_add_library(input_keyboard_interfaces)
+endif()
diff --git a/xbmc/input/keyboard/interfaces/IKeyboardDriverHandler.h b/xbmc/input/keyboard/interfaces/IKeyboardDriverHandler.h
index 828f0a984c..70c593c6bb 100644
--- a/xbmc/input/keyboard/interfaces/IKeyboardDriverHandler.h
+++ b/xbmc/input/keyboard/interfaces/IKeyboardDriverHandler.h
@@ -16,6 +16,7 @@ namespace KEYBOARD
{
/*!
* \ingroup keyboard
+ *
* \brief Interface for handling keyboard events
*/
class IKeyboardDriverHandler
diff --git a/xbmc/input/keyboard/interfaces/IKeyboardInputHandler.h b/xbmc/input/keyboard/interfaces/IKeyboardInputHandler.h
index f0df6a36f1..315a0b7681 100644
--- a/xbmc/input/keyboard/interfaces/IKeyboardInputHandler.h
+++ b/xbmc/input/keyboard/interfaces/IKeyboardInputHandler.h
@@ -19,6 +19,7 @@ namespace KEYBOARD
{
/*!
* \ingroup keyboard
+ *
* \brief Interface for handling input events for keyboards
*
* Input events are an abstraction over driver events. Keys are identified by
diff --git a/xbmc/input/keyboard/interfaces/IKeyboardInputProvider.h b/xbmc/input/keyboard/interfaces/IKeyboardInputProvider.h
index 5d964d5c08..81744f0986 100644
--- a/xbmc/input/keyboard/interfaces/IKeyboardInputProvider.h
+++ b/xbmc/input/keyboard/interfaces/IKeyboardInputProvider.h
@@ -15,7 +15,8 @@ namespace KEYBOARD
class IKeyboardInputHandler;
/*!
- * \ingroup mouse
+ * \ingroup keyboard
+ *
* \brief Interface for classes that can provide keyboard input
*/
class IKeyboardInputProvider
diff --git a/xbmc/input/keymaps/AppTranslator.cpp b/xbmc/input/keymaps/AppTranslator.cpp
index edb378d194..79f3031646 100644
--- a/xbmc/input/keymaps/AppTranslator.cpp
+++ b/xbmc/input/keymaps/AppTranslator.cpp
@@ -8,7 +8,7 @@
#include "AppTranslator.h"
-#include "input/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
diff --git a/xbmc/input/keymaps/ButtonStat.cpp b/xbmc/input/keymaps/ButtonStat.cpp
index d3c141f6e4..644be8de56 100644
--- a/xbmc/input/keymaps/ButtonStat.cpp
+++ b/xbmc/input/keymaps/ButtonStat.cpp
@@ -7,7 +7,7 @@
*/
#include "ButtonStat.h"
-#include "xbmc/input/InputTypes.h"
+#include "input/keyboard/KeyboardTypes.h"
using namespace KODI;
using namespace KEYMAP;
@@ -17,7 +17,7 @@ CButtonStat::CButtonStat() = default;
CKey CButtonStat::TranslateKey(const CKey& key) const
{
uint32_t buttonCode = key.GetButtonCode();
- if (key.GetHeld() > INPUT::HOLD_TRESHOLD)
+ if (key.GetHeld() > KEYBOARD::KEY_HOLD_TRESHOLD)
buttonCode |= CKey::MODIFIER_LONG;
CKey translatedKey(buttonCode, key.GetHeld());
diff --git a/xbmc/input/keymaps/ButtonStat.h b/xbmc/input/keymaps/ButtonStat.h
index 9135a1cb21..e61ca3d090 100644
--- a/xbmc/input/keymaps/ButtonStat.h
+++ b/xbmc/input/keymaps/ButtonStat.h
@@ -8,8 +8,7 @@
#pragma once
-#include "input/Key.h"
-#include "input/XBMC_keyboard.h"
+#include "input/keyboard/Key.h"
#include <string>
diff --git a/xbmc/input/keymaps/ButtonTranslator.cpp b/xbmc/input/keymaps/ButtonTranslator.cpp
index 9b2697908b..d3402ddf39 100644
--- a/xbmc/input/keymaps/ButtonTranslator.cpp
+++ b/xbmc/input/keymaps/ButtonTranslator.cpp
@@ -12,10 +12,12 @@
#include "FileItem.h"
#include "filesystem/Directory.h"
#include "guilib/WindowIDs.h"
-#include "input/Key.h"
#include "input/WindowTranslator.h"
+#include "input/actions/Action.h"
#include "input/actions/ActionIDs.h"
#include "input/actions/ActionTranslator.h"
+#include "input/keyboard/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "input/keymaps/interfaces/IKeyMapper.h"
#include "input/keymaps/joysticks/GamepadTranslator.h"
#include "input/keymaps/keyboard/KeyboardTranslator.h"
diff --git a/xbmc/input/keymaps/joysticks/GamepadTranslator.cpp b/xbmc/input/keymaps/joysticks/GamepadTranslator.cpp
index 1ff7125a3f..3da758516d 100644
--- a/xbmc/input/keymaps/joysticks/GamepadTranslator.cpp
+++ b/xbmc/input/keymaps/joysticks/GamepadTranslator.cpp
@@ -8,7 +8,7 @@
#include "GamepadTranslator.h"
-#include "input/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
diff --git a/xbmc/input/keymaps/keyboard/KeyboardActionMap.cpp b/xbmc/input/keymaps/keyboard/KeyboardActionMap.cpp
index 8ccde2d66e..a45afd4fa0 100644
--- a/xbmc/input/keymaps/keyboard/KeyboardActionMap.cpp
+++ b/xbmc/input/keymaps/keyboard/KeyboardActionMap.cpp
@@ -12,8 +12,8 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "input/InputManager.h"
-#include "input/Key.h"
#include "input/actions/Action.h"
+#include "input/keyboard/Key.h"
using namespace KODI;
using namespace KEYMAP;
diff --git a/xbmc/input/keymaps/keyboard/KeyboardTranslator.cpp b/xbmc/input/keymaps/keyboard/KeyboardTranslator.cpp
index c88392cee6..7b5ae55d55 100644
--- a/xbmc/input/keymaps/keyboard/KeyboardTranslator.cpp
+++ b/xbmc/input/keymaps/keyboard/KeyboardTranslator.cpp
@@ -8,8 +8,9 @@
#include "KeyboardTranslator.h"
-#include "input/Key.h"
-#include "input/XBMC_keytable.h"
+#include "input/keyboard/Key.h"
+#include "input/keyboard/KeyIDs.h"
+#include "input/keyboard/XBMC_keytable.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
@@ -83,10 +84,10 @@ uint32_t CKeyboardTranslator::TranslateButton(const tinyxml2::XMLElement* pButto
uint32_t CKeyboardTranslator::TranslateString(const std::string& szButton)
{
uint32_t buttonCode = 0;
- XBMCKEYTABLE keytable;
+ KEYBOARD::XBMCKEYTABLE keytable;
// Look up the key name
- if (KeyTableLookupName(szButton, &keytable))
+ if (KEYBOARD::KeyTable::LookupName(szButton, &keytable))
{
buttonCode = keytable.vkey;
}
diff --git a/xbmc/input/mouse/MouseStat.cpp b/xbmc/input/mouse/MouseStat.cpp
index 8b6ce3ba06..25b59f493f 100644
--- a/xbmc/input/mouse/MouseStat.cpp
+++ b/xbmc/input/mouse/MouseStat.cpp
@@ -9,7 +9,7 @@
#include "MouseStat.h"
#include "ServiceBroker.h"
-#include "input/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "utils/TimeUtils.h"
#include "windowing/WinSystem.h"
diff --git a/xbmc/input/mouse/MouseTranslator.cpp b/xbmc/input/mouse/MouseTranslator.cpp
index 00d0e58b62..da7266eae3 100644
--- a/xbmc/input/mouse/MouseTranslator.cpp
+++ b/xbmc/input/mouse/MouseTranslator.cpp
@@ -9,7 +9,7 @@
#include "MouseTranslator.h"
#include "MouseStat.h"
-#include "input/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "utils/StringUtils.h"
#include "utils/log.h"
diff --git a/xbmc/input/touch/generic/GenericTouchActionHandler.cpp b/xbmc/input/touch/generic/GenericTouchActionHandler.cpp
index d6010745f1..4d8f74e3cf 100644
--- a/xbmc/input/touch/generic/GenericTouchActionHandler.cpp
+++ b/xbmc/input/touch/generic/GenericTouchActionHandler.cpp
@@ -12,7 +12,7 @@
#include "application/AppInboundProtocol.h"
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include <cmath>
diff --git a/xbmc/interfaces/json-rpc/GUIOperations.cpp b/xbmc/interfaces/json-rpc/GUIOperations.cpp
index 06b1f7505b..6e52b143a9 100644
--- a/xbmc/interfaces/json-rpc/GUIOperations.cpp
+++ b/xbmc/interfaces/json-rpc/GUIOperations.cpp
@@ -18,8 +18,9 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/StereoscopicsManager.h"
-#include "input/Key.h"
#include "input/WindowTranslator.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "rendering/RenderSystem.h"
#include "settings/Settings.h"
diff --git a/xbmc/interfaces/json-rpc/PlaylistOperations.cpp b/xbmc/interfaces/json-rpc/PlaylistOperations.cpp
index 36ad6e5443..61e04ac711 100644
--- a/xbmc/interfaces/json-rpc/PlaylistOperations.cpp
+++ b/xbmc/interfaces/json-rpc/PlaylistOperations.cpp
@@ -14,7 +14,8 @@
#include "ServiceBroker.h"
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "pictures/PictureInfoTag.h"
#include "pictures/SlideShowDelegator.h"
diff --git a/xbmc/interfaces/legacy/Control.h b/xbmc/interfaces/legacy/Control.h
index 362e099d65..aafb524a07 100644
--- a/xbmc/interfaces/legacy/Control.h
+++ b/xbmc/interfaces/legacy/Control.h
@@ -13,7 +13,7 @@
#include "Tuple.h"
#include "guilib/GUIControl.h"
#include "guilib/GUIFont.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "swighelper.h"
#include "utils/ColorUtils.h"
diff --git a/xbmc/interfaces/legacy/Window.cpp b/xbmc/interfaces/legacy/Window.cpp
index d26bcde2ed..05b6b74530 100644
--- a/xbmc/interfaces/legacy/Window.cpp
+++ b/xbmc/interfaces/legacy/Window.cpp
@@ -17,6 +17,8 @@
#include "guilib/GUIEditControl.h"
#include "guilib/GUIRadioButtonControl.h"
#include "guilib/GUIWindowManager.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "utils/StringUtils.h"
#include "utils/Variant.h"
diff --git a/xbmc/interfaces/legacy/WindowDialogMixin.cpp b/xbmc/interfaces/legacy/WindowDialogMixin.cpp
index 32d6fa9ac8..e2d78473a7 100644
--- a/xbmc/interfaces/legacy/WindowDialogMixin.cpp
+++ b/xbmc/interfaces/legacy/WindowDialogMixin.cpp
@@ -12,6 +12,8 @@
#include "WindowInterceptor.h"
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
namespace XBMCAddon
diff --git a/xbmc/interfaces/legacy/WindowXML.cpp b/xbmc/interfaces/legacy/WindowXML.cpp
index 51a4fbf943..65dc6c47f9 100644
--- a/xbmc/interfaces/legacy/WindowXML.cpp
+++ b/xbmc/interfaces/legacy/WindowXML.cpp
@@ -18,6 +18,8 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/TextureManager.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "utils/FileUtils.h"
#include "utils/StringUtils.h"
#include "utils/URIUtils.h"
diff --git a/xbmc/interfaces/swig/AddonModuleXbmcgui.i b/xbmc/interfaces/swig/AddonModuleXbmcgui.i
index b86940180e..404d8178ee 100644
--- a/xbmc/interfaces/swig/AddonModuleXbmcgui.i
+++ b/xbmc/interfaces/swig/AddonModuleXbmcgui.i
@@ -21,7 +21,7 @@
#include "interfaces/legacy/Dialog.h"
#include "interfaces/legacy/WindowXML.h"
#include "input/actions/ActionIDs.h"
-#include "input/Key.h"
+#include "input/keyboard/KeyIDs.h"
using namespace XBMCAddon;
using namespace xbmcgui;
@@ -108,4 +108,4 @@ using namespace xbmcgui;
%include "interfaces/legacy/WindowXML.h"
%include "input/actions/ActionIDs.h"
-%include "input/Key.h"
+%include "input/keyboard/KeyIDs.h"
diff --git a/xbmc/music/dialogs/GUIDialogMusicInfo.cpp b/xbmc/music/dialogs/GUIDialogMusicInfo.cpp
index a7dca1fc3e..d1559f77fd 100644
--- a/xbmc/music/dialogs/GUIDialogMusicInfo.cpp
+++ b/xbmc/music/dialogs/GUIDialogMusicInfo.cpp
@@ -22,7 +22,8 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "music/MusicDatabase.h"
#include "music/MusicLibraryQueue.h"
diff --git a/xbmc/music/dialogs/GUIDialogMusicOSD.cpp b/xbmc/music/dialogs/GUIDialogMusicOSD.cpp
index 6cd110bd27..d7eea342cb 100644
--- a/xbmc/music/dialogs/GUIDialogMusicOSD.cpp
+++ b/xbmc/music/dialogs/GUIDialogMusicOSD.cpp
@@ -15,7 +15,8 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "input/InputManager.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
diff --git a/xbmc/music/dialogs/GUIDialogSongInfo.cpp b/xbmc/music/dialogs/GUIDialogSongInfo.cpp
index 70d02f96e8..045fdce052 100644
--- a/xbmc/music/dialogs/GUIDialogSongInfo.cpp
+++ b/xbmc/music/dialogs/GUIDialogSongInfo.cpp
@@ -19,7 +19,8 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "music/MusicDatabase.h"
#include "music/MusicUtils.h"
#include "music/tags/MusicInfoTag.h"
diff --git a/xbmc/music/dialogs/GUIDialogVisualisationPresetList.cpp b/xbmc/music/dialogs/GUIDialogVisualisationPresetList.cpp
index b5f2607b6c..8d070a1b36 100644
--- a/xbmc/music/dialogs/GUIDialogVisualisationPresetList.cpp
+++ b/xbmc/music/dialogs/GUIDialogVisualisationPresetList.cpp
@@ -15,7 +15,6 @@
#include "guilib/GUIVisualisationControl.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
#include "utils/StringUtils.h"
#include "utils/Variant.h"
diff --git a/xbmc/music/windows/GUIWindowMusicNav.cpp b/xbmc/music/windows/GUIWindowMusicNav.cpp
index 530e89bedf..a544090204 100644
--- a/xbmc/music/windows/GUIWindowMusicNav.cpp
+++ b/xbmc/music/windows/GUIWindowMusicNav.cpp
@@ -24,7 +24,8 @@
#include "guilib/GUIKeyboardFactory.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "music/MusicLibraryQueue.h"
diff --git a/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp b/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp
index abece9c660..cf9e73e817 100644
--- a/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp
+++ b/xbmc/music/windows/GUIWindowMusicPlaylistEditor.cpp
@@ -18,7 +18,8 @@
#include "filesystem/PlaylistFileDirectory.h"
#include "guilib/GUIKeyboardFactory.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "music/MusicUtils.h"
#include "playlists/PlayListM3U.h"
#include "settings/Settings.h"
diff --git a/xbmc/network/EventClient.cpp b/xbmc/network/EventClient.cpp
index 835d09481b..285ed3d6df 100644
--- a/xbmc/network/EventClient.cpp
+++ b/xbmc/network/EventClient.cpp
@@ -13,7 +13,7 @@
#include "dialogs/GUIDialogKaiToast.h"
#include "filesystem/File.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "input/keymaps/ButtonTranslator.h"
#include "input/keymaps/joysticks/GamepadTranslator.h"
#include "input/keymaps/keyboard/KeyboardTranslator.h"
diff --git a/xbmc/network/EventServer.cpp b/xbmc/network/EventServer.cpp
index 78492495db..ec6db38209 100644
--- a/xbmc/network/EventServer.cpp
+++ b/xbmc/network/EventServer.cpp
@@ -15,7 +15,8 @@
#include "Zeroconf.h"
#include "application/Application.h"
#include "guilib/GUIAudioManager.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "input/actions/ActionTranslator.h"
#include "interfaces/builtins/Builtins.h"
#include "utils/SystemInfo.h"
diff --git a/xbmc/peripherals/Peripherals.cpp b/xbmc/peripherals/Peripherals.cpp
index 38a4e2080a..8b2702eb17 100644
--- a/xbmc/peripherals/Peripherals.cpp
+++ b/xbmc/peripherals/Peripherals.cpp
@@ -46,8 +46,10 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/WindowIDs.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "input/joysticks/interfaces/IButtonMapper.h"
+#include "input/keyboard/Key.h"
#include "interfaces/AnnouncementManager.h"
#include "messaging/ApplicationMessenger.h"
#include "messaging/ThreadMessage.h"
diff --git a/xbmc/peripherals/devices/PeripheralHID.h b/xbmc/peripherals/devices/PeripheralHID.h
index 3b35dfd3d3..41986602c8 100644
--- a/xbmc/peripherals/devices/PeripheralHID.h
+++ b/xbmc/peripherals/devices/PeripheralHID.h
@@ -9,7 +9,7 @@
#pragma once
#include "Peripheral.h"
-#include "input/XBMC_keyboard.h"
+#include "input/keyboard/XBMC_keyboard.h"
namespace PERIPHERALS
{
diff --git a/xbmc/pictures/GUIDialogPictureInfo.cpp b/xbmc/pictures/GUIDialogPictureInfo.cpp
index 90764e0b0a..263b48238f 100644
--- a/xbmc/pictures/GUIDialogPictureInfo.cpp
+++ b/xbmc/pictures/GUIDialogPictureInfo.cpp
@@ -15,7 +15,8 @@
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
#include "guilib/guiinfo/GUIInfoLabels.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#define CONTROL_PICTURE_INFO 5
diff --git a/xbmc/platform/android/activity/AndroidKey.cpp b/xbmc/platform/android/activity/AndroidKey.cpp
index aa02e36018..78c45adc5b 100644
--- a/xbmc/platform/android/activity/AndroidKey.cpp
+++ b/xbmc/platform/android/activity/AndroidKey.cpp
@@ -10,7 +10,7 @@
#include "ServiceBroker.h"
#include "XBMCApp.h"
-#include "input/Key.h"
+#include "input/keyboard/XBMC_keysym.h"
#include "windowing/android/WinSystemAndroid.h"
#include <androidjni/KeyCharacterMap.h>
diff --git a/xbmc/platform/android/activity/JNIXBMCMediaSession.cpp b/xbmc/platform/android/activity/JNIXBMCMediaSession.cpp
index c27593df42..f8cea2c4cf 100644
--- a/xbmc/platform/android/activity/JNIXBMCMediaSession.cpp
+++ b/xbmc/platform/android/activity/JNIXBMCMediaSession.cpp
@@ -15,7 +15,8 @@
#include "application/Application.h"
#include "application/ApplicationComponents.h"
#include "application/ApplicationPlayer.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include <androidjni/Context.h>
diff --git a/xbmc/platform/android/activity/XBMCApp.cpp b/xbmc/platform/android/activity/XBMCApp.cpp
index a67cf6377e..1b61ac08ce 100644
--- a/xbmc/platform/android/activity/XBMCApp.cpp
+++ b/xbmc/platform/android/activity/XBMCApp.cpp
@@ -30,7 +30,8 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/guiinfo/GUIInfoLabels.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "input/mouse/MouseStat.h"
#include "interfaces/AnnouncementManager.h"
#include "messaging/ApplicationMessenger.h"
diff --git a/xbmc/platform/darwin/ios/XBMCController.h b/xbmc/platform/darwin/ios/XBMCController.h
index a23c5582a8..b2a06d071b 100644
--- a/xbmc/platform/darwin/ios/XBMCController.h
+++ b/xbmc/platform/darwin/ios/XBMCController.h
@@ -6,7 +6,7 @@
* See LICENSES/README.md for more information.
*/
-#include "input/XBMC_keysym.h"
+#include "input/keyboard/XBMC_keysym.h"
#include "windowing/XBMC_events.h"
#import "platform/darwin/ios-common/DarwinEmbedNowPlayingInfoManager.h"
diff --git a/xbmc/platform/darwin/ios/XBMCController.mm b/xbmc/platform/darwin/ios/XBMCController.mm
index 0d7d5d269f..a450151dbb 100644
--- a/xbmc/platform/darwin/ios/XBMCController.mm
+++ b/xbmc/platform/darwin/ios/XBMCController.mm
@@ -17,7 +17,9 @@
#include "application/ApplicationPlayer.h"
#include "filesystem/SpecialProtocol.h"
#include "guilib/GUIControl.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/XBMC_keysym.h"
#include "input/touch/generic/GenericTouchActionHandler.h"
#include "messaging/ApplicationMessenger.h"
#include "music/tags/MusicInfoTag.h"
diff --git a/xbmc/profiles/windows/GUIWindowSettingsProfile.cpp b/xbmc/profiles/windows/GUIWindowSettingsProfile.cpp
index 05f1c0920a..d3690adb63 100644
--- a/xbmc/profiles/windows/GUIWindowSettingsProfile.cpp
+++ b/xbmc/profiles/windows/GUIWindowSettingsProfile.cpp
@@ -17,7 +17,7 @@
#include "guilib/GUIMessage.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "profiles/Profile.h"
#include "profiles/ProfileManager.h"
diff --git a/xbmc/programs/GUIWindowPrograms.cpp b/xbmc/programs/GUIWindowPrograms.cpp
index 42abec5fd7..862bdb2249 100644
--- a/xbmc/programs/GUIWindowPrograms.cpp
+++ b/xbmc/programs/GUIWindowPrograms.cpp
@@ -17,7 +17,7 @@
#include "dialogs/GUIDialogMediaSource.h"
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
-#include "input/Key.h"
+#include "input/actions/ActionIDs.h"
#include "media/MediaLockState.h"
#include "settings/MediaSourceSettings.h"
#include "utils/StringUtils.h"
diff --git a/xbmc/pvr/windows/GUIWindowPVRChannels.cpp b/xbmc/pvr/windows/GUIWindowPVRChannels.cpp
index a002386cab..e323c319be 100644
--- a/xbmc/pvr/windows/GUIWindowPVRChannels.cpp
+++ b/xbmc/pvr/windows/GUIWindowPVRChannels.cpp
@@ -20,8 +20,8 @@
#include "guilib/GUIRadioButtonControl.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "pvr/PVRManager.h"
#include "pvr/channels/PVRChannel.h"
#include "pvr/channels/PVRChannelGroup.h"
diff --git a/xbmc/settings/Settings.cpp b/xbmc/settings/Settings.cpp
index 7f29766365..e8e28a59f9 100644
--- a/xbmc/settings/Settings.cpp
+++ b/xbmc/settings/Settings.cpp
@@ -18,7 +18,7 @@
#include "filesystem/File.h"
#include "guilib/GUIFontManager.h"
#include "guilib/StereoscopicsManager.h"
-#include "input/KeyboardLayoutManager.h"
+#include "input/keyboard/KeyboardLayoutManager.h"
#include <mutex>
#if defined(TARGET_POSIX)
@@ -436,7 +436,8 @@ void CSettings::InitializeOptionFillers()
GetSettingsManager()->RegisterSettingOptionsFiller("timezonecountries", CPosixTimezone::SettingOptionsTimezoneCountriesFiller);
GetSettingsManager()->RegisterSettingOptionsFiller("timezones", CPosixTimezone::SettingOptionsTimezonesFiller);
#endif
- GetSettingsManager()->RegisterSettingOptionsFiller("keyboardlayouts", CKeyboardLayoutManager::SettingOptionsKeyboardLayoutsFiller);
+ GetSettingsManager()->RegisterSettingOptionsFiller(
+ "keyboardlayouts", KEYBOARD::CKeyboardLayoutManager::SettingOptionsKeyboardLayoutsFiller);
GetSettingsManager()->RegisterSettingOptionsFiller(
"filechunksizes", CServicesSettings::SettingOptionsChunkSizesFiller);
GetSettingsManager()->RegisterSettingOptionsFiller(
diff --git a/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp b/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp
index 77086caf2a..50af6f9b59 100644
--- a/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp
+++ b/xbmc/settings/dialogs/GUIDialogSettingsBase.cpp
@@ -23,7 +23,8 @@
#include "guilib/GUIToggleButtonControl.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "settings/SettingControl.h"
#include "settings/lib/SettingSection.h"
#include "settings/windows/GUIControlSettings.h"
diff --git a/xbmc/settings/windows/GUIWindowSettingsCategory.cpp b/xbmc/settings/windows/GUIWindowSettingsCategory.cpp
index 18be9cd6e0..9e3168ba61 100644
--- a/xbmc/settings/windows/GUIWindowSettingsCategory.cpp
+++ b/xbmc/settings/windows/GUIWindowSettingsCategory.cpp
@@ -11,7 +11,8 @@
#include "GUIPassword.h"
#include "GUIUserMessages.h"
#include "ServiceBroker.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "settings/DisplaySettings.h"
#include "settings/Settings.h"
#include "settings/SettingsComponent.h"
diff --git a/xbmc/video/Teletext.cpp b/xbmc/video/Teletext.cpp
index aa64ec1c96..80add43ad0 100644
--- a/xbmc/video/Teletext.cpp
+++ b/xbmc/video/Teletext.cpp
@@ -18,7 +18,9 @@
#include "application/ApplicationComponents.h"
#include "application/ApplicationPlayer.h"
#include "filesystem/SpecialProtocol.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
+#include "input/keyboard/KeyIDs.h"
#include "utils/log.h"
#include "windowing/GraphicContext.h"
diff --git a/xbmc/video/dialogs/GUIDialogFullScreenInfo.cpp b/xbmc/video/dialogs/GUIDialogFullScreenInfo.cpp
index 70ebafec64..87c8b6c458 100644
--- a/xbmc/video/dialogs/GUIDialogFullScreenInfo.cpp
+++ b/xbmc/video/dialogs/GUIDialogFullScreenInfo.cpp
@@ -8,7 +8,8 @@
#include "GUIDialogFullScreenInfo.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
CGUIDialogFullScreenInfo::CGUIDialogFullScreenInfo(void)
: CGUIDialog(WINDOW_DIALOG_FULLSCREEN_INFO, "DialogFullScreenInfo.xml")
diff --git a/xbmc/video/dialogs/GUIDialogVideoInfo.cpp b/xbmc/video/dialogs/GUIDialogVideoInfo.cpp
index b3289e270a..28db2873eb 100644
--- a/xbmc/video/dialogs/GUIDialogVideoInfo.cpp
+++ b/xbmc/video/dialogs/GUIDialogVideoInfo.cpp
@@ -29,7 +29,8 @@
#include "guilib/GUIWindow.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "music/MusicDatabase.h"
#include "music/dialogs/GUIDialogMusicInfo.h"
diff --git a/xbmc/video/dialogs/GUIDialogVideoManager.cpp b/xbmc/video/dialogs/GUIDialogVideoManager.cpp
index 4beb289d4a..673ae01e1e 100644
--- a/xbmc/video/dialogs/GUIDialogVideoManager.cpp
+++ b/xbmc/video/dialogs/GUIDialogVideoManager.cpp
@@ -20,7 +20,8 @@
#include "guilib/GUIKeyboardFactory.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "playlists/PlayListTypes.h"
#include "utils/StringUtils.h"
#include "utils/URIUtils.h"
diff --git a/xbmc/video/windows/GUIWindowVideoNav.cpp b/xbmc/video/windows/GUIWindowVideoNav.cpp
index e6cf936b91..f6b6612e06 100644
--- a/xbmc/video/windows/GUIWindowVideoNav.cpp
+++ b/xbmc/video/windows/GUIWindowVideoNav.cpp
@@ -22,7 +22,8 @@
#include "guilib/GUIKeyboardFactory.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "messaging/ApplicationMessenger.h"
#include "messaging/helpers/DialogOKHelper.h"
#include "music/MusicDatabase.h"
diff --git a/xbmc/windowing/XBMC_events.h b/xbmc/windowing/XBMC_events.h
index 817425fa6f..9468863a4e 100644
--- a/xbmc/windowing/XBMC_events.h
+++ b/xbmc/windowing/XBMC_events.h
@@ -9,7 +9,7 @@
#pragma once
#include "Resolution.h"
-#include "input/XBMC_keyboard.h"
+#include "input/keyboard/XBMC_keyboard.h"
/* Event enumerations */
typedef enum
diff --git a/xbmc/windowing/android/WinEventsAndroid.cpp b/xbmc/windowing/android/WinEventsAndroid.cpp
index a3849023a8..d74c43b0fe 100644
--- a/xbmc/windowing/android/WinEventsAndroid.cpp
+++ b/xbmc/windowing/android/WinEventsAndroid.cpp
@@ -13,7 +13,7 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "input/InputManager.h"
-#include "input/XBMC_vkeys.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "utils/log.h"
#include <mutex>
diff --git a/xbmc/windowing/ios/WinEventsIOS.mm b/xbmc/windowing/ios/WinEventsIOS.mm
index ec416a6042..b7844a8a34 100644
--- a/xbmc/windowing/ios/WinEventsIOS.mm
+++ b/xbmc/windowing/ios/WinEventsIOS.mm
@@ -11,7 +11,7 @@
#include "application/AppInboundProtocol.h"
#include "guilib/GUIWindowManager.h"
#include "input/InputManager.h"
-#include "input/XBMC_vkeys.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "threads/CriticalSection.h"
#include "utils/log.h"
diff --git a/xbmc/windowing/tvos/WinEventsTVOS.mm b/xbmc/windowing/tvos/WinEventsTVOS.mm
index 67e9e5446e..a16c4f0d1f 100644
--- a/xbmc/windowing/tvos/WinEventsTVOS.mm
+++ b/xbmc/windowing/tvos/WinEventsTVOS.mm
@@ -12,7 +12,7 @@
#include "application/AppInboundProtocol.h"
#include "guilib/GUIWindowManager.h"
#include "input/InputManager.h"
-#include "input/XBMC_vkeys.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "threads/CriticalSection.h"
#include "utils/log.h"
diff --git a/xbmc/windowing/wayland/InputProcessorKeyboard.h b/xbmc/windowing/wayland/InputProcessorKeyboard.h
index bc385c35c0..5a20de79d7 100644
--- a/xbmc/windowing/wayland/InputProcessorKeyboard.h
+++ b/xbmc/windowing/wayland/InputProcessorKeyboard.h
@@ -10,7 +10,7 @@
#include "Seat.h"
#include "XkbcommonKeymap.h"
-#include "input/XBMC_keysym.h"
+#include "input/keyboard/XBMC_keysym.h"
#include "threads/Timer.h"
#include "windowing/XBMC_events.h"
diff --git a/xbmc/windowing/wayland/InputProcessorPointer.h b/xbmc/windowing/wayland/InputProcessorPointer.h
index ce44601a7d..dd5501ab7d 100644
--- a/xbmc/windowing/wayland/InputProcessorPointer.h
+++ b/xbmc/windowing/wayland/InputProcessorPointer.h
@@ -9,7 +9,7 @@
#pragma once
#include "Seat.h"
-#include "input/XBMC_keysym.h"
+#include "input/keyboard/XBMC_keysym.h"
#include "utils/Geometry.h"
#include "windowing/XBMC_events.h"
diff --git a/xbmc/windowing/wayland/XkbcommonKeymap.h b/xbmc/windowing/wayland/XkbcommonKeymap.h
index 6a48ea402a..b1c00b3aa2 100644
--- a/xbmc/windowing/wayland/XkbcommonKeymap.h
+++ b/xbmc/windowing/wayland/XkbcommonKeymap.h
@@ -8,7 +8,7 @@
#pragma once
-#include "input/XBMC_keysym.h"
+#include "input/keyboard/XBMC_keysym.h"
#include <cstdint>
#include <memory>
diff --git a/xbmc/windowing/windows/WinEventsWin32.cpp b/xbmc/windowing/windows/WinEventsWin32.cpp
index b4c5b350bf..f419c6d58b 100644
--- a/xbmc/windowing/windows/WinEventsWin32.cpp
+++ b/xbmc/windowing/windows/WinEventsWin32.cpp
@@ -22,6 +22,9 @@
#include "guilib/GUIControl.h" // for EVENT_RESULT
#include "guilib/GUIWindowManager.h"
#include "input/InputManager.h"
+#include "input/actions/Action.h"
+#include "input/keyboard/Key.h"
+#include "input/keyboard/KeyIDs.h"
#include "input/mouse/MouseStat.h"
#include "input/touch/generic/GenericTouchActionHandler.h"
#include "input/touch/generic/GenericTouchSwipeDetector.h"
diff --git a/xbmc/windowing/windows/WinKeyMap.h b/xbmc/windowing/windows/WinKeyMap.h
index c163747581..af5bcab0c5 100644
--- a/xbmc/windowing/windows/WinKeyMap.h
+++ b/xbmc/windowing/windows/WinKeyMap.h
@@ -10,8 +10,8 @@
#include "ServiceBroker.h"
#include "Util.h"
-#include "input/XBMC_keysym.h"
-#include "input/XBMC_vkeys.h"
+#include "input/keyboard/XBMC_keysym.h"
+#include "input/keyboard/XBMC_vkeys.h"
#include "settings/AdvancedSettings.h"
#include "settings/SettingsComponent.h"
diff --git a/xbmc/windows/GUIWindowFileManager.cpp b/xbmc/windows/GUIWindowFileManager.cpp
index 59ba24245f..5fc4bb9aa1 100644
--- a/xbmc/windows/GUIWindowFileManager.cpp
+++ b/xbmc/windows/GUIWindowFileManager.cpp
@@ -34,6 +34,8 @@
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
#include "input/InputManager.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "interfaces/generic/ScriptInvocationManager.h"
#include "messaging/ApplicationMessenger.h"
#include "messaging/helpers/DialogOKHelper.h"
diff --git a/xbmc/windows/GUIWindowLoginScreen.cpp b/xbmc/windows/GUIWindowLoginScreen.cpp
index b00c2ae853..04eb5f9041 100644
--- a/xbmc/windows/GUIWindowLoginScreen.cpp
+++ b/xbmc/windows/GUIWindowLoginScreen.cpp
@@ -17,7 +17,8 @@
#include "guilib/GUIMessage.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/LocalizeStrings.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
+#include "input/actions/ActionIDs.h"
#include "interfaces/builtins/Builtins.h"
#include "messaging/ApplicationMessenger.h"
#include "messaging/helpers/DialogOKHelper.h"
diff --git a/xbmc/windows/GUIWindowStartup.cpp b/xbmc/windows/GUIWindowStartup.cpp
index ffa3d79d7a..d15c6a4316 100644
--- a/xbmc/windows/GUIWindowStartup.cpp
+++ b/xbmc/windows/GUIWindowStartup.cpp
@@ -12,7 +12,7 @@
#include "guilib/GUIComponent.h"
#include "guilib/GUIWindowManager.h"
#include "guilib/WindowIDs.h"
-#include "input/Key.h"
+#include "input/actions/Action.h"
CGUIWindowStartup::CGUIWindowStartup(void)
: CGUIWindow(WINDOW_STARTUP_ANIM, "Startup.xml")