Add minor changes according to the review

This commit is contained in:
Lukas Dürrenberger 2020-01-21 21:19:40 +01:00
parent 8b23ac1c48
commit 4ac3033d1a
4 changed files with 684 additions and 684 deletions

View file

@ -29,11 +29,12 @@
// Headers // Headers
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
#include <SFML/Window/Export.hpp> #include <SFML/Window/Export.hpp>
#include <SFML/System/String.hpp>
namespace sf namespace sf
{ {
class String;
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Give access to the real-time state of the keyboard /// \brief Give access to the real-time state of the keyboard
/// ///
@ -169,14 +170,14 @@ public:
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// \brief Scancodes /// \brief Scancodes
/// ///
/// The enumerators are bound to a physical key and do *not* depend /// The enumerators are bound to a physical key and do not depend on
/// on the keyboard layout used by the operating system. Usually, the AT-101 /// the keyboard layout used by the operating system. Usually, the AT-101
/// keyboard can be used as reference for the physical position of the keys. /// keyboard can be used as reference for the physical position of the keys.
/// ///
/// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page /// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page
/// of Universal Serial Bus (USB): HID Usage Tables, v1.12. /// of Universal Serial Bus (USB): HID Usage Tables, v1.12.
/// ///
/// \todo When porting this for SFML 3, remove the `s` prefix and use /// \todo When porting this for SFML 3, remove the `Scan` prefix and use
/// enum class. /// enum class.
/// ///
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
@ -219,10 +220,9 @@ public:
ScanNum8, ///< Keyboard 8 and * key ScanNum8, ///< Keyboard 8 and * key
ScanNum9, ///< Keyboard 9 and ) key ScanNum9, ///< Keyboard 9 and ) key
ScanNum0, ///< Keyboard 0 and ) key ScanNum0, ///< Keyboard 0 and ) key
ScanEnter, ///< Keyboard Return (ENTER) key ScanEnter, ///< Keyboard Enter/Return key
ScanEscape, ///< Keyboard Escape key ScanEscape, ///< Keyboard Escape key
ScanBackspace, ///< Keyboard Backspace key ScanBackspace, ///< Keyboard Backspace key
// TODO above it's BackSpace, but is it correct? What do we use here?
ScanTab, ///< Keyboard Tab key ScanTab, ///< Keyboard Tab key
ScanSpace, ///< Keyboard Space key ScanSpace, ///< Keyboard Space key
ScanHyphen, ///< Keyboard - and _ key ScanHyphen, ///< Keyboard - and _ key
@ -230,15 +230,14 @@ public:
ScanLBracket, ///< Keyboard [ and { key ScanLBracket, ///< Keyboard [ and { key
ScanRBracket, ///< Keyboard ] and } key ScanRBracket, ///< Keyboard ] and } key
ScanBackslash, ///< Keyboard \ and | key ScanBackslash, ///< Keyboard \ and | key
// TODO capitalisation
ScanDash, ///< Keyboard Non-US # and ~ ScanDash, ///< Keyboard Non-US # and ~
// TODO hyphen vs minus vs dash
ScanSemicolon, ///< Keyboard ; and : key ScanSemicolon, ///< Keyboard ; and : key
// TODO capitalisation
ScanQuote, ///< Keyboard ' and " key ScanQuote, ///< Keyboard ' and " key
ScanGraveAccent, ///< Keyboard ` and ~ key ScanGraveAccent, ///< Keyboard ` and ~ key
ScanComma, ///< Keyboard , and < key ScanComma, ///< Keyboard , and < key
ScanPeriod, ///< Keyboard . and > key ScanPeriod, ///< Keyboard . and > key
ScanForwardSlash, ///< Keyboard / and ? key ScanSlash, ///< Keyboard / and ? key
ScanF1, ///< Keyboard F1 key ScanF1, ///< Keyboard F1 key
ScanF2, ///< Keyboard F2 key ScanF2, ///< Keyboard F2 key
ScanF3, ///< Keyboard F3 key ScanF3, ///< Keyboard F3 key
@ -273,8 +272,8 @@ public:
ScanMultiply, ///< Keypad * key ScanMultiply, ///< Keypad * key
ScanMinus, ///< Keypad - key ScanMinus, ///< Keypad - key
ScanPlus, ///< Keypad + key ScanPlus, ///< Keypad + key
ScanPadEquals, ///< keypad = key, probably Mac only ScanNumpadEquals, ///< keypad = key, probably Mac only
ScanReturn, ///< Keypad Enter (return) key ScanNumpadEnter, ///< Keypad Enter/Return key
ScanDecimal, ///< Keypad . and Delete key ScanDecimal, ///< Keypad . and Delete key
ScanNumpad1, ///< Keypad 1 and End key ScanNumpad1, ///< Keypad 1 and End key
ScanNumpad2, ///< Keypad 2 and Down Arrow key ScanNumpad2, ///< Keypad 2 and Down Arrow key
@ -381,7 +380,7 @@ public:
/// "Left Command" on macOS. /// "Left Command" on macOS.
/// ///
/// The current keyboard layout set by the operating system is used to /// The current keyboard layout set by the operating system is used to
/// interpret the scancode: for example, sf::Keyboard::SemiColon is /// interpret the scancode: for example, sf::Keyboard::Semicolon is
/// mapped to ";" for layout and to "é" for others. /// mapped to ";" for layout and to "é" for others.
/// ///
/// \return The localized description of the code /// \return The localized description of the code

View file

@ -27,6 +27,7 @@
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
#include <SFML/Window/Keyboard.hpp> #include <SFML/Window/Keyboard.hpp>
#include <SFML/Window/InputImpl.hpp> #include <SFML/Window/InputImpl.hpp>
#include <SFML/System/String.hpp>
namespace sf namespace sf

View file

@ -280,8 +280,8 @@ private:
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
IOHIDManagerRef m_manager; ///< Underlying HID Manager IOHIDManagerRef m_manager; ///< Underlying HID Manager
IOHIDElements m_keys[Keyboard::ScanCodeCount]; ///< All the keys on any connected keyboard IOHIDElements m_keys[Keyboard::ScanCodeCount]; ///< All the keys on any connected keyboard
Keyboard::Scancode m_mapping[Keyboard::KeyCount]; ///< Mapping from Key to Scancode Keyboard::Scancode m_keyToScancodeMapping[Keyboard::KeyCount]; ///< Mapping from Key to Scancode
Keyboard::Key m_gnippam[Keyboard::ScanCodeCount]; ///< Mapping from Scancode to Key Keyboard::Key m_scancodeToKeyMapping[Keyboard::ScanCodeCount]; ///< Mapping from Scancode to Key
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
/// m_keys' index corresponds to sf::Keyboard::Scancode enum. /// m_keys' index corresponds to sf::Keyboard::Scancode enum.

View file

@ -111,7 +111,7 @@ bool HIDInputManager::isKeyPressed(Keyboard::Scancode code)
Keyboard::Key HIDInputManager::localize(Keyboard::Scancode code) Keyboard::Key HIDInputManager::localize(Keyboard::Scancode code)
{ {
// TODO ensure mapping is still valid // TODO ensure mapping is still valid
return m_gnippam[code]; return m_scancodeToKeyMapping[code];
} }
@ -119,7 +119,7 @@ Keyboard::Key HIDInputManager::localize(Keyboard::Scancode code)
Keyboard::Scancode HIDInputManager::unlocalize(Keyboard::Key key) Keyboard::Scancode HIDInputManager::unlocalize(Keyboard::Key key)
{ {
// TODO ensure mapping is still valid // TODO ensure mapping is still valid
return m_mapping[key]; return m_keyToScancodeMapping[key];
} }
@ -177,8 +177,8 @@ String HIDInputManager::localizedRepresentation(Keyboard::Scancode code)
case sf::Keyboard::ScanMultiply: return "Multiply (Numpad)"; case sf::Keyboard::ScanMultiply: return "Multiply (Numpad)";
case sf::Keyboard::ScanMinus: return "Minux (Numpad)"; case sf::Keyboard::ScanMinus: return "Minux (Numpad)";
case sf::Keyboard::ScanPlus: return "Plus (Numpad)"; case sf::Keyboard::ScanPlus: return "Plus (Numpad)";
case sf::Keyboard::ScanPadEquals: return "Equals (Numpad)"; case sf::Keyboard::ScanNumpadEquals: return "Equals (Numpad)";
case sf::Keyboard::ScanReturn: return "Return (Numpad)"; case sf::Keyboard::ScanNumpadEnter: return "Enter (Numpad)";
case sf::Keyboard::ScanDecimal: return "Decimal (Numpad)"; case sf::Keyboard::ScanDecimal: return "Decimal (Numpad)";
case sf::Keyboard::ScanNumpad0: return "0 (Numpad)"; case sf::Keyboard::ScanNumpad0: return "0 (Numpad)";
@ -329,9 +329,9 @@ void HIDInputManager::buildMappings()
{ {
// Reset the mappings // Reset the mappings
for (int i = 0; i < Keyboard::KeyCount; ++i) for (int i = 0; i < Keyboard::KeyCount; ++i)
m_mapping[i] = Keyboard::ScanUnknown; m_keyToScancodeMapping[i] = Keyboard::ScanUnknown;
for (int i = 0; i < Keyboard::ScanCodeCount; ++i) for (int i = 0; i < Keyboard::ScanCodeCount; ++i)
m_gnippam[i] = Keyboard::Unknown; m_scancodeToKeyMapping[i] = Keyboard::Unknown;
// Get the current keyboard layout // Get the current keyboard layout
TISInputSourceRef tis = TISCopyCurrentKeyboardLayoutInputSource(); TISInputSourceRef tis = TISCopyCurrentKeyboardLayoutInputSource();
@ -380,8 +380,8 @@ void HIDInputManager::buildMappings()
if (code == Keyboard::Unknown) continue; if (code == Keyboard::Unknown) continue;
// Register the bi-mapping // Register the bi-mapping
m_mapping[code] = scan; m_keyToScancodeMapping[code] = scan;
m_gnippam[scan] = code; m_scancodeToKeyMapping[scan] = code;
} }
CFRelease(tis); CFRelease(tis);
@ -523,7 +523,7 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage)
case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::ScanGraveAccent; case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::ScanGraveAccent;
case kHIDUsage_KeyboardComma: return sf::Keyboard::ScanComma; case kHIDUsage_KeyboardComma: return sf::Keyboard::ScanComma;
case kHIDUsage_KeyboardPeriod: return sf::Keyboard::ScanPeriod; case kHIDUsage_KeyboardPeriod: return sf::Keyboard::ScanPeriod;
case kHIDUsage_KeyboardSlash: return sf::Keyboard::ScanForwardSlash; case kHIDUsage_KeyboardSlash: return sf::Keyboard::ScanSlash;
case kHIDUsage_KeyboardCapsLock: return sf::Keyboard::ScanCapsLock; case kHIDUsage_KeyboardCapsLock: return sf::Keyboard::ScanCapsLock;
case kHIDUsage_KeyboardF1: return sf::Keyboard::ScanF1; case kHIDUsage_KeyboardF1: return sf::Keyboard::ScanF1;
@ -559,7 +559,7 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage)
case kHIDUsage_KeypadAsterisk: return sf::Keyboard::ScanMultiply; case kHIDUsage_KeypadAsterisk: return sf::Keyboard::ScanMultiply;
case kHIDUsage_KeypadHyphen: return sf::Keyboard::ScanMinus; case kHIDUsage_KeypadHyphen: return sf::Keyboard::ScanMinus;
case kHIDUsage_KeypadPlus: return sf::Keyboard::ScanPlus; case kHIDUsage_KeypadPlus: return sf::Keyboard::ScanPlus;
case kHIDUsage_KeypadEnter: return sf::Keyboard::ScanReturn; case kHIDUsage_KeypadEnter: return sf::Keyboard::ScanEnter;
case kHIDUsage_Keypad1: return sf::Keyboard::ScanNumpad1; case kHIDUsage_Keypad1: return sf::Keyboard::ScanNumpad1;
case kHIDUsage_Keypad2: return sf::Keyboard::ScanNumpad2; case kHIDUsage_Keypad2: return sf::Keyboard::ScanNumpad2;
@ -576,7 +576,7 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage)
case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::ScanReverseSolidus; case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::ScanReverseSolidus;
case kHIDUsage_KeyboardApplication: return sf::Keyboard::ScanApplication; case kHIDUsage_KeyboardApplication: return sf::Keyboard::ScanApplication;
case kHIDUsage_KeyboardPower: return sf::Keyboard::ScanUnknown; case kHIDUsage_KeyboardPower: return sf::Keyboard::ScanUnknown;
case kHIDUsage_KeypadEqualSign: return sf::Keyboard::ScanPadEquals; case kHIDUsage_KeypadEqualSign: return sf::Keyboard::ScanNumpadEquals;
case kHIDUsage_KeyboardF13: return sf::Keyboard::ScanF13; case kHIDUsage_KeyboardF13: return sf::Keyboard::ScanF13;
case kHIDUsage_KeyboardF14: return sf::Keyboard::ScanF14; case kHIDUsage_KeyboardF14: return sf::Keyboard::ScanF14;
@ -1011,7 +1011,7 @@ Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode)
case 0x32: return sf::Keyboard::ScanGraveAccent; case 0x32: return sf::Keyboard::ScanGraveAccent;
case 0x2b: return sf::Keyboard::ScanComma; case 0x2b: return sf::Keyboard::ScanComma;
case 0x2f: return sf::Keyboard::ScanPeriod; case 0x2f: return sf::Keyboard::ScanPeriod;
case 0x2c: return sf::Keyboard::ScanForwardSlash; case 0x2c: return sf::Keyboard::ScanSlash;
case 0x7a: return sf::Keyboard::ScanF1; case 0x7a: return sf::Keyboard::ScanF1;
case 0x78: return sf::Keyboard::ScanF2; case 0x78: return sf::Keyboard::ScanF2;
@ -1054,8 +1054,8 @@ Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode)
case 0x43: return sf::Keyboard::ScanMultiply; case 0x43: return sf::Keyboard::ScanMultiply;
case 0x4e: return sf::Keyboard::ScanMinus; case 0x4e: return sf::Keyboard::ScanMinus;
case 0x45: return sf::Keyboard::ScanPlus; case 0x45: return sf::Keyboard::ScanPlus;
case 0x51: return sf::Keyboard::ScanPadEquals; case 0x51: return sf::Keyboard::ScanNumpadEquals;
case 0x4c: return sf::Keyboard::ScanReturn; case 0x4c: return sf::Keyboard::ScanNumpadEnter;
case 0x41: return sf::Keyboard::ScanDecimal; case 0x41: return sf::Keyboard::ScanDecimal;
case 0x53: return sf::Keyboard::ScanNumpad1; case 0x53: return sf::Keyboard::ScanNumpad1;
@ -1167,7 +1167,7 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code)
case sf::Keyboard::ScanGraveAccent: return 0x32; case sf::Keyboard::ScanGraveAccent: return 0x32;
case sf::Keyboard::ScanComma: return 0x2b; case sf::Keyboard::ScanComma: return 0x2b;
case sf::Keyboard::ScanPeriod: return 0x2f; case sf::Keyboard::ScanPeriod: return 0x2f;
case sf::Keyboard::ScanForwardSlash: return 0x2c; case sf::Keyboard::ScanSlash: return 0x2c;
case sf::Keyboard::ScanF1: return 0x7a; case sf::Keyboard::ScanF1: return 0x7a;
case sf::Keyboard::ScanF2: return 0x78; case sf::Keyboard::ScanF2: return 0x78;
@ -1209,8 +1209,8 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code)
case sf::Keyboard::ScanMultiply: return 0x43; case sf::Keyboard::ScanMultiply: return 0x43;
case sf::Keyboard::ScanMinus: return 0x4e; case sf::Keyboard::ScanMinus: return 0x4e;
case sf::Keyboard::ScanPlus: return 0x45; case sf::Keyboard::ScanPlus: return 0x45;
case sf::Keyboard::ScanPadEquals: return 0x51; case sf::Keyboard::ScanNumpadEquals: return 0x51;
case sf::Keyboard::ScanReturn: return 0x4c; case sf::Keyboard::ScanNumpadEnter: return 0x4c;
case sf::Keyboard::ScanDecimal: return 0x41; case sf::Keyboard::ScanDecimal: return 0x41;
case sf::Keyboard::ScanNumpad1: return 0x53; case sf::Keyboard::ScanNumpad1: return 0x53;