mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-26 10:45:37 +08:00
refs #265 Linux raw keyboard mappings
This commit is contained in:
100
src/blackinput/linux/keymapping_linux.cpp
Normal file
100
src/blackinput/linux/keymapping_linux.cpp
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
/* Copyright (C) 2013 VATSIM Community / contributors
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
#include "keymapping_linux.h"
|
||||||
|
#include <QDebug>
|
||||||
|
#include <linux/input.h>
|
||||||
|
|
||||||
|
using namespace BlackMisc::Hardware;
|
||||||
|
|
||||||
|
namespace BlackInput
|
||||||
|
{
|
||||||
|
Qt::Key CKeyMappingLinux::convertToKey(int virtualKey)
|
||||||
|
{
|
||||||
|
switch (virtualKey)
|
||||||
|
{
|
||||||
|
case KEY_0: return Qt::Key_0; break;
|
||||||
|
case KEY_1: return Qt::Key_1; break;
|
||||||
|
case KEY_2: return Qt::Key_2; break;
|
||||||
|
case KEY_3: return Qt::Key_3; break;
|
||||||
|
case KEY_4: return Qt::Key_4; break;
|
||||||
|
case KEY_5: return Qt::Key_5; break;
|
||||||
|
case KEY_6: return Qt::Key_6; break;
|
||||||
|
case KEY_7: return Qt::Key_7; break;
|
||||||
|
case KEY_8: return Qt::Key_8; break;
|
||||||
|
case KEY_9: return Qt::Key_9; break;
|
||||||
|
case KEY_A: return Qt::Key_A; break;
|
||||||
|
case KEY_B: return Qt::Key_B; break;
|
||||||
|
case KEY_C: return Qt::Key_C; break;
|
||||||
|
case KEY_D: return Qt::Key_D; break;
|
||||||
|
case KEY_E: return Qt::Key_E; break;
|
||||||
|
case KEY_F: return Qt::Key_F; break;
|
||||||
|
case KEY_G: return Qt::Key_G; break;
|
||||||
|
case KEY_H: return Qt::Key_H; break;
|
||||||
|
case KEY_I: return Qt::Key_I; break;
|
||||||
|
case KEY_J: return Qt::Key_J; break;
|
||||||
|
case KEY_K: return Qt::Key_K; break;
|
||||||
|
case KEY_L: return Qt::Key_L; break;
|
||||||
|
case KEY_M: return Qt::Key_M; break;
|
||||||
|
case KEY_N: return Qt::Key_N; break;
|
||||||
|
case KEY_O: return Qt::Key_O; break;
|
||||||
|
case KEY_P: return Qt::Key_P; break;
|
||||||
|
case KEY_Q: return Qt::Key_Q; break;
|
||||||
|
case KEY_R: return Qt::Key_R; break;
|
||||||
|
case KEY_S: return Qt::Key_S; break;
|
||||||
|
case KEY_T: return Qt::Key_T; break;
|
||||||
|
case KEY_U: return Qt::Key_U; break;
|
||||||
|
case KEY_V: return Qt::Key_V; break;
|
||||||
|
case KEY_W: return Qt::Key_W; break;
|
||||||
|
case KEY_X: return Qt::Key_X; break;
|
||||||
|
case KEY_Y: return Qt::Key_Y; break;
|
||||||
|
case KEY_Z: return Qt::Key_Z; break;
|
||||||
|
default: return Qt::Key_unknown; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CKeyboardKey::Modifier CKeyMappingLinux::convertToModifier(int virtualKey)
|
||||||
|
{
|
||||||
|
switch (virtualKey)
|
||||||
|
{
|
||||||
|
case KEY_LEFTSHIFT: return CKeyboardKey::ModifierShiftLeft; break;
|
||||||
|
case KEY_RIGHTSHIFT: return CKeyboardKey::ModifierShiftRight; break;
|
||||||
|
case KEY_LEFTCTRL: return CKeyboardKey::ModifierCtrlLeft; break;
|
||||||
|
case KEY_RIGHTCTRL: return CKeyboardKey::ModifierCtrlRight; break;
|
||||||
|
case KEY_LEFTALT: return CKeyboardKey::ModifierAltLeft; break;
|
||||||
|
case KEY_RIGHTALT: return CKeyboardKey::ModifierAltRight; break;
|
||||||
|
default: return CKeyboardKey::ModifierNone; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CKeyMappingLinux::isModifier(int virtualKey)
|
||||||
|
{
|
||||||
|
switch (virtualKey)
|
||||||
|
{
|
||||||
|
case KEY_LEFTSHIFT:
|
||||||
|
case KEY_RIGHTSHIFT:
|
||||||
|
case KEY_LEFTCTRL:
|
||||||
|
case KEY_RIGHTCTRL:
|
||||||
|
case KEY_LEFTALT:
|
||||||
|
case KEY_RIGHTALT:
|
||||||
|
return true;
|
||||||
|
default: return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool CKeyMappingLinux::isMouseButton(int virtualKey)
|
||||||
|
{
|
||||||
|
switch (virtualKey)
|
||||||
|
{
|
||||||
|
case BTN_LEFT:
|
||||||
|
case BTN_RIGHT:
|
||||||
|
case BTN_MIDDLE:
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace BlackInput
|
||||||
48
src/blackinput/linux/keymapping_linux.h
Normal file
48
src/blackinput/linux/keymapping_linux.h
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
/* Copyright (C) 2013 VATSIM Community / contributors
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef BLACKINPUT_KEYMAPPING_LINUX_H
|
||||||
|
#define BLACKINPUT_KEYMAPPING_LINUX_H
|
||||||
|
|
||||||
|
#include "blackmisc/hwkeyboardkey.h"
|
||||||
|
|
||||||
|
namespace BlackInput
|
||||||
|
{
|
||||||
|
//! \brief This class provides methods to map between windows virtual keys and CKeyboardKey
|
||||||
|
class CKeyMappingLinux
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
/*!
|
||||||
|
* \brief Converts a set of windows virtual keys to a CKeySet object
|
||||||
|
* \param virtualKey
|
||||||
|
* \return
|
||||||
|
*/
|
||||||
|
static BlackMisc::Hardware::CKeyboardKey::Modifier convertToModifier(int virtualKey);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Convert to Qt key
|
||||||
|
* \param virtualKey
|
||||||
|
* \return
|
||||||
|
*/
|
||||||
|
static Qt::Key convertToKey(int virtualKey);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Checks if its a modifier key
|
||||||
|
* \param virtualKey
|
||||||
|
* \return
|
||||||
|
*/
|
||||||
|
static bool isModifier(int virtualKey);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \brief Checks if its a mouse button
|
||||||
|
* \param virtualKey
|
||||||
|
* \return
|
||||||
|
*/
|
||||||
|
static bool isMouseButton(int virtualKey);
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace BlackInput
|
||||||
|
#endif // guard
|
||||||
@@ -91,4 +91,4 @@ namespace BlackInput
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace BlackCore
|
} // namespace BlackInput
|
||||||
|
|||||||
Reference in New Issue
Block a user