From e12297283292827a85f17d954370a535fa42ff33 Mon Sep 17 00:00:00 2001 From: Marco Antognini Date: Mon, 27 Mar 2017 00:36:59 +0200 Subject: [PATCH 01/36] Add new API for scancodes --- include/SFML/Window/Event.hpp | 11 +- include/SFML/Window/Keyboard.hpp | 224 +++++++++++++++++++++++++- src/SFML/Window/Android/InputImpl.hpp | 32 +++- src/SFML/Window/Keyboard.cpp | 23 +++ src/SFML/Window/OSX/InputImpl.hpp | 32 +++- src/SFML/Window/Unix/InputImpl.hpp | 32 +++- src/SFML/Window/Win32/InputImpl.hpp | 32 +++- src/SFML/Window/iOS/InputImpl.hpp | 32 +++- 8 files changed, 375 insertions(+), 43 deletions(-) diff --git a/include/SFML/Window/Event.hpp b/include/SFML/Window/Event.hpp index 53b37d95..84d8df3b 100644 --- a/include/SFML/Window/Event.hpp +++ b/include/SFML/Window/Event.hpp @@ -61,11 +61,12 @@ public: //////////////////////////////////////////////////////////// struct KeyEvent { - Keyboard::Key code; //!< Code of the key that has been pressed - bool alt; //!< Is the Alt key pressed? - bool control; //!< Is the Control key pressed? - bool shift; //!< Is the Shift key pressed? - bool system; //!< Is the System key pressed? + Keyboard::Key code; //!< Code of the key that has been pressed + Keyboard::Scancode scancode; //!< Physical code of the key that has been pressed + bool alt; //!< Is the Alt key pressed? + bool control; //!< Is the Control key pressed? + bool shift; //!< Is the Shift key pressed? + bool system; //!< Is the System key pressed? }; //////////////////////////////////////////////////////////// diff --git a/include/SFML/Window/Keyboard.hpp b/include/SFML/Window/Keyboard.hpp index 92ea8df8..7ac3fb8e 100644 --- a/include/SFML/Window/Keyboard.hpp +++ b/include/SFML/Window/Keyboard.hpp @@ -29,6 +29,7 @@ // Headers //////////////////////////////////////////////////////////// #include +#include namespace sf @@ -44,6 +45,10 @@ public: //////////////////////////////////////////////////////////// /// \brief Key codes /// + /// The enumerators refer to the "localized" key; i.e. depending + /// on the layout set by the operating system, a key can be mapped + /// to `Y` or `Z`. + /// //////////////////////////////////////////////////////////// enum Key { @@ -161,6 +166,158 @@ public: Return = Enter //!< \deprecated Use Enter instead }; + //////////////////////////////////////////////////////////// + /// \brief Scancodes + /// + /// The enumerators are bound to a physical key and do *not* depend + /// on 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. + /// + /// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page + /// of Universal Serial Bus (USB): HID Usage Tables, v1.12. + /// + /// \todo When porting this for SFML 3, remove the `s` prefix and use + /// enum class. + /// + //////////////////////////////////////////////////////////// + enum Scancode + { + sUnknown = -1, ///< Represents any scancode not present in this enum + sA = 0, ///< Keyboard a and A key + sB, ///< Keyboard b and B key + sC, ///< Keyboard c and C key + sD, ///< Keyboard d and D key + sE, ///< Keyboard e and E key + sF, ///< Keyboard f and F key + sG, ///< Keyboard g and G key + sH, ///< Keyboard h and H key + sI, ///< Keyboard i and I key + sJ, ///< Keyboard j and J key + sK, ///< Keyboard k and K key + sL, ///< Keyboard l and L key + sM, ///< Keyboard m and M key + sN, ///< Keyboard n and N key + sO, ///< Keyboard o and O key + sP, ///< Keyboard p and P key + sQ, ///< Keyboard q and Q key + sR, ///< Keyboard r and R key + sS, ///< Keyboard s and S key + sT, ///< Keyboard t and T key + sU, ///< Keyboard u and U key + sV, ///< Keyboard v and V key + sW, ///< Keyboard w and W key + sX, ///< Keyboard x and X key + sY, ///< Keyboard y and Y key + sZ, ///< Keyboard z and Z key + sNum1, ///< Keyboard 1 and ! key + sNum2, ///< Keyboard 2 and @ key + sNum3, ///< Keyboard 3 and # key + sNum4, ///< Keyboard 4 and $ key + sNum5, ///< Keyboard 5 and % key + sNum6, ///< Keyboard 6 and ^ key + sNum7, ///< Keyboard 7 and & key + sNum8, ///< Keyboard 8 and * key + sNum9, ///< Keyboard 9 and ) key + sNum0, ///< Keyboard 0 and ) key + sEnter, ///< Keyboard Return (ENTER) key + sEscape, ///< Keyboard Escape key + sBackspace, ///< Keyboard Backspace key + // TODO above it's BackSpace, but is it correct? What do we use here? + sTab, ///< Keyboard Tab key + sSpace, ///< Keyboard Space key + sHyphen, ///< Keyboard - and _ key + sEquals, ///< Keyboard = and + + sLBracket, ///< Keyboard [ and { key + sRBracket, ///< Keyboard ] and } key + sBackslash, ///< Keyboard \ and | key + // TODO capitalisation + sDash, ///< Keyboard Non-US # and ~ + sSemicolon, ///< Keyboard ; and : key + // TODO capitalisation + sQuote, ///< Keyboard ' and " key + sGraveAccent, ///< Keyboard ` and ~ key + sComma, ///< Keyboard , and < key + sPeriod, ///< Keyboard . and > key + sForwardSlash, ///< Keyboard / and ? key + sF1, ///< Keyboard F1 key + sF2, ///< Keyboard F2 key + sF3, ///< Keyboard F3 key + sF4, ///< Keyboard F4 key + sF5, ///< Keyboard F5 key + sF6, ///< Keyboard F6 key + sF7, ///< Keyboard F7 key + sF8, ///< Keyboard F8 key + sF9, ///< Keyboard F9 key + sF10, ///< Keyboard F10 key + sF11, ///< Keyboard F11 key + sF12, ///< Keyboard F12 key + sF13, ///< Keyboard F13 key + sF14, ///< Keyboard F14 key + sF15, ///< Keyboard F15 key + sCapsLock, ///< Keyboard Caps Lock key + sPrintScreen, ///< Keyboard Print Screen key + sScrollLock, ///< Keyboard Scroll Lock key + sPause, ///< Keyboard Pause key + sInsert, ///< Keyboard Insert key + sHome, ///< Keyboard Home key + sPageUp, ///< Keyboard Page Up key + sDelete, ///< Keyboard Delete Forward key + sEnd, ///< Keyboard End key + sPageDown, ///< Keyboard Page Down key + sRight, ///< Keyboard Right Arrow key + sLeft, ///< Keyboard Left Arrow key + sDown, ///< Keyboard Down Arrow key + sUp, ///< Keyboard Up Arrow key + sNumLock, ///< Keypad Num Lock and Clear key + sDivide, ///< Keypad / key + sMultiply, ///< Keypad * key + sMinus, ///< Keypad - key + sPlus, ///< Keypad + key + sPadEquals, ///< keypad = key, probably Mac only + sReturn, ///< Keypad Enter (return) key + sDecimal, ///< Keypad . and Delete key + sNumpad1, ///< Keypad 1 and End key + sNumpad2, ///< Keypad 2 and Down Arrow key + sNumpad3, ///< Keypad 3 and Page Down key + sNumpad4, ///< Keypad 4 and Left Arrow key + sNumpad5, ///< Keypad 5 key + sNumpad6, ///< Keypad 6 and Right Arrow key + sNumpad7, ///< Keypad 7 and Home key + sNumpad8, ///< Keypad 8 and Up Arrow key + sNumpad9, ///< Keypad 9 and Page Up key + sNumpad0, ///< Keypad 0 and Insert key + sReverseSolidus, ///< Keyboard Non-US \ and | key + // FIXME what is this one? Might need better name. The doc says: + // - Typically near the Left-Shift key in AT-102 implementations. + // - Typical language mappings: Belg:<\> FrCa:«°» Dan:<\> Dutch:]|[ Fren:<> Ger:<|> Ital:<> LatAm:<> Nor:<> Span:<> Swed:<|> Swiss:<\> UK:\| Brazil: \|. + // What is the difference with "regular" \ and | key? + sApplication, ///< Keyboard Application key + sExecute, ///< Keyboard Execute key + sHelp, ///< Keyboard Help key + sMenu, ///< Keyboard Menu key + sSelect, ///< Keyboard Select key + sStop, ///< Keyboard Stop key + sAgain, ///< Keyboard Again key + sUndo, ///< Keyboard Undo key + sCut, ///< Keyboard Cut key + sCopy, ///< Keyboard Copy key + sPaste, ///< Keyboard Paste key + sFind, ///< Keyboard Find key + sMute, ///< Keyboard Mute key + sVolumeUp, ///< Keyboard Volume Up key + sVolumeDown, ///< Keyboard Volume Down key + sLControl, ///< Keyboard Left Control key + sLShift, ///< Keyboard Left Shift key + sLAlt, ///< Keyboard Left Alt key + sLSystem, ///< Keyboard Left System key + sRControl, ///< Keyboard Right Control key + sRShift, ///< Keyboard Right Shift key + sRAlt, ///< Keyboard Right Alt key + sRSystem, ///< Keyboard Right System key + + sCodeCount ///< Keep last -- the total number of scancodes + }; + //////////////////////////////////////////////////////////// /// \brief Check if a key is pressed /// @@ -171,12 +328,73 @@ public: //////////////////////////////////////////////////////////// static bool isKeyPressed(Key key); + //////////////////////////////////////////////////////////// + /// \brief Check if a key is pressed + /// + /// \param code Scancode to check + /// + /// \return True if the physical key is pressed, false otherwise + /// + //////////////////////////////////////////////////////////// + static bool isKeyPressed(Scancode code); + + //////////////////////////////////////////////////////////// + /// \brief Localize a physical key to a logical one + /// + /// \param code Scancode to localize + /// + /// \return The key corresponding to the scancode under the current + /// keyboard layout used by the operating system, or + /// sf::Keyboard::Unknown when the scancode cannot be mapped + /// to a Key. + /// + /// \see unlocalize + /// + //////////////////////////////////////////////////////////// + static Key localize(Scancode code); + + //////////////////////////////////////////////////////////// + /// \brief Identify the physical key corresponding to a logical one + /// + /// \param key Key to "unlocalize" + /// + /// \return The scancode corresponding to the key under the current + /// keyboard layout used by the operating system, or + /// sf::Keyboard::sUnknown when the key cannot be mapped + /// to a Keyboard::Scancode. + /// + /// \see localize + /// + //////////////////////////////////////////////////////////// + static Scancode unlocalize(Key key); + + //////////////////////////////////////////////////////////// + /// \brief Provide a string representation for a given scancode + /// + /// From a high level point of view, this conversion corresponds + /// somewhat to the string available through sf::Event::TextEvent + /// when the given physical key is pressed by the user, when no + /// modifiers are involved. + /// + /// \warning The result is OS-dependent: for example, sf::Keyboard::sLSystem + /// is "Left Meta" on Linux, "Left Windows" on Windows and + /// "Left Command" on macOS. + /// + /// The current keyboard layout set by the operating system is used to + /// interpret the scancode: for example, sf::Keyboard::SemiColon is + /// mapped to ";" for layout and to "é" for others. + /// + /// \return The localized description of the code + /// + //////////////////////////////////////////////////////////// + static String localizedRepresentation(Scancode code); + //////////////////////////////////////////////////////////// /// \brief Show or hide the virtual keyboard /// - /// Warning: the virtual keyboard is not supported on all - /// systems. It will typically be implemented on mobile OSes - /// (Android, iOS) but not on desktop OSes (Windows, Linux, ...). + /// \warning The virtual keyboard is not supported on all + /// systems. It will typically be implemented on mobile OSes + /// (Android, iOS) but not on desktop OSes (Windows, Linux, ...). /// /// If the virtual keyboard is not available, this function does /// nothing. diff --git a/src/SFML/Window/Android/InputImpl.hpp b/src/SFML/Window/Android/InputImpl.hpp index d2783e15..ffbc6312 100644 --- a/src/SFML/Window/Android/InputImpl.hpp +++ b/src/SFML/Window/Android/InputImpl.hpp @@ -45,19 +45,37 @@ class InputImpl public: //////////////////////////////////////////////////////////// - /// \brief Check if a key is pressed - /// - /// \param key Key to check - /// - /// \return True if the key is pressed, false otherwise + /// \copydoc sf::Keyboard::isKeyPressed(Key) /// //////////////////////////////////////////////////////////// static bool isKeyPressed(Keyboard::Key key); //////////////////////////////////////////////////////////// - /// \brief Show or hide the virtual keyboard + /// \copydoc sf::Keyboard::isKeyPressed(Scancode) /// - /// \param visible True to show, false to hide + //////////////////////////////////////////////////////////// + static bool isKeyPressed(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Key localize(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::unlocalize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode unlocalize(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localizedRepresentation + /// + //////////////////////////////////////////////////////////// + static String localizedRepresentation(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::setVirtualKeyboardVisible /// //////////////////////////////////////////////////////////// static void setVirtualKeyboardVisible(bool visible); diff --git a/src/SFML/Window/Keyboard.cpp b/src/SFML/Window/Keyboard.cpp index d37e3f87..b6b4e4a7 100644 --- a/src/SFML/Window/Keyboard.cpp +++ b/src/SFML/Window/Keyboard.cpp @@ -37,6 +37,29 @@ bool Keyboard::isKeyPressed(Key key) return priv::InputImpl::isKeyPressed(key); } +//////////////////////////////////////////////////////////// +bool Keyboard::isKeyPressed(Scancode code) +{ + return priv::InputImpl::isKeyPressed(code); +} + +//////////////////////////////////////////////////////////// +Keyboard::Key Keyboard::localize(Scancode code) +{ + return priv::InputImpl::localize(code); +} + +//////////////////////////////////////////////////////////// +Keyboard::Scancode Keyboard::unlocalize(Key key) +{ + return priv::InputImpl::unlocalize(key); +} + +//////////////////////////////////////////////////////////// +String Keyboard::localizedRepresentation(Scancode code) +{ + return priv::InputImpl::localizedRepresentation(code); +} //////////////////////////////////////////////////////////// void Keyboard::setVirtualKeyboardVisible(bool visible) diff --git a/src/SFML/Window/OSX/InputImpl.hpp b/src/SFML/Window/OSX/InputImpl.hpp index 30943407..dad01073 100644 --- a/src/SFML/Window/OSX/InputImpl.hpp +++ b/src/SFML/Window/OSX/InputImpl.hpp @@ -46,19 +46,37 @@ class InputImpl public: //////////////////////////////////////////////////////////// - /// \brief Check if a key is pressed - /// - /// \param key Key to check - /// - /// \return True if the key is pressed, false otherwise + /// \copydoc sf::Keyboard::isKeyPressed(Key) /// //////////////////////////////////////////////////////////// static bool isKeyPressed(Keyboard::Key key); //////////////////////////////////////////////////////////// - /// \brief Show or hide the virtual keyboard + /// \copydoc sf::Keyboard::isKeyPressed(Scancode) /// - /// \param visible True to show, false to hide + //////////////////////////////////////////////////////////// + static bool isKeyPressed(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Key localize(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::unlocalize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode unlocalize(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localizedRepresentation + /// + //////////////////////////////////////////////////////////// + static String localizedRepresentation(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::setVirtualKeyboardVisible /// //////////////////////////////////////////////////////////// static void setVirtualKeyboardVisible(bool visible); diff --git a/src/SFML/Window/Unix/InputImpl.hpp b/src/SFML/Window/Unix/InputImpl.hpp index 741a92e5..e692d6ec 100644 --- a/src/SFML/Window/Unix/InputImpl.hpp +++ b/src/SFML/Window/Unix/InputImpl.hpp @@ -45,19 +45,37 @@ class InputImpl public: //////////////////////////////////////////////////////////// - /// \brief Check if a key is pressed - /// - /// \param key Key to check - /// - /// \return True if the key is pressed, false otherwise + /// \copydoc sf::Keyboard::isKeyPressed(Key) /// //////////////////////////////////////////////////////////// static bool isKeyPressed(Keyboard::Key key); //////////////////////////////////////////////////////////// - /// \brief Show or hide the virtual keyboard + /// \copydoc sf::Keyboard::isKeyPressed(Scancode) /// - /// \param visible True to show, false to hide + //////////////////////////////////////////////////////////// + static bool isKeyPressed(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Key localize(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::unlocalize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode unlocalize(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localizedRepresentation + /// + //////////////////////////////////////////////////////////// + static String localizedRepresentation(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::setVirtualKeyboardVisible /// //////////////////////////////////////////////////////////// static void setVirtualKeyboardVisible(bool visible); diff --git a/src/SFML/Window/Win32/InputImpl.hpp b/src/SFML/Window/Win32/InputImpl.hpp index 87e21209..9df15889 100644 --- a/src/SFML/Window/Win32/InputImpl.hpp +++ b/src/SFML/Window/Win32/InputImpl.hpp @@ -45,19 +45,37 @@ class InputImpl public: //////////////////////////////////////////////////////////// - /// \brief Check if a key is pressed - /// - /// \param key Key to check - /// - /// \return True if the key is pressed, false otherwise + /// \copydoc sf::Keyboard::isKeyPressed(Key) /// //////////////////////////////////////////////////////////// static bool isKeyPressed(Keyboard::Key key); //////////////////////////////////////////////////////////// - /// \brief Show or hide the virtual keyboard + /// \copydoc sf::Keyboard::isKeyPressed(Scancode) /// - /// \param visible True to show, false to hide + //////////////////////////////////////////////////////////// + static bool isKeyPressed(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Key localize(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::unlocalize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode unlocalize(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localizedRepresentation + /// + //////////////////////////////////////////////////////////// + static String localizedRepresentation(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::setVirtualKeyboardVisible /// //////////////////////////////////////////////////////////// static void setVirtualKeyboardVisible(bool visible); diff --git a/src/SFML/Window/iOS/InputImpl.hpp b/src/SFML/Window/iOS/InputImpl.hpp index 6bde166a..b1712fa2 100644 --- a/src/SFML/Window/iOS/InputImpl.hpp +++ b/src/SFML/Window/iOS/InputImpl.hpp @@ -45,19 +45,37 @@ class InputImpl public: //////////////////////////////////////////////////////////// - /// \brief Check if a key is pressed - /// - /// \param key Key to check - /// - /// \return True if the key is pressed, false otherwise + /// \copydoc sf::Keyboard::isKeyPressed(Key) /// //////////////////////////////////////////////////////////// static bool isKeyPressed(Keyboard::Key key); //////////////////////////////////////////////////////////// - /// \brief Show or hide the virtual keyboard + /// \copydoc sf::Keyboard::isKeyPressed(Scancode) /// - /// \param visible True to show, false to hide + //////////////////////////////////////////////////////////// + static bool isKeyPressed(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Key localize(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::unlocalize + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode unlocalize(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localizedRepresentation + /// + //////////////////////////////////////////////////////////// + static String localizedRepresentation(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::setVirtualKeyboardVisible /// //////////////////////////////////////////////////////////// static void setVirtualKeyboardVisible(bool visible); From 9dc7f3dc79e0e3a5c0791c2c4c6f0197ba2df82c Mon Sep 17 00:00:00 2001 From: Marco Antognini Date: Tue, 28 Mar 2017 23:37:06 +0200 Subject: [PATCH 02/36] Add support of scancodes for macOS --- src/SFML/Window/OSX/HIDInputManager.hpp | 140 +- src/SFML/Window/OSX/HIDInputManager.mm | 1574 +++++++++++------ src/SFML/Window/OSX/InputImpl.mm | 32 +- .../Window/OSX/SFKeyboardModifiersHelper.h | 3 +- .../Window/OSX/SFKeyboardModifiersHelper.mm | 27 +- src/SFML/Window/OSX/SFOpenGLView+keyboard.mm | 22 +- 6 files changed, 1167 insertions(+), 631 deletions(-) diff --git a/src/SFML/Window/OSX/HIDInputManager.hpp b/src/SFML/Window/OSX/HIDInputManager.hpp index 3e143c8a..9a82a7b9 100644 --- a/src/SFML/Window/OSX/HIDInputManager.hpp +++ b/src/SFML/Window/OSX/HIDInputManager.hpp @@ -65,16 +65,6 @@ public: //////////////////////////////////////////////////////////// static HIDInputManager& getInstance(); - //////////////////////////////////////////////////////////// - /// \brief Check if a key is pressed - /// - /// \param key Key to check - /// - /// \return True if the key is pressed, false otherwise - /// - //////////////////////////////////////////////////////////// - bool isKeyPressed(Keyboard::Key key); - public: //////////////////////////////////////////////////////////// @@ -103,21 +93,64 @@ public: /// /// Return sf::Keyboard::Unknown if it doesn't match any 'localized' keys. /// - /// By 'localized' I mean keys that depend on the keyboard layout - /// and might not be the same as the US keycode in some country - /// (e.g. the keys 'Y' and 'Z' are switched on QWERTZ keyboard and + /// By 'localized' we mean keys that depend on the keyboard layout + /// and might not be the same as the US keycode for some countries + /// (e.g. the keys 'Y' and 'Z' are swapped on QWERTZ keyboard and /// US keyboard layouts.) /// //////////////////////////////////////////////////////////// - static Keyboard::Key localizedKeys(UniChar ch); + static Keyboard::Key localizedKey(UniChar ch); //////////////////////////////////////////////////////////// - /// Try to convert a virtual keycode into a SFML key code. + /// Opposite transformation as localizedKeys /// - /// Return sf::Keyboard::Unknown if the keycode is unknown. + /// Return 0x00 (NULL) for non-convertible keys/numpad numbers. + /// For letters, uppercase codes are returned. + /// Some returned value are specific to macOS. /// //////////////////////////////////////////////////////////// - static Keyboard::Key nonLocalizedKeys(UniChar virtualKeycode); + static UniChar toUnicode(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// Try to convert a virtual keycode (HID level) into a + /// SFML scancode. + /// + /// Return sf::Keyboard::sUnknown if the keycode is unknown. + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode nonLocalizedKey(UniChar virtualKeycode); + +public: + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::isKeyPressed(Key) + /// + //////////////////////////////////////////////////////////// + bool isKeyPressed(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::isKeyPressed(Scancode) + /// + //////////////////////////////////////////////////////////// + bool isKeyPressed(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localize + /// + //////////////////////////////////////////////////////////// + Keyboard::Key localize(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::unlocalize + /// + //////////////////////////////////////////////////////////// + Keyboard::Scancode unlocalize(Keyboard::Key key); + + //////////////////////////////////////////////////////////// + /// \copydoc sf::Keyboard::localizedRepresentation + /// + //////////////////////////////////////////////////////////// + String localizedRepresentation(Keyboard::Scancode code); private: @@ -136,7 +169,13 @@ private: //////////////////////////////////////////////////////////// /// \brief Initialize the keyboard part of this class /// - /// If something went wrong freeUp is called + /// If something went wrong freeUp is called. + /// + /// In a nutshell, this function does this: + /// + /// for each connected keyboard kb: + /// for each key k of kb: + /// memorise k -> scancode mapping /// //////////////////////////////////////////////////////////// void initializeKeyboard(); @@ -145,28 +184,39 @@ private: /// \brief Load the given keyboard into m_keys /// /// If the given keyboard has no key this function simply - /// returns. freeUp is _not_ called because this is not fatal. + /// returns without calling freeUp because this is not fatal. /// /// \param keyboard Keyboard to load /// + /// \see initializeKeyboard + /// //////////////////////////////////////////////////////////// void loadKeyboard(IOHIDDeviceRef keyboard); //////////////////////////////////////////////////////////// /// \brief Load the given key into m_keys /// - /// freeUp is _not_ called by this function. + /// On error, freeUp is _not_ called by this function. /// /// \param key Key to load /// + /// \see initializeKeyboard + /// //////////////////////////////////////////////////////////// void loadKey(IOHIDElementRef key); + //////////////////////////////////////////////////////////// + /// Regenerate the mappings from/to Key and Scancode + /// + //////////////////////////////////////////////////////////// + void buildMappings(); + //////////////////////////////////////////////////////////// /// \brief Release all resources /// - /// Close all connections to any devices, if required - /// Set m_isValid to false + /// Close all connections to any devices. + /// + /// \see initializeKeyboard /// //////////////////////////////////////////////////////////// void freeUp(); @@ -174,11 +224,11 @@ private: //////////////////////////////////////////////////////////// /// \brief Filter the devices and return them /// - /// freeUp is _not_ called by this function. + /// On error, freeUp is _not_ called by this function. /// /// \param page HID page like kHIDPage_GenericDesktop /// \param usage HID usage page like kHIDUsage_GD_Keyboard or kHIDUsage_GD_Mouse - /// \return a retained CFSetRef of IOHIDDeviceRef or NULL + /// \return a retained, non-emtpy CFSetRef of IOHIDDeviceRef or NULL /// //////////////////////////////////////////////////////////// CFSetRef copyDevices(UInt32 page, UInt32 usage); @@ -196,36 +246,48 @@ private: bool isPressed(IOHIDElements& elements); //////////////////////////////////////////////////////////// - /// \brief Convert a HID key usage to its corresponding virtual code - /// - /// See IOHIDUsageTables.h + /// \brief Convert a HID key usage to its corresponding scancode /// /// \param usage Any kHIDUsage_Keyboard* usage - /// \return the virtual code associate with the given HID key usage - /// or 0xff if it is associate with no virtual code + /// \return the scancode associate with the given HID key usage + /// or sUnknown if it is associate with no scancode. /// //////////////////////////////////////////////////////////// - static UInt8 usageToVirtualCode(UInt32 usage); + static Keyboard::Scancode usageToScancode(UInt32 usage); + + //////////////////////////////////////////////////////////// + /// Convert the scancode to the expected virtual code. + /// + //////////////////////////////////////////////////////////// + static UInt8 scanToVirtualCode(Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// Fallback convertion for key that aren't expected to be impacted + /// by the layout. Can return Unknown. + /// + //////////////////////////////////////////////////////////// + static Keyboard::Key localizedKeyFallback(Keyboard::Scancode code); private: //////////////////////////////////////////////////////////// // Member data //////////////////////////////////////////////////////////// - bool m_isValid; ///< If any error occurs this variable is false - CFDataRef m_layoutData; ///< CFData containing the layout - UCKeyboardLayout* m_layout; ///< Current Keyboard Layout - IOHIDManagerRef m_manager; ///< HID Manager - - IOHIDElements m_keys[Keyboard::KeyCount]; ///< All the keys on any connected keyboard + IOHIDManagerRef m_manager; ///< Underlying HID Manager + IOHIDElements m_keys[Keyboard::sCodeCount]; ///< All the keys on any connected keyboard + Keyboard::Scancode m_mapping[Keyboard::KeyCount]; ///< Mapping from Key to Scancode + Keyboard::Key m_gnippam[Keyboard::sCodeCount]; ///< Mapping from Scancode to Key //////////////////////////////////////////////////////////// - /// m_keys' index corresponds to sf::Keyboard::Key enum. - /// if no key is assigned with key XYZ then m_keys[XYZ].size() == 0. - /// if there are several keyboards connected and several HID keys associate + /// m_keys' index corresponds to sf::Keyboard::Scancode enum. + /// If no key is assigned with key XYZ then m_keys[XYZ].size() == 0. + /// If there are several keyboards connected and several HID keys associated /// with the same sf::Keyboard::Key then m_keys[XYZ] contains all these /// HID keys. /// + /// The mappings (both directions) get invalidated when the + /// keyboard layout changes. They both default to (s)Unknown. + /// //////////////////////////////////////////////////////////// }; diff --git a/src/SFML/Window/OSX/HIDInputManager.mm b/src/SFML/Window/OSX/HIDInputManager.mm index 7fd40ecb..549829ff 100644 --- a/src/SFML/Window/OSX/HIDInputManager.mm +++ b/src/SFML/Window/OSX/HIDInputManager.mm @@ -42,13 +42,6 @@ HIDInputManager& HIDInputManager::getInstance() } -//////////////////////////////////////////////////////////// -bool HIDInputManager::isKeyPressed(Keyboard::Key key) -{ - return isPressed(m_keys[key]); -} - - //////////////////////////////////////////////////////////// long HIDInputManager::getLocationID(IOHIDDeviceRef device) { @@ -91,36 +84,141 @@ CFDictionaryRef HIDInputManager::copyDevicesMask(UInt32 page, UInt32 usage) } +//////////////////////////////////////////////////////////// +bool HIDInputManager::isKeyPressed(Keyboard::Key key) +{ + return isKeyPressed(unlocalize(key)); +} + + +//////////////////////////////////////////////////////////// +bool HIDInputManager::isKeyPressed(Keyboard::Scancode code) +{ + return (code != Keyboard::sUnknown) && isPressed(m_keys[code]); +} + + +//////////////////////////////////////////////////////////// +Keyboard::Key HIDInputManager::localize(Keyboard::Scancode code) +{ + // TODO ensure mapping is still valid + return m_gnippam[code]; +} + + +//////////////////////////////////////////////////////////// +Keyboard::Scancode HIDInputManager::unlocalize(Keyboard::Key key) +{ + // TODO ensure mapping is still valid + return m_mapping[key]; +} + + +//////////////////////////////////////////////////////////// +String HIDInputManager::localizedRepresentation(Keyboard::Scancode code) +{ + UniChar unicode = toUnicode(localize(code)); + if (unicode != 0x00) + return sf::String(static_cast(unicode)); + + // Fallback to our best guess for the keys that are known to be independent of the layout. + switch (code) + { + case sf::Keyboard::sEnter: return "Enter"; + case sf::Keyboard::sEscape: return "Escape"; + case sf::Keyboard::sBackspace: return "Backspace"; + case sf::Keyboard::sTab: return "Tab"; + case sf::Keyboard::sSpace: return "Space"; + + case sf::Keyboard::sF1: return "F1"; + case sf::Keyboard::sF2: return "F2"; + case sf::Keyboard::sF3: return "F3"; + case sf::Keyboard::sF4: return "F4"; + case sf::Keyboard::sF5: return "F5"; + case sf::Keyboard::sF6: return "F6"; + case sf::Keyboard::sF7: return "F7"; + case sf::Keyboard::sF8: return "F8"; + case sf::Keyboard::sF9: return "F9"; + case sf::Keyboard::sF10: return "F10"; + case sf::Keyboard::sF11: return "F11"; + case sf::Keyboard::sF12: return "F12"; + case sf::Keyboard::sF13: return "F13"; + case sf::Keyboard::sF14: return "F14"; + case sf::Keyboard::sF15: return "F15"; + + case sf::Keyboard::sCapsLock: return "CapsLock"; + case sf::Keyboard::sPrintScreen: return "PrintScreen"; + case sf::Keyboard::sScrollLock: return "ScrollLock"; + + case sf::Keyboard::sPause: return "Pause"; + case sf::Keyboard::sInsert: return "Insert"; + case sf::Keyboard::sHome: return "Home"; + case sf::Keyboard::sPageUp: return "PageUp"; + case sf::Keyboard::sDelete: return "Delete"; + case sf::Keyboard::sEnd: return "End"; + case sf::Keyboard::sPageDown: return "PageDown"; + + case sf::Keyboard::sLeft: return "Left Arrow"; + case sf::Keyboard::sRight: return "Right Arrow"; + case sf::Keyboard::sDown: return "Down Arrow"; + case sf::Keyboard::sUp: return "Up Arrow"; + + case sf::Keyboard::sNumLock: return "NumLock"; + case sf::Keyboard::sDivide: return "Divide (Numpad)"; + case sf::Keyboard::sMultiply: return "Multiply (Numpad)"; + case sf::Keyboard::sMinus: return "Minux (Numpad)"; + case sf::Keyboard::sPlus: return "Plus (Numpad)"; + case sf::Keyboard::sPadEquals: return "Equals (Numpad)"; + case sf::Keyboard::sReturn: return "Return (Numpad)"; + case sf::Keyboard::sDecimal: return "Decimal (Numpad)"; + + case sf::Keyboard::sNumpad0: return "0 (Numpad)"; + case sf::Keyboard::sNumpad1: return "1 (Numpad)"; + case sf::Keyboard::sNumpad2: return "2 (Numpad)"; + case sf::Keyboard::sNumpad3: return "3 (Numpad)"; + case sf::Keyboard::sNumpad4: return "4 (Numpad)"; + case sf::Keyboard::sNumpad5: return "5 (Numpad)"; + case sf::Keyboard::sNumpad6: return "6 (Numpad)"; + case sf::Keyboard::sNumpad7: return "7 (Numpad)"; + case sf::Keyboard::sNumpad8: return "8 (Numpad)"; + case sf::Keyboard::sNumpad9: return "9 (Numpad)"; + + case sf::Keyboard::sApplication: return "Application"; + case sf::Keyboard::sExecute: return "Execute"; + case sf::Keyboard::sHelp: return "Help"; + case sf::Keyboard::sMenu: return "Menu"; + case sf::Keyboard::sSelect: return "Select"; + case sf::Keyboard::sStop: return "Stop"; + case sf::Keyboard::sAgain: return "Again"; + case sf::Keyboard::sUndo: return "Undo"; + case sf::Keyboard::sCut: return "Cut"; + case sf::Keyboard::sCopy: return "Copy"; + case sf::Keyboard::sPaste: return "Paste"; + case sf::Keyboard::sFind: return "Find"; + case sf::Keyboard::sMute: return "Mute"; + case sf::Keyboard::sVolumeUp: return "Volume Up"; + case sf::Keyboard::sVolumeDown: return "Volume Down"; + + case sf::Keyboard::sLControl: return "Control (Left)"; + case sf::Keyboard::sLShift: return "Shift (Left)"; + case sf::Keyboard::sLAlt: return "Alt (Left)"; + case sf::Keyboard::sLSystem: return "Command (Left)"; + case sf::Keyboard::sRControl: return "Control (Right)"; + case sf::Keyboard::sRShift: return "Shift (Right)"; + case sf::Keyboard::sRAlt: return "Alt (Right)"; + case sf::Keyboard::sRSystem: return "Command (Right)"; + + default: return "Unknown Scancode"; // no guess good enough possible. + } +} + + //////////////////////////////////////////////////////////// HIDInputManager::HIDInputManager() : -m_isValid(true), -m_layoutData(0), -m_layout(0), m_manager(0) { - // Get the current keyboard layout - TISInputSourceRef tis = TISCopyCurrentKeyboardLayoutInputSource(); - m_layoutData = (CFDataRef)TISGetInputSourceProperty(tis, - kTISPropertyUnicodeKeyLayoutData); - - if (m_layoutData == 0) - { - sf::err() << "Cannot get the keyboard layout" << std::endl; - freeUp(); - return; - } - - // Keep a reference for ourself - CFRetain(m_layoutData); - m_layout = (UCKeyboardLayout *)CFDataGetBytePtr(m_layoutData); - - // The TIS is no more needed - CFRelease(tis); - // Create an HID Manager reference m_manager = IOHIDManagerCreate(kCFAllocatorDefault, kIOHIDOptionsTypeNone); - - // Open the HID Manager reference IOReturn openStatus = IOHIDManagerOpen(m_manager, kIOHIDOptionsTypeNone); if (openStatus != kIOReturnSuccess) @@ -130,8 +228,8 @@ m_manager(0) return; } - // Initialize the keyboard initializeKeyboard(); + buildMappings(); } @@ -146,31 +244,23 @@ void HIDInputManager::initializeKeyboard() { //////////////////////////////////////////////////////////// // The purpose of this function is to initialize m_keys so we can get - // the associate IOHIDElementRef with a sf::Keyboard::Key in ~constant~ time. + // the associate IOHIDElementRef with a sf::Keyboard::Scancode + // in approximately constant time. // Get only keyboards - CFSetRef keyboards = copyDevices(kHIDPage_GenericDesktop, kHIDUsage_GD_Keyboard); - if (keyboards == NULL) + CFSetRef underlying = copyDevices(kHIDPage_GenericDesktop, kHIDUsage_GD_Keyboard); + if (underlying == NULL) { sf::err() << "No keyboard detected by the HID manager!" << std::endl; freeUp(); return; } - CFIndex keyboardCount = CFSetGetCount(keyboards); // >= 1 (asserted by copyDevices) + NSSet* keyboards = static_cast(underlying); // Toll-Free Bridge + for (id keyboard in keyboards) + loadKeyboard(static_cast(keyboard)); - // Get an iterable array - CFTypeRef devicesArray[keyboardCount]; - CFSetGetValues(keyboards, devicesArray); - - for (CFIndex i = 0; i < keyboardCount; ++i) - { - IOHIDDeviceRef keyboard = (IOHIDDeviceRef)devicesArray[i]; - loadKeyboard(keyboard); - } - - // Release unused stuff - CFRelease(keyboards); + CFRelease(underlying); //////////////////////////////////////////////////////////// // At this point m_keys is filled with as many IOHIDElementRef as possible @@ -180,142 +270,105 @@ void HIDInputManager::initializeKeyboard() //////////////////////////////////////////////////////////// void HIDInputManager::loadKeyboard(IOHIDDeviceRef keyboard) { - CFArrayRef keys = IOHIDDeviceCopyMatchingElements(keyboard, - NULL, - kIOHIDOptionsTypeNone); - if (keys == NULL) + CFArrayRef underlying = IOHIDDeviceCopyMatchingElements(keyboard, NULL, kIOHIDOptionsTypeNone); + if ((underlying == NULL) || (CFArrayGetCount(underlying) == 0)) { - sf::err() << "We got a keyboard without any keys (1)" << std::endl; + sf::err() << "We got a keyboard without any keys." << std::endl; return; } - // How many elements are there? - CFIndex keysCount = CFArrayGetCount(keys); - - if (keysCount == 0) + NSArray* keys = static_cast(underlying); // Toll-Free Bridge + for (id key in keys) { - sf::err() << "We got a keyboard without any keys (2)" << std::endl; - CFRelease(keys); - return; + IOHIDElementRef elem = static_cast(key); + if (IOHIDElementGetUsagePage(elem) == kHIDPage_KeyboardOrKeypad) + loadKey(elem); } - // Go through all connected elements. - for (CFIndex i = 0; i < keysCount; ++i) - { - IOHIDElementRef aKey = (IOHIDElementRef) CFArrayGetValueAtIndex(keys, i); - - // Skip non-matching keys elements - if (IOHIDElementGetUsagePage(aKey) != kHIDPage_KeyboardOrKeypad) - continue; - - loadKey(aKey); - } - - // Release unused stuff - CFRelease(keys); + CFRelease(underlying); } //////////////////////////////////////////////////////////// void HIDInputManager::loadKey(IOHIDElementRef key) { - // Get its virtual code - UInt32 usageCode = IOHIDElementGetUsage(key); - UInt8 virtualCode = usageToVirtualCode(usageCode); - - if (virtualCode == 0xff) - return; // no corresponding virtual code -> skip - - // Now translate the virtual code to Unicode according to - // the current keyboard layout - - UInt32 deadKeyState = 0; - // Unicode string length is usually less or equal to 4 - UniCharCount maxStringLength = 4; - UniCharCount actualStringLength = 0; - UniChar unicodeString[maxStringLength]; - - OSStatus error; - - error = UCKeyTranslate(m_layout, // current layout - virtualCode, // our key - kUCKeyActionDown, // or kUCKeyActionUp ? - 0x100, // no modifiers - LMGetKbdType(), // keyboard's type - kUCKeyTranslateNoDeadKeysBit,// some sort of option - &deadKeyState, // unused stuff - maxStringLength, // our memory limit - &actualStringLength, // length of what we get - unicodeString); // what we get - - if (error == noErr) + UInt32 usage = IOHIDElementGetUsage(key); + sf::Keyboard::Scancode code = usageToScancode(usage); + if (code != Keyboard::sUnknown) { - // Translation went fine + CFRetain(key); + m_keys[code].push_back(key); + } +} - // The corresponding SFML key code - Keyboard::Key code = Keyboard::Unknown; // KeyCound means 'none' - // First we look if the key down is from a list of characters - // that depend on keyboard localization - if (actualStringLength > 0) - code = localizedKeys(unicodeString[0]); +//////////////////////////////////////////////////////////// +void HIDInputManager::buildMappings() +{ + // Reset the mappings + for (int i = 0; i < Keyboard::KeyCount; ++i) + m_mapping[i] = Keyboard::sUnknown; + for (int i = 0; i < Keyboard::sCodeCount; ++i) + m_gnippam[i] = Keyboard::Unknown; - // The key is not a localized one so we try to find a - // corresponding code through virtual key code - if (code == Keyboard::Unknown) - code = nonLocalizedKeys(virtualCode); + // Get the current keyboard layout + TISInputSourceRef tis = TISCopyCurrentKeyboardLayoutInputSource(); + CFDataRef layoutData = (CFDataRef)TISGetInputSourceProperty(tis, kTISPropertyUnicodeKeyLayoutData); - // A code was found, wonderful! - if (code != Keyboard::Unknown) + if (layoutData == 0) + { + sf::err() << "Cannot get the keyboard layout\n"; + CFRelease(tis); + return; + } + + UCKeyboardLayout* layout = (UCKeyboardLayout*)CFDataGetBytePtr(layoutData); + + // For each scancode having a IOHIDElement, we translate the corresponding + // virtual code to a localized Key. + for (int i = 0; i < Keyboard::sCodeCount; ++i) + { + Keyboard::Scancode scan = static_cast(i); + UInt8 virtualCode = scanToVirtualCode(scan); + + if (virtualCode == 0xff) continue; + + // Unicode string length is usually less or equal to 4 + UniCharCount const MAX_LENGTH = 4; + UniChar string[MAX_LENGTH]; + UniCharCount length = 0; + UInt32 deadKeyState = 0; // unused value + UInt32 const modifiers = 0x100; // no modifiers + + // Use current layout for translation + OSStatus error = UCKeyTranslate( + layout, virtualCode, kUCKeyActionDown, modifiers, LMGetKbdType(), + kUCKeyTranslateNoDeadKeysBit, &deadKeyState, MAX_LENGTH, &length, string + ); + + if (error != noErr) { - // Ok, everything went fine. Now we have a unique - // corresponding sf::Keyboard::Key to one IOHIDElementRef - m_keys[code].push_back(key); - - // And don't forget to keep the reference alive for our usage - CFRetain(m_keys[code].back()); + sf::err() << "Cannot translate the virtual key code, error: " << error << "\n"; + continue; } - //////////////////////////////////////////////////////////// - // These are known to be unbound: - // Supposed Virtual | HID | Supposed Key - // =============================================== - // 0x1b | 0x2d | Hyphen - // 0x39 | 0x39 | CapsLock - // 0x47 | 0x53 | NumLock - // 0x6e | 0x65 | Application - // 0x4c | 0x77 | Select + Keyboard::Key code = (length > 0) ? localizedKey(string[0]) : Keyboard::Unknown; + if (code == Keyboard::Unknown) code = localizedKeyFallback(scan); - //if (code == Keyboard::Unknown) { // The key is unknown. - // sf::err() << "This is an unknown key. Virtual key code is 0x" - // << std::hex - // << (UInt32)virtualCode - // << " and HID usage code is 0x" - // << usageCode - // << std::dec - // << "." - // << std::endl; - //} + if (code == Keyboard::Unknown) continue; - } /* if (error == noErr) */ - else - { - sf::err() << "Cannot translate the virtual key code, error: " - << error - << std::endl; + // Register the bi-mapping + m_mapping[code] = scan; + m_gnippam[scan] = code; } + + CFRelease(tis); } //////////////////////////////////////////////////////////// void HIDInputManager::freeUp() { - m_isValid = false; - - if (m_layoutData != 0) - CFRelease(m_layoutData); - m_layoutData = 0; - // Do not release m_layout! It is owned by m_layoutData. if (m_manager != 0) CFRelease(m_manager); m_manager = 0; @@ -339,32 +392,28 @@ CFSetRef HIDInputManager::copyDevices(UInt32 page, UInt32 usage) IOHIDManagerSetDeviceMatching(m_manager, mask); CFRelease(mask); - mask = 0; + mask = NULL; CFSetRef devices = IOHIDManagerCopyDevices(m_manager); if (devices == NULL) return NULL; // Is there at least one device? - CFIndex deviceCount = CFSetGetCount(devices); - if (deviceCount < 1) + if (CFSetGetCount(devices) < 1) { CFRelease(devices); return NULL; } - + return devices; } + +//////////////////////////////////////////////////////////// bool HIDInputManager::isPressed(IOHIDElements& elements) { - if (!m_isValid) - return false; - - // state = true if at least one corresponding HID button is pressed - bool state = false; - - for (IOHIDElements::iterator it = elements.begin(); it != elements.end(); /* noop */) + bool pressed = false; + for (IOHIDElements::iterator it = elements.begin(); it != elements.end() && !pressed; /* noop */) { IOHIDValueRef value = 0; @@ -373,493 +422,886 @@ bool HIDInputManager::isPressed(IOHIDElements& elements) if (!value) { - // This means some kind of error / disconnection so we remove this - // element from our buttons + // This means some kind of error / disconnection so we remove this element from our database. CFRelease(*it); it = elements.erase(it); } - else if (IOHIDValueGetIntegerValue(value) == 1) - { - // This means the button is pressed - state = true; - break; // Stop here - } else { - // This means the button is released + pressed = (IOHIDValueGetIntegerValue(value) == 1); ++it; } + } - return state; + return pressed; } //////////////////////////////////////////////////////////// -UInt8 HIDInputManager::usageToVirtualCode(UInt32 usage) +sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage) { - // Some usage key doesn't have any corresponding virtual - // code or it was not found (return 0xff). switch (usage) { - case kHIDUsage_KeyboardErrorRollOver: return 0xff; - case kHIDUsage_KeyboardPOSTFail: return 0xff; - case kHIDUsage_KeyboardErrorUndefined: return 0xff; + case kHIDUsage_KeyboardErrorRollOver: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardPOSTFail: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardErrorUndefined: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardA: return 0x00; - case kHIDUsage_KeyboardB: return 0x0b; - case kHIDUsage_KeyboardC: return 0x08; - case kHIDUsage_KeyboardD: return 0x02; - case kHIDUsage_KeyboardE: return 0x0e; - case kHIDUsage_KeyboardF: return 0x03; - case kHIDUsage_KeyboardG: return 0x05; - case kHIDUsage_KeyboardH: return 0x04; - case kHIDUsage_KeyboardI: return 0x22; - case kHIDUsage_KeyboardJ: return 0x26; - case kHIDUsage_KeyboardK: return 0x28; - case kHIDUsage_KeyboardL: return 0x25; - case kHIDUsage_KeyboardM: return 0x2e; - case kHIDUsage_KeyboardN: return 0x2d; - case kHIDUsage_KeyboardO: return 0x1f; - case kHIDUsage_KeyboardP: return 0x23; - case kHIDUsage_KeyboardQ: return 0x0c; - case kHIDUsage_KeyboardR: return 0x0f; - case kHIDUsage_KeyboardS: return 0x01; - case kHIDUsage_KeyboardT: return 0x11; - case kHIDUsage_KeyboardU: return 0x20; - case kHIDUsage_KeyboardV: return 0x09; - case kHIDUsage_KeyboardW: return 0x0d; - case kHIDUsage_KeyboardX: return 0x07; - case kHIDUsage_KeyboardY: return 0x10; - case kHIDUsage_KeyboardZ: return 0x06; + case kHIDUsage_KeyboardA: return sf::Keyboard::sA; + case kHIDUsage_KeyboardB: return sf::Keyboard::sB; + case kHIDUsage_KeyboardC: return sf::Keyboard::sC; + case kHIDUsage_KeyboardD: return sf::Keyboard::sD; + case kHIDUsage_KeyboardE: return sf::Keyboard::sE; + case kHIDUsage_KeyboardF: return sf::Keyboard::sF; + case kHIDUsage_KeyboardG: return sf::Keyboard::sG; + case kHIDUsage_KeyboardH: return sf::Keyboard::sH; + case kHIDUsage_KeyboardI: return sf::Keyboard::sI; + case kHIDUsage_KeyboardJ: return sf::Keyboard::sJ; + case kHIDUsage_KeyboardK: return sf::Keyboard::sK; + case kHIDUsage_KeyboardL: return sf::Keyboard::sL; + case kHIDUsage_KeyboardM: return sf::Keyboard::sM; + case kHIDUsage_KeyboardN: return sf::Keyboard::sN; + case kHIDUsage_KeyboardO: return sf::Keyboard::sO; + case kHIDUsage_KeyboardP: return sf::Keyboard::sP; + case kHIDUsage_KeyboardQ: return sf::Keyboard::sQ; + case kHIDUsage_KeyboardR: return sf::Keyboard::sR; + case kHIDUsage_KeyboardS: return sf::Keyboard::sS; + case kHIDUsage_KeyboardT: return sf::Keyboard::sT; + case kHIDUsage_KeyboardU: return sf::Keyboard::sU; + case kHIDUsage_KeyboardV: return sf::Keyboard::sV; + case kHIDUsage_KeyboardW: return sf::Keyboard::sW; + case kHIDUsage_KeyboardX: return sf::Keyboard::sX; + case kHIDUsage_KeyboardY: return sf::Keyboard::sY; + case kHIDUsage_KeyboardZ: return sf::Keyboard::sZ; - case kHIDUsage_Keyboard1: return 0x12; - case kHIDUsage_Keyboard2: return 0x13; - case kHIDUsage_Keyboard3: return 0x14; - case kHIDUsage_Keyboard4: return 0x15; - case kHIDUsage_Keyboard5: return 0x17; - case kHIDUsage_Keyboard6: return 0x16; - case kHIDUsage_Keyboard7: return 0x1a; - case kHIDUsage_Keyboard8: return 0x1c; - case kHIDUsage_Keyboard9: return 0x19; - case kHIDUsage_Keyboard0: return 0x1d; + case kHIDUsage_Keyboard1: return sf::Keyboard::sNum1; + case kHIDUsage_Keyboard2: return sf::Keyboard::sNum2; + case kHIDUsage_Keyboard3: return sf::Keyboard::sNum3; + case kHIDUsage_Keyboard4: return sf::Keyboard::sNum4; + case kHIDUsage_Keyboard5: return sf::Keyboard::sNum5; + case kHIDUsage_Keyboard6: return sf::Keyboard::sNum6; + case kHIDUsage_Keyboard7: return sf::Keyboard::sNum7; + case kHIDUsage_Keyboard8: return sf::Keyboard::sNum8; + case kHIDUsage_Keyboard9: return sf::Keyboard::sNum9; + case kHIDUsage_Keyboard0: return sf::Keyboard::sNum0; - case kHIDUsage_KeyboardReturnOrEnter: return 0x24; - case kHIDUsage_KeyboardEscape: return 0x35; - case kHIDUsage_KeyboardDeleteOrBackspace: return 0x33; - case kHIDUsage_KeyboardTab: return 0x30; - case kHIDUsage_KeyboardSpacebar: return 0x31; - case kHIDUsage_KeyboardHyphen: return 0x1b; - case kHIDUsage_KeyboardEqualSign: return 0x18; - case kHIDUsage_KeyboardOpenBracket: return 0x21; - case kHIDUsage_KeyboardCloseBracket: return 0x1e; - case kHIDUsage_KeyboardBackslash: return 0x2a; - case kHIDUsage_KeyboardNonUSPound: return 0xff; - case kHIDUsage_KeyboardSemicolon: return 0x29; - case kHIDUsage_KeyboardQuote: return 0x27; - case kHIDUsage_KeyboardGraveAccentAndTilde: return 0x32; - case kHIDUsage_KeyboardComma: return 0x2b; - case kHIDUsage_KeyboardPeriod: return 0x2F; - case kHIDUsage_KeyboardSlash: return 0x2c; - case kHIDUsage_KeyboardCapsLock: return 0x39; + case kHIDUsage_KeyboardReturnOrEnter: return sf::Keyboard::sEnter; + case kHIDUsage_KeyboardEscape: return sf::Keyboard::sEscape; + case kHIDUsage_KeyboardDeleteOrBackspace: return sf::Keyboard::sBackspace; + case kHIDUsage_KeyboardTab: return sf::Keyboard::sTab; + case kHIDUsage_KeyboardSpacebar: return sf::Keyboard::sSpace; + case kHIDUsage_KeyboardHyphen: return sf::Keyboard::sHyphen; + case kHIDUsage_KeyboardEqualSign: return sf::Keyboard::sEquals; + case kHIDUsage_KeyboardOpenBracket: return sf::Keyboard::sLBracket; + case kHIDUsage_KeyboardCloseBracket: return sf::Keyboard::sRBracket; + case kHIDUsage_KeyboardBackslash: return sf::Keyboard::sBackslash; + case kHIDUsage_KeyboardNonUSPound: return sf::Keyboard::sDash; + case kHIDUsage_KeyboardSemicolon: return sf::Keyboard::sSemicolon; + case kHIDUsage_KeyboardQuote: return sf::Keyboard::sQuote; + case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::sGraveAccent; + case kHIDUsage_KeyboardComma: return sf::Keyboard::sComma; + case kHIDUsage_KeyboardPeriod: return sf::Keyboard::sPeriod; + case kHIDUsage_KeyboardSlash: return sf::Keyboard::sForwardSlash; + case kHIDUsage_KeyboardCapsLock: return sf::Keyboard::sCapsLock; - case kHIDUsage_KeyboardF1: return 0x7a; - case kHIDUsage_KeyboardF2: return 0x78; - case kHIDUsage_KeyboardF3: return 0x63; - case kHIDUsage_KeyboardF4: return 0x76; - case kHIDUsage_KeyboardF5: return 0x60; - case kHIDUsage_KeyboardF6: return 0x61; - case kHIDUsage_KeyboardF7: return 0x62; - case kHIDUsage_KeyboardF8: return 0x64; - case kHIDUsage_KeyboardF9: return 0x65; - case kHIDUsage_KeyboardF10: return 0x6d; - case kHIDUsage_KeyboardF11: return 0x67; - case kHIDUsage_KeyboardF12: return 0x6f; + case kHIDUsage_KeyboardF1: return sf::Keyboard::sF1; + case kHIDUsage_KeyboardF2: return sf::Keyboard::sF2; + case kHIDUsage_KeyboardF3: return sf::Keyboard::sF3; + case kHIDUsage_KeyboardF4: return sf::Keyboard::sF4; + case kHIDUsage_KeyboardF5: return sf::Keyboard::sF5; + case kHIDUsage_KeyboardF6: return sf::Keyboard::sF6; + case kHIDUsage_KeyboardF7: return sf::Keyboard::sF7; + case kHIDUsage_KeyboardF8: return sf::Keyboard::sF8; + case kHIDUsage_KeyboardF9: return sf::Keyboard::sF9; + case kHIDUsage_KeyboardF10: return sf::Keyboard::sF10; + case kHIDUsage_KeyboardF11: return sf::Keyboard::sF11; + case kHIDUsage_KeyboardF12: return sf::Keyboard::sF12; - case kHIDUsage_KeyboardPrintScreen: return 0xff; - case kHIDUsage_KeyboardScrollLock: return 0xff; - case kHIDUsage_KeyboardPause: return 0xff; - case kHIDUsage_KeyboardInsert: return 0x72; - case kHIDUsage_KeyboardHome: return 0x73; - case kHIDUsage_KeyboardPageUp: return 0x74; - case kHIDUsage_KeyboardDeleteForward: return 0x75; - case kHIDUsage_KeyboardEnd: return 0x77; - case kHIDUsage_KeyboardPageDown: return 0x79; + case kHIDUsage_KeyboardPrintScreen: return sf::Keyboard::sPrintScreen; + case kHIDUsage_KeyboardScrollLock: return sf::Keyboard::sScrollLock; + case kHIDUsage_KeyboardPause: return sf::Keyboard::sPause; + case kHIDUsage_KeyboardInsert: return sf::Keyboard::sInsert; + case kHIDUsage_KeyboardHome: return sf::Keyboard::sHome; + case kHIDUsage_KeyboardPageUp: return sf::Keyboard::sPageUp; + case kHIDUsage_KeyboardDeleteForward: return sf::Keyboard::sDelete; + case kHIDUsage_KeyboardEnd: return sf::Keyboard::sEnd; + case kHIDUsage_KeyboardPageDown: return sf::Keyboard::sPageDown; - case kHIDUsage_KeyboardRightArrow: return 0x7c; - case kHIDUsage_KeyboardLeftArrow: return 0x7b; - case kHIDUsage_KeyboardDownArrow: return 0x7d; - case kHIDUsage_KeyboardUpArrow: return 0x7e; + case kHIDUsage_KeyboardRightArrow: return sf::Keyboard::sRight; + case kHIDUsage_KeyboardLeftArrow: return sf::Keyboard::sLeft; + case kHIDUsage_KeyboardDownArrow: return sf::Keyboard::sDown; + case kHIDUsage_KeyboardUpArrow: return sf::Keyboard::sUp; - case kHIDUsage_KeypadNumLock: return 0x47; - case kHIDUsage_KeypadSlash: return 0x4b; - case kHIDUsage_KeypadAsterisk: return 0x43; - case kHIDUsage_KeypadHyphen: return 0x4e; - case kHIDUsage_KeypadPlus: return 0x45; - case kHIDUsage_KeypadEnter: return 0x4c; + case kHIDUsage_KeypadNumLock: return sf::Keyboard::sNumLock; + case kHIDUsage_KeypadSlash: return sf::Keyboard::sDivide; + case kHIDUsage_KeypadAsterisk: return sf::Keyboard::sMultiply; + case kHIDUsage_KeypadHyphen: return sf::Keyboard::sMinus; + case kHIDUsage_KeypadPlus: return sf::Keyboard::sPlus; + case kHIDUsage_KeypadEnter: return sf::Keyboard::sReturn; - case kHIDUsage_Keypad1: return 0x53; - case kHIDUsage_Keypad2: return 0x54; - case kHIDUsage_Keypad3: return 0x55; - case kHIDUsage_Keypad4: return 0x56; - case kHIDUsage_Keypad5: return 0x57; - case kHIDUsage_Keypad6: return 0x58; - case kHIDUsage_Keypad7: return 0x59; - case kHIDUsage_Keypad8: return 0x5b; - case kHIDUsage_Keypad9: return 0x5c; - case kHIDUsage_Keypad0: return 0x52; + case kHIDUsage_Keypad1: return sf::Keyboard::sNumpad1; + case kHIDUsage_Keypad2: return sf::Keyboard::sNumpad2; + case kHIDUsage_Keypad3: return sf::Keyboard::sNumpad3; + case kHIDUsage_Keypad4: return sf::Keyboard::sNumpad4; + case kHIDUsage_Keypad5: return sf::Keyboard::sNumpad5; + case kHIDUsage_Keypad6: return sf::Keyboard::sNumpad6; + case kHIDUsage_Keypad7: return sf::Keyboard::sNumpad7; + case kHIDUsage_Keypad8: return sf::Keyboard::sNumpad8; + case kHIDUsage_Keypad9: return sf::Keyboard::sNumpad9; + case kHIDUsage_Keypad0: return sf::Keyboard::sNumpad0; - case kHIDUsage_KeypadPeriod: return 0x41; - case kHIDUsage_KeyboardNonUSBackslash: return 0xff; - case kHIDUsage_KeyboardApplication: return 0x6e; - case kHIDUsage_KeyboardPower: return 0xff; - case kHIDUsage_KeypadEqualSign: return 0x51; + case kHIDUsage_KeypadPeriod: return sf::Keyboard::sDecimal; + case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::sReverseSolidus; + case kHIDUsage_KeyboardApplication: return sf::Keyboard::sApplication; + case kHIDUsage_KeyboardPower: return sf::Keyboard::sUnknown; + case kHIDUsage_KeypadEqualSign: return sf::Keyboard::sPadEquals; - case kHIDUsage_KeyboardF13: return 0x69; - case kHIDUsage_KeyboardF14: return 0x6b; - case kHIDUsage_KeyboardF15: return 0x71; - case kHIDUsage_KeyboardF16: return 0xff; - case kHIDUsage_KeyboardF17: return 0xff; - case kHIDUsage_KeyboardF18: return 0xff; - case kHIDUsage_KeyboardF19: return 0xff; - case kHIDUsage_KeyboardF20: return 0xff; - case kHIDUsage_KeyboardF21: return 0xff; - case kHIDUsage_KeyboardF22: return 0xff; - case kHIDUsage_KeyboardF23: return 0xff; - case kHIDUsage_KeyboardF24: return 0xff; + case kHIDUsage_KeyboardF13: return sf::Keyboard::sF13; + case kHIDUsage_KeyboardF14: return sf::Keyboard::sF14; + case kHIDUsage_KeyboardF15: return sf::Keyboard::sF15; + case kHIDUsage_KeyboardF16: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF17: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF18: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF19: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF20: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF21: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF22: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF23: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF24: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardExecute: return 0xff; - case kHIDUsage_KeyboardHelp: return 0xff; - case kHIDUsage_KeyboardMenu: return 0x7F; - case kHIDUsage_KeyboardSelect: return 0x4c; - case kHIDUsage_KeyboardStop: return 0xff; - case kHIDUsage_KeyboardAgain: return 0xff; - case kHIDUsage_KeyboardUndo: return 0xff; - case kHIDUsage_KeyboardCut: return 0xff; - case kHIDUsage_KeyboardCopy: return 0xff; - case kHIDUsage_KeyboardPaste: return 0xff; - case kHIDUsage_KeyboardFind: return 0xff; + case kHIDUsage_KeyboardExecute: return sf::Keyboard::sExecute; + case kHIDUsage_KeyboardHelp: return sf::Keyboard::sHelp; + case kHIDUsage_KeyboardMenu: return sf::Keyboard::sMenu; + case kHIDUsage_KeyboardSelect: return sf::Keyboard::sSelect; + case kHIDUsage_KeyboardStop: return sf::Keyboard::sStop; + case kHIDUsage_KeyboardAgain: return sf::Keyboard::sAgain; + case kHIDUsage_KeyboardUndo: return sf::Keyboard::sUndo; + case kHIDUsage_KeyboardCut: return sf::Keyboard::sCut; + case kHIDUsage_KeyboardCopy: return sf::Keyboard::sCopy; + case kHIDUsage_KeyboardPaste: return sf::Keyboard::sPaste; + case kHIDUsage_KeyboardFind: return sf::Keyboard::sFind; - case kHIDUsage_KeyboardMute: return 0xff; - case kHIDUsage_KeyboardVolumeUp: return 0xff; - case kHIDUsage_KeyboardVolumeDown: return 0xff; + case kHIDUsage_KeyboardMute: return sf::Keyboard::sMute; + case kHIDUsage_KeyboardVolumeUp: return sf::Keyboard::sVolumeUp; + case kHIDUsage_KeyboardVolumeDown: return sf::Keyboard::sVolumeDown; - case kHIDUsage_KeyboardLockingCapsLock: return 0xff; - case kHIDUsage_KeyboardLockingNumLock: return 0xff; - case kHIDUsage_KeyboardLockingScrollLock: return 0xff; + case kHIDUsage_KeyboardLockingCapsLock: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLockingNumLock: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLockingScrollLock: return sf::Keyboard::sUnknown; - case kHIDUsage_KeypadComma: return 0xff; - case kHIDUsage_KeypadEqualSignAS400: return 0xff; - case kHIDUsage_KeyboardInternational1: return 0xff; - case kHIDUsage_KeyboardInternational2: return 0xff; - case kHIDUsage_KeyboardInternational3: return 0xff; - case kHIDUsage_KeyboardInternational4: return 0xff; - case kHIDUsage_KeyboardInternational5: return 0xff; - case kHIDUsage_KeyboardInternational6: return 0xff; - case kHIDUsage_KeyboardInternational7: return 0xff; - case kHIDUsage_KeyboardInternational8: return 0xff; - case kHIDUsage_KeyboardInternational9: return 0xff; + case kHIDUsage_KeypadComma: return sf::Keyboard::sUnknown; + case kHIDUsage_KeypadEqualSignAS400: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational1: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational2: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational3: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational4: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational5: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational6: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational7: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational8: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardInternational9: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG1: return 0xff; - case kHIDUsage_KeyboardLANG2: return 0xff; - case kHIDUsage_KeyboardLANG3: return 0xff; - case kHIDUsage_KeyboardLANG4: return 0xff; - case kHIDUsage_KeyboardLANG5: return 0xff; - case kHIDUsage_KeyboardLANG6: return 0xff; - case kHIDUsage_KeyboardLANG7: return 0xff; - case kHIDUsage_KeyboardLANG8: return 0xff; - case kHIDUsage_KeyboardLANG9: return 0xff; + case kHIDUsage_KeyboardLANG1: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG2: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG3: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG4: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG5: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG6: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG7: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG8: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG9: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardAlternateErase: return 0xff; - case kHIDUsage_KeyboardSysReqOrAttention: return 0xff; - case kHIDUsage_KeyboardCancel: return 0xff; - case kHIDUsage_KeyboardClear: return 0xff; - case kHIDUsage_KeyboardPrior: return 0xff; - case kHIDUsage_KeyboardReturn: return 0xff; - case kHIDUsage_KeyboardSeparator: return 0xff; - case kHIDUsage_KeyboardOut: return 0xff; - case kHIDUsage_KeyboardOper: return 0xff; - case kHIDUsage_KeyboardClearOrAgain: return 0xff; - case kHIDUsage_KeyboardCrSelOrProps: return 0xff; - case kHIDUsage_KeyboardExSel: return 0xff; + case kHIDUsage_KeyboardAlternateErase: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardSysReqOrAttention: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardCancel: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardClear: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardPrior: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardReturn: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardSeparator: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardOut: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardOper: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardClearOrAgain: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardCrSelOrProps: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardExSel: return sf::Keyboard::sUnknown; /* 0xa5-0xdf Reserved */ - case kHIDUsage_KeyboardLeftControl: return 0x3b; - case kHIDUsage_KeyboardLeftShift: return 0x38; - case kHIDUsage_KeyboardLeftAlt: return 0x3a; - case kHIDUsage_KeyboardLeftGUI: return 0x37; - case kHIDUsage_KeyboardRightControl: return 0x3e; - case kHIDUsage_KeyboardRightShift: return 0x3c; - case kHIDUsage_KeyboardRightAlt: return 0x3d; - case kHIDUsage_KeyboardRightGUI: return 0x36; + case kHIDUsage_KeyboardLeftControl: return sf::Keyboard::sLControl; + case kHIDUsage_KeyboardLeftShift: return sf::Keyboard::sLShift; + case kHIDUsage_KeyboardLeftAlt: return sf::Keyboard::sLAlt; + case kHIDUsage_KeyboardLeftGUI: return sf::Keyboard::sLSystem; + case kHIDUsage_KeyboardRightControl: return sf::Keyboard::sRControl; + case kHIDUsage_KeyboardRightShift: return sf::Keyboard::sRShift; + case kHIDUsage_KeyboardRightAlt: return sf::Keyboard::sRAlt; + case kHIDUsage_KeyboardRightGUI: return sf::Keyboard::sRSystem; /* 0xe8-0xffff Reserved */ - case kHIDUsage_Keyboard_Reserved: return 0xff; - default: return 0xff; + case kHIDUsage_Keyboard_Reserved: return sf::Keyboard::sUnknown; + default: return sf::Keyboard::sUnknown; } } //////////////////////////////////////////////////////// -Keyboard::Key HIDInputManager::localizedKeys(UniChar ch) +Keyboard::Key HIDInputManager::localizedKey(UniChar ch) { + // Apple is using the private range 0xE000 - 0xF8FF for special keys. + // Otherwise one can refer to the usual Unicode table. switch (ch) { - case 'a': - case 'A': return sf::Keyboard::A; + case 0x41: return sf::Keyboard::A; // uppercase A + case 0x42: return sf::Keyboard::B; + case 0x43: return sf::Keyboard::C; + case 0x44: return sf::Keyboard::D; + case 0x45: return sf::Keyboard::E; + case 0x46: return sf::Keyboard::F; + case 0x47: return sf::Keyboard::G; + case 0x48: return sf::Keyboard::H; + case 0x49: return sf::Keyboard::I; + case 0x4a: return sf::Keyboard::J; + case 0x4b: return sf::Keyboard::K; + case 0x4c: return sf::Keyboard::L; + case 0x4d: return sf::Keyboard::M; + case 0x4e: return sf::Keyboard::N; + case 0x4f: return sf::Keyboard::O; + case 0x50: return sf::Keyboard::P; + case 0x51: return sf::Keyboard::Q; + case 0x52: return sf::Keyboard::R; + case 0x53: return sf::Keyboard::S; + case 0x54: return sf::Keyboard::T; + case 0x55: return sf::Keyboard::U; + case 0x56: return sf::Keyboard::V; + case 0x57: return sf::Keyboard::W; + case 0x58: return sf::Keyboard::X; + case 0x59: return sf::Keyboard::Y; - case 'b': - case 'B': return sf::Keyboard::B; + case 0x5a: return sf::Keyboard::Z; // lowercase A + case 0x61: return sf::Keyboard::A; + case 0x62: return sf::Keyboard::B; + case 0x63: return sf::Keyboard::C; + case 0x64: return sf::Keyboard::D; + case 0x65: return sf::Keyboard::E; + case 0x66: return sf::Keyboard::F; + case 0x67: return sf::Keyboard::G; + case 0x68: return sf::Keyboard::H; + case 0x69: return sf::Keyboard::I; + case 0x6a: return sf::Keyboard::J; + case 0x6b: return sf::Keyboard::K; + case 0x6c: return sf::Keyboard::L; + case 0x6d: return sf::Keyboard::M; + case 0x6e: return sf::Keyboard::N; + case 0x6f: return sf::Keyboard::O; + case 0x70: return sf::Keyboard::P; + case 0x71: return sf::Keyboard::Q; + case 0x72: return sf::Keyboard::R; + case 0x73: return sf::Keyboard::S; + case 0x74: return sf::Keyboard::T; + case 0x75: return sf::Keyboard::U; + case 0x76: return sf::Keyboard::V; + case 0x77: return sf::Keyboard::W; + case 0x78: return sf::Keyboard::X; + case 0x79: return sf::Keyboard::Y; + case 0x7a: return sf::Keyboard::Z; - case 'c': - case 'C': return sf::Keyboard::C; + case 0x30: return sf::Keyboard::Num0; + case 0x31: return sf::Keyboard::Num1; + case 0x32: return sf::Keyboard::Num2; + case 0x33: return sf::Keyboard::Num3; + case 0x34: return sf::Keyboard::Num4; + case 0x35: return sf::Keyboard::Num5; + case 0x36: return sf::Keyboard::Num6; + case 0x37: return sf::Keyboard::Num7; + case 0x38: return sf::Keyboard::Num8; + case 0x39: return sf::Keyboard::Num9; - case 'd': - case 'D': return sf::Keyboard::D; + case 0x1b: return sf::Keyboard::Escape; - case 'e': - case 'E': return sf::Keyboard::E; + /* Those are not represented using Unicode. + * case 0x: return sf::Keyboard::LControl; + * case 0x: return sf::Keyboard::LShift; + * case 0x: return sf::Keyboard::LAlt; + * case 0x: return sf::Keyboard::LSystem; + * case 0x: return sf::Keyboard::RControl; + * case 0x: return sf::Keyboard::RShift; + * case 0x: return sf::Keyboard::RAlt; + * case 0x: return sf::Keyboard::RSystem; + */ - case 'f': - case 'F': return sf::Keyboard::F; + case NSMenuFunctionKey: return sf::Keyboard::Menu; - case 'g': - case 'G': return sf::Keyboard::G; + case 0x5b: return sf::Keyboard::LBracket; + case 0x5d: return sf::Keyboard::RBracket; + case 0x3b: return sf::Keyboard::SemiColon; + case 0x2c: return sf::Keyboard::Comma; + case 0x2e: return sf::Keyboard::Period; + case 0x27: return sf::Keyboard::Quote; + case 0x2044: return sf::Keyboard::Slash; // 0x2f is Divide + case 0x5c: return sf::Keyboard::BackSlash; + case 0x7e: return sf::Keyboard::Tilde; + case 0x3d: return sf::Keyboard::Equal; + case 0x2013: return sf::Keyboard::Dash; // 0x2d is Subtract + case 0x20: return sf::Keyboard::Space; + case 0x0d: return sf::Keyboard::Return; + case 0x7f: return sf::Keyboard::BackSpace; // NOTE backspace & delete are swapped on Mac. + case 0x09: return sf::Keyboard::Tab; - case 'h': - case 'H': return sf::Keyboard::H; + case NSPageUpFunctionKey: return sf::Keyboard::PageUp; + case NSPageDownFunctionKey: return sf::Keyboard::PageDown; + case NSEndFunctionKey: return sf::Keyboard::End; + case NSHomeFunctionKey: return sf::Keyboard::Home; + case NSInsertFunctionKey: return sf::Keyboard::Insert; + case NSDeleteFunctionKey: return sf::Keyboard::Delete; - case 'i': - case 'I': return sf::Keyboard::I; + case 0x2b: return sf::Keyboard::Add; + case 0x2d: return sf::Keyboard::Subtract; + case 0x2a: return sf::Keyboard::Multiply; + case 0x2f: return sf::Keyboard::Divide; - case 'j': - case 'J': return sf::Keyboard::J; + case NSLeftArrowFunctionKey: return sf::Keyboard::Left; + case NSRightArrowFunctionKey: return sf::Keyboard::Right; + case NSUpArrowFunctionKey: return sf::Keyboard::Up; + case NSDownArrowFunctionKey: return sf::Keyboard::Down; - case 'k': - case 'K': return sf::Keyboard::K; + /* Those are not represented using Unicode. + * case 0x: return sf::Keyboard::Numpad0; + * case 0x: return sf::Keyboard::Numpad1; + * case 0x: return sf::Keyboard::Numpad2; + * case 0x: return sf::Keyboard::Numpad3; + * case 0x: return sf::Keyboard::Numpad4; + * case 0x: return sf::Keyboard::Numpad5; + * case 0x: return sf::Keyboard::Numpad6; + * case 0x: return sf::Keyboard::Numpad7; + * case 0x: return sf::Keyboard::Numpad8; + * case 0x: return sf::Keyboard::Numpad9; + */ - case 'l': - case 'L': return sf::Keyboard::L; + case NSF1FunctionKey: return sf::Keyboard::F1; + case NSF2FunctionKey: return sf::Keyboard::F2; + case NSF3FunctionKey: return sf::Keyboard::F3; + case NSF4FunctionKey: return sf::Keyboard::F4; + case NSF5FunctionKey: return sf::Keyboard::F5; + case NSF6FunctionKey: return sf::Keyboard::F6; + case NSF7FunctionKey: return sf::Keyboard::F7; + case NSF8FunctionKey: return sf::Keyboard::F8; + case NSF9FunctionKey: return sf::Keyboard::F9; + case NSF10FunctionKey: return sf::Keyboard::F10; + case NSF11FunctionKey: return sf::Keyboard::F11; + case NSF12FunctionKey: return sf::Keyboard::F12; + case NSF13FunctionKey: return sf::Keyboard::F13; + case NSF14FunctionKey: return sf::Keyboard::F14; + case NSF15FunctionKey: return sf::Keyboard::F15; - case 'm': - case 'M': return sf::Keyboard::M; + case NSPauseFunctionKey: return sf::Keyboard::Pause; - case 'n': - case 'N': return sf::Keyboard::N; - - case 'o': - case 'O': return sf::Keyboard::O; - - case 'p': - case 'P': return sf::Keyboard::P; - - case 'q': - case 'Q': return sf::Keyboard::Q; - - case 'r': - case 'R': return sf::Keyboard::R; - - case 's': - case 'S': return sf::Keyboard::S; - - case 't': - case 'T': return sf::Keyboard::T; - - case 'u': - case 'U': return sf::Keyboard::U; - - case 'v': - case 'V': return sf::Keyboard::V; - - case 'w': - case 'W': return sf::Keyboard::W; - - case 'x': - case 'X': return sf::Keyboard::X; - - case 'y': - case 'Y': return sf::Keyboard::Y; - - case 'z': - case 'Z': return sf::Keyboard::Z; - - // The key is not 'localized'. - default: return sf::Keyboard::Unknown; + default: return sf::Keyboard::Unknown; } } //////////////////////////////////////////////////////// -Keyboard::Key HIDInputManager::nonLocalizedKeys(UniChar virtualKeycode) +UniChar HIDInputManager::toUnicode(Keyboard::Key key) { - // (Some) 0x code based on https://forums.macrumors.com/showthread.php?t=780577 - // Some sf::Keyboard::Key are present twice. + switch (key) + { + case sf::Keyboard::A: return 0x41; + case sf::Keyboard::B: return 0x42; + case sf::Keyboard::C: return 0x43; + case sf::Keyboard::D: return 0x44; + case sf::Keyboard::E: return 0x45; + case sf::Keyboard::F: return 0x46; + case sf::Keyboard::G: return 0x47; + case sf::Keyboard::H: return 0x48; + case sf::Keyboard::I: return 0x49; + case sf::Keyboard::J: return 0x4a; + case sf::Keyboard::K: return 0x4b; + case sf::Keyboard::L: return 0x4c; + case sf::Keyboard::M: return 0x4d; + case sf::Keyboard::N: return 0x4e; + case sf::Keyboard::O: return 0x4f; + case sf::Keyboard::P: return 0x50; + case sf::Keyboard::Q: return 0x51; + case sf::Keyboard::R: return 0x52; + case sf::Keyboard::S: return 0x53; + case sf::Keyboard::T: return 0x54; + case sf::Keyboard::U: return 0x55; + case sf::Keyboard::V: return 0x56; + case sf::Keyboard::W: return 0x57; + case sf::Keyboard::X: return 0x58; + case sf::Keyboard::Y: return 0x59; + case sf::Keyboard::Z: return 0x5a; + + case sf::Keyboard::Num0: return 0x30; + case sf::Keyboard::Num1: return 0x31; + case sf::Keyboard::Num2: return 0x32; + case sf::Keyboard::Num3: return 0x33; + case sf::Keyboard::Num4: return 0x34; + case sf::Keyboard::Num5: return 0x35; + case sf::Keyboard::Num6: return 0x36; + case sf::Keyboard::Num7: return 0x37; + case sf::Keyboard::Num8: return 0x38; + case sf::Keyboard::Num9: return 0x39; + + case sf::Keyboard::Escape: return 0x1b; + + /* Not representable as Unicode: + * case sf::Keyboard::LControl: return 0x; + * case sf::Keyboard::LShift: return 0x; + * case sf::Keyboard::LAlt: return 0x; + * case sf::Keyboard::LSystem: return 0x; + * case sf::Keyboard::RControl: return 0x; + * case sf::Keyboard::RShift: return 0x; + * case sf::Keyboard::RAlt: return 0x; + * case sf::Keyboard::RSystem: return 0x; + */ + + case sf::Keyboard::Menu: return NSMenuFunctionKey; + + case sf::Keyboard::LBracket: return 0x5b; + case sf::Keyboard::RBracket: return 0x5d; + case sf::Keyboard::SemiColon: return 0x3b; + case sf::Keyboard::Comma: return 0x2c; + case sf::Keyboard::Period: return 0x2e; + case sf::Keyboard::Quote: return 0x27; + case sf::Keyboard::Slash: return 0x2044; // 0x2f is Divide + case sf::Keyboard::BackSlash: return 0x5c; + case sf::Keyboard::Tilde: return 0x7e; + case sf::Keyboard::Equal: return 0x3d; + case sf::Keyboard::Dash: return 0x2013; // 0x2d is Subtract + case sf::Keyboard::Space: return 0x20; + case sf::Keyboard::Return: return 0x0d; + case sf::Keyboard::BackSpace: return 0x7f; // NOTE backspace & delete are swapped on Mac. + case sf::Keyboard::Tab: return 0x09; + + case sf::Keyboard::PageUp: return NSPageUpFunctionKey; + case sf::Keyboard::PageDown: return NSPageDownFunctionKey; + case sf::Keyboard::End: return NSEndFunctionKey; + case sf::Keyboard::Home: return NSHomeFunctionKey; + case sf::Keyboard::Insert: return NSInsertFunctionKey; + case sf::Keyboard::Delete: return NSDeleteFunctionKey; + + case sf::Keyboard::Add: return 0x2b; + case sf::Keyboard::Subtract: return 0x2d; + case sf::Keyboard::Multiply: return 0x2a; + case sf::Keyboard::Divide: return 0x2f; + + case sf::Keyboard::Left: return NSLeftArrowFunctionKey; + case sf::Keyboard::Right: return NSRightArrowFunctionKey; + case sf::Keyboard::Up: return NSUpArrowFunctionKey; + case sf::Keyboard::Down: return NSDownArrowFunctionKey; + + /* Those are not represented using Unicode. + * case sf::Keyboard::Numpad0: return 0x; + * case sf::Keyboard::Numpad1: return 0x; + * case sf::Keyboard::Numpad2: return 0x; + * case sf::Keyboard::Numpad3: return 0x; + * case sf::Keyboard::Numpad4: return 0x; + * case sf::Keyboard::Numpad5: return 0x; + * case sf::Keyboard::Numpad6: return 0x; + * case sf::Keyboard::Numpad7: return 0x; + * case sf::Keyboard::Numpad8: return 0x; + * case sf::Keyboard::Numpad9: return 0x; + */ + + case sf::Keyboard::F1: return NSF1FunctionKey; + case sf::Keyboard::F2: return NSF2FunctionKey; + case sf::Keyboard::F3: return NSF3FunctionKey; + case sf::Keyboard::F4: return NSF4FunctionKey; + case sf::Keyboard::F5: return NSF5FunctionKey; + case sf::Keyboard::F6: return NSF6FunctionKey; + case sf::Keyboard::F7: return NSF7FunctionKey; + case sf::Keyboard::F8: return NSF8FunctionKey; + case sf::Keyboard::F9: return NSF9FunctionKey; + case sf::Keyboard::F10: return NSF10FunctionKey; + case sf::Keyboard::F11: return NSF11FunctionKey; + case sf::Keyboard::F12: return NSF12FunctionKey; + case sf::Keyboard::F13: return NSF13FunctionKey; + case sf::Keyboard::F14: return NSF14FunctionKey; + case sf::Keyboard::F15: return NSF15FunctionKey; + + case sf::Keyboard::Pause: return NSPauseFunctionKey; + + default: return 0x00; + } +} + + +//////////////////////////////////////////////////////// +Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode) +{ + // See Chapter 2, esp. Figure 2-10 of + // https://developer.apple.com/legacy/library/documentation/mac/pdf/MacintoshToolboxEssentials.pdf + // Additional virtual codes come from + // /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h switch (virtualKeycode) { - // These cases should not be used but anyway... - case 0x00: return sf::Keyboard::A; - case 0x0b: return sf::Keyboard::B; - case 0x08: return sf::Keyboard::C; - case 0x02: return sf::Keyboard::D; - case 0x0e: return sf::Keyboard::E; - case 0x03: return sf::Keyboard::F; - case 0x05: return sf::Keyboard::G; - case 0x04: return sf::Keyboard::H; - case 0x22: return sf::Keyboard::I; - case 0x26: return sf::Keyboard::J; - case 0x28: return sf::Keyboard::K; - case 0x25: return sf::Keyboard::L; - case 0x2e: return sf::Keyboard::M; - case 0x2d: return sf::Keyboard::N; - case 0x1f: return sf::Keyboard::O; - case 0x23: return sf::Keyboard::P; - case 0x0c: return sf::Keyboard::Q; - case 0x0f: return sf::Keyboard::R; - case 0x01: return sf::Keyboard::S; - case 0x11: return sf::Keyboard::T; - case 0x20: return sf::Keyboard::U; - case 0x09: return sf::Keyboard::V; - case 0x0d: return sf::Keyboard::W; - case 0x07: return sf::Keyboard::X; - case 0x10: return sf::Keyboard::Y; - case 0x06: return sf::Keyboard::Z; + case 0x00: return sf::Keyboard::sA; + case 0x0b: return sf::Keyboard::sB; + case 0x08: return sf::Keyboard::sC; + case 0x02: return sf::Keyboard::sD; + case 0x0e: return sf::Keyboard::sE; + case 0x03: return sf::Keyboard::sF; + case 0x05: return sf::Keyboard::sG; + case 0x04: return sf::Keyboard::sH; + case 0x22: return sf::Keyboard::sI; + case 0x26: return sf::Keyboard::sJ; + case 0x28: return sf::Keyboard::sK; + case 0x25: return sf::Keyboard::sL; + case 0x2e: return sf::Keyboard::sM; + case 0x2d: return sf::Keyboard::sN; + case 0x1f: return sf::Keyboard::sO; + case 0x23: return sf::Keyboard::sP; + case 0x0c: return sf::Keyboard::sQ; + case 0x0f: return sf::Keyboard::sR; + case 0x01: return sf::Keyboard::sS; + case 0x11: return sf::Keyboard::sT; + case 0x20: return sf::Keyboard::sU; + case 0x09: return sf::Keyboard::sV; + case 0x0d: return sf::Keyboard::sW; + case 0x07: return sf::Keyboard::sX; + case 0x10: return sf::Keyboard::sY; + case 0x06: return sf::Keyboard::sZ; - // These cases should not be used but anyway... - case 0x1d: return sf::Keyboard::Num0; - case 0x12: return sf::Keyboard::Num1; - case 0x13: return sf::Keyboard::Num2; - case 0x14: return sf::Keyboard::Num3; - case 0x15: return sf::Keyboard::Num4; - case 0x17: return sf::Keyboard::Num5; - case 0x16: return sf::Keyboard::Num6; - case 0x1a: return sf::Keyboard::Num7; - case 0x1c: return sf::Keyboard::Num8; - case 0x19: return sf::Keyboard::Num9; + case 0x12: return sf::Keyboard::sNum1; + case 0x13: return sf::Keyboard::sNum2; + case 0x14: return sf::Keyboard::sNum3; + case 0x15: return sf::Keyboard::sNum4; + case 0x17: return sf::Keyboard::sNum5; + case 0x16: return sf::Keyboard::sNum6; + case 0x1a: return sf::Keyboard::sNum7; + case 0x1c: return sf::Keyboard::sNum8; + case 0x19: return sf::Keyboard::sNum9; + case 0x1d: return sf::Keyboard::sNum0; - case 0x35: return sf::Keyboard::Escape; + case 0x24: return sf::Keyboard::sEnter; + case 0x35: return sf::Keyboard::sEscape; + case 0x33: return sf::Keyboard::sBackspace; + case 0x30: return sf::Keyboard::sTab; + case 0x31: return sf::Keyboard::sSpace; + // case 0x27: return sf::Keyboard::sHyphen; // TODO 0x27 is for Quote + case 0x18: return sf::Keyboard::sEquals; + case 0x21: return sf::Keyboard::sLBracket; + case 0x1e: return sf::Keyboard::sRBracket; + case 0x2a: return sf::Keyboard::sBackslash; + case 0x1b: return sf::Keyboard::sDash; + case 0x29: return sf::Keyboard::sSemicolon; + case 0x27: return sf::Keyboard::sQuote; + case 0x32: return sf::Keyboard::sGraveAccent; + case 0x2b: return sf::Keyboard::sComma; + case 0x2f: return sf::Keyboard::sPeriod; + case 0x2c: return sf::Keyboard::sForwardSlash; - // Modifier keys : never happen with keyDown/keyUp methods (?) - case 0x3b: return sf::Keyboard::LControl; - case 0x38: return sf::Keyboard::LShift; - case 0x3a: return sf::Keyboard::LAlt; - case 0x37: return sf::Keyboard::LSystem; - case 0x3e: return sf::Keyboard::RControl; - case 0x3c: return sf::Keyboard::RShift; - case 0x3d: return sf::Keyboard::RAlt; - case 0x36: return sf::Keyboard::RSystem; + case 0x7a: return sf::Keyboard::sF1; + case 0x78: return sf::Keyboard::sF2; + case 0x63: return sf::Keyboard::sF3; + case 0x76: return sf::Keyboard::sF4; + case 0x60: return sf::Keyboard::sF5; + case 0x61: return sf::Keyboard::sF6; + case 0x62: return sf::Keyboard::sF7; + case 0x64: return sf::Keyboard::sF8; + case 0x65: return sf::Keyboard::sF9; + case 0x6d: return sf::Keyboard::sF10; + case 0x67: return sf::Keyboard::sF11; + case 0x6f: return sf::Keyboard::sF12; + case 0x69: return sf::Keyboard::sF13; + case 0x6b: return sf::Keyboard::sF14; + case 0x71: return sf::Keyboard::sF15; - case 0x7f: return sf::Keyboard::Menu; - case NSMenuFunctionKey: return sf::Keyboard::Menu; + case 0x39: return sf::Keyboard::sCapsLock; - case 0x21: return sf::Keyboard::LBracket; - case 0x1e: return sf::Keyboard::RBracket; - case 0x29: return sf::Keyboard::Semicolon; - case 0x2b: return sf::Keyboard::Comma; - case 0x41: /* keypad */ return sf::Keyboard::Period; - case 0x2f: /* keyboard */ return sf::Keyboard::Period; - case 0x27: return sf::Keyboard::Quote; - case 0x2c: return sf::Keyboard::Slash; - case 0x2a: return sf::Keyboard::Backslash; + /* TODO Those are missing: + * case 0x: return sf::Keyboard::sPrintScreen; + * case 0x: return sf::Keyboard::sScrollLock; + * case 0x: return sf::Keyboard::sPause; + */ - // sf::Keyboard::Tilde might be in conflict with some other key. - // 0x0a is for "Non-US Backslash" according to HID Calibrator, - // a sample provided by Apple. - case 0x0a: return sf::Keyboard::Tilde; + case 0x72: return sf::Keyboard::sInsert; + case 0x73: return sf::Keyboard::sHome; + case 0x74: return sf::Keyboard::sPageUp; + case 0x75: return sf::Keyboard::sDelete; + case 0x77: return sf::Keyboard::sEnd; + case 0x79: return sf::Keyboard::sPageDown; - case 0x51: /* keypad */ return sf::Keyboard::Equal; - case 0x18: /* keyboard */ return sf::Keyboard::Equal; - case 0x32: return sf::Keyboard::Hyphen; - case 0x31: return sf::Keyboard::Space; - case 0x4c: /* keypad */ return sf::Keyboard::Enter; - case 0x24: /* keyboard */ return sf::Keyboard::Enter; - case 0x33: return sf::Keyboard::Backspace; - case 0x30: return sf::Keyboard::Tab; + case 0x7c: return sf::Keyboard::sRight; + case 0x7b: return sf::Keyboard::sLeft; + case 0x7d: return sf::Keyboard::sDown; + case 0x7e: return sf::Keyboard::sUp; - // Duplicates (see next section). - case 0x74: return sf::Keyboard::PageUp; - case 0x79: return sf::Keyboard::PageDown; - case 0x77: return sf::Keyboard::End; - case 0x73: return sf::Keyboard::Home; + case 0x47: return sf::Keyboard::sNumLock; + case 0x4b: return sf::Keyboard::sDivide; + case 0x43: return sf::Keyboard::sMultiply; + case 0x4e: return sf::Keyboard::sMinus; + case 0x45: return sf::Keyboard::sPlus; + case 0x51: return sf::Keyboard::sPadEquals; + case 0x4c: return sf::Keyboard::sReturn; + case 0x41: return sf::Keyboard::sDecimal; - case NSPageUpFunctionKey: return sf::Keyboard::PageUp; - case NSPageDownFunctionKey: return sf::Keyboard::PageDown; - case NSEndFunctionKey: return sf::Keyboard::End; - case NSHomeFunctionKey: return sf::Keyboard::Home; + case 0x53: return sf::Keyboard::sNumpad1; + case 0x54: return sf::Keyboard::sNumpad2; + case 0x55: return sf::Keyboard::sNumpad3; + case 0x56: return sf::Keyboard::sNumpad4; + case 0x57: return sf::Keyboard::sNumpad5; + case 0x58: return sf::Keyboard::sNumpad6; + case 0x59: return sf::Keyboard::sNumpad7; + case 0x5b: return sf::Keyboard::sNumpad8; + case 0x5c: return sf::Keyboard::sNumpad9; + case 0x52: return sf::Keyboard::sNumpad0; - case 0x72: return sf::Keyboard::Insert; - case NSInsertFunctionKey: return sf::Keyboard::Insert; - case 0x75: return sf::Keyboard::Delete; - case NSDeleteFunctionKey: return sf::Keyboard::Delete; + /* TODO Those are missing: + * case 0x: return sf::Keyboard::sReverseSolidus; + * case 0x: return sf::Keyboard::sApplication; + * case 0x: return sf::Keyboard::sExecute; + * case 0x72: return sf::Keyboard::sHelp; // 0x72 is for Insert + * case 0x: return sf::Keyboard::sMenu; + * case 0x: return sf::Keyboard::sSelect; + * case 0x: return sf::Keyboard::sStop; + * case 0x: return sf::Keyboard::sAgain; + * case 0x: return sf::Keyboard::sUndo; + * case 0x: return sf::Keyboard::sCut; + * case 0x: return sf::Keyboard::sCopy; + * case 0x: return sf::Keyboard::sPaste; + * case 0x: return sf::Keyboard::sFind; + */ - case 0x45: return sf::Keyboard::Add; - case 0x4e: return sf::Keyboard::Subtract; - case 0x43: return sf::Keyboard::Multiply; - case 0x4b: return sf::Keyboard::Divide; + case 0x4a: return sf::Keyboard::sMute; + case 0x48: return sf::Keyboard::sVolumeUp; + case 0x49: return sf::Keyboard::sVolumeDown; - // Duplicates (see next section). - case 0x7b: return sf::Keyboard::Left; - case 0x7c: return sf::Keyboard::Right; - case 0x7e: return sf::Keyboard::Up; - case 0x7d: return sf::Keyboard::Down; + /* NOTE Those are symmetric so we leave them out. + * Thankfully handled through modifiers and not virtual codes. + * case 0x3b: return sf::Keyboard::sLControl; + * case 0x38: return sf::Keyboard::sLShift; + * case 0x3a: return sf::Keyboard::sLAlt; + * case 0x37: return sf::Keyboard::sLSystem; + * case 0x3b: return sf::Keyboard::sRControl; + * case 0x38: return sf::Keyboard::sRShift; + * case 0x3a: return sf::Keyboard::sRAlt; + * case 0x37: return sf::Keyboard::sRSystem; + */ - case NSLeftArrowFunctionKey: return sf::Keyboard::Left; - case NSRightArrowFunctionKey: return sf::Keyboard::Right; - case NSUpArrowFunctionKey: return sf::Keyboard::Up; - case NSDownArrowFunctionKey: return sf::Keyboard::Down; + default: return sf::Keyboard::sUnknown; + } +} - case 0x52: return sf::Keyboard::Numpad0; - case 0x53: return sf::Keyboard::Numpad1; - case 0x54: return sf::Keyboard::Numpad2; - case 0x55: return sf::Keyboard::Numpad3; - case 0x56: return sf::Keyboard::Numpad4; - case 0x57: return sf::Keyboard::Numpad5; - case 0x58: return sf::Keyboard::Numpad6; - case 0x59: return sf::Keyboard::Numpad7; - case 0x5b: return sf::Keyboard::Numpad8; - case 0x5c: return sf::Keyboard::Numpad9; - // Duplicates (see next section). - case 0x7a: return sf::Keyboard::F1; - case 0x78: return sf::Keyboard::F2; - case 0x63: return sf::Keyboard::F3; - case 0x76: return sf::Keyboard::F4; - case 0x60: return sf::Keyboard::F5; - case 0x61: return sf::Keyboard::F6; - case 0x62: return sf::Keyboard::F7; - case 0x64: return sf::Keyboard::F8; - case 0x65: return sf::Keyboard::F9; - case 0x6d: return sf::Keyboard::F10; - case 0x67: return sf::Keyboard::F11; - case 0x6f: return sf::Keyboard::F12; - case 0x69: return sf::Keyboard::F13; - case 0x6b: return sf::Keyboard::F14; - case 0x71: return sf::Keyboard::F15; +//////////////////////////////////////////////////////// +UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code) +{ + switch (code) + { + case sf::Keyboard::sA: return 0x00; + case sf::Keyboard::sB: return 0x0b; + case sf::Keyboard::sC: return 0x08; + case sf::Keyboard::sD: return 0x02; + case sf::Keyboard::sE: return 0x0e; + case sf::Keyboard::sF: return 0x03; + case sf::Keyboard::sG: return 0x05; + case sf::Keyboard::sH: return 0x04; + case sf::Keyboard::sI: return 0x22; + case sf::Keyboard::sJ: return 0x26; + case sf::Keyboard::sK: return 0x28; + case sf::Keyboard::sL: return 0x25; + case sf::Keyboard::sM: return 0x2e; + case sf::Keyboard::sN: return 0x2d; + case sf::Keyboard::sO: return 0x1f; + case sf::Keyboard::sP: return 0x23; + case sf::Keyboard::sQ: return 0x0c; + case sf::Keyboard::sR: return 0x0f; + case sf::Keyboard::sS: return 0x01; + case sf::Keyboard::sT: return 0x11; + case sf::Keyboard::sU: return 0x20; + case sf::Keyboard::sV: return 0x09; + case sf::Keyboard::sW: return 0x0d; + case sf::Keyboard::sX: return 0x07; + case sf::Keyboard::sY: return 0x10; + case sf::Keyboard::sZ: return 0x06; - case NSF1FunctionKey: return sf::Keyboard::F1; - case NSF2FunctionKey: return sf::Keyboard::F2; - case NSF3FunctionKey: return sf::Keyboard::F3; - case NSF4FunctionKey: return sf::Keyboard::F4; - case NSF5FunctionKey: return sf::Keyboard::F5; - case NSF6FunctionKey: return sf::Keyboard::F6; - case NSF7FunctionKey: return sf::Keyboard::F7; - case NSF8FunctionKey: return sf::Keyboard::F8; - case NSF9FunctionKey: return sf::Keyboard::F9; - case NSF10FunctionKey: return sf::Keyboard::F10; - case NSF11FunctionKey: return sf::Keyboard::F11; - case NSF12FunctionKey: return sf::Keyboard::F12; - case NSF13FunctionKey: return sf::Keyboard::F13; - case NSF14FunctionKey: return sf::Keyboard::F14; - case NSF15FunctionKey: return sf::Keyboard::F15; + case sf::Keyboard::sNum1: return 0x12; + case sf::Keyboard::sNum2: return 0x13; + case sf::Keyboard::sNum3: return 0x14; + case sf::Keyboard::sNum4: return 0x15; + case sf::Keyboard::sNum5: return 0x17; + case sf::Keyboard::sNum6: return 0x16; + case sf::Keyboard::sNum7: return 0x1a; + case sf::Keyboard::sNum8: return 0x1c; + case sf::Keyboard::sNum9: return 0x19; + case sf::Keyboard::sNum0: return 0x1d; - case NSPauseFunctionKey: return sf::Keyboard::Pause; + case sf::Keyboard::sEnter: return 0x24; + case sf::Keyboard::sEscape: return 0x35; + case sf::Keyboard::sBackspace: return 0x33; + case sf::Keyboard::sTab: return 0x30; + case sf::Keyboard::sSpace: return 0x31; - // keycode 0x1b is not bound to any key. - // This key is ' on CH-FR, ) on FR and - on US layouts. + // case sf::Keyboard::sHyphen: return 0; // 0x27 is for Quote - // An unknown key. - default: return sf::Keyboard::Unknown; + case sf::Keyboard::sEquals: return 0x18; + case sf::Keyboard::sLBracket: return 0x21; + case sf::Keyboard::sRBracket: return 0x1e; + case sf::Keyboard::sBackslash: return 0x2a; + case sf::Keyboard::sDash: return 0x1b; + case sf::Keyboard::sSemicolon: return 0x29; + case sf::Keyboard::sQuote: return 0x27; + case sf::Keyboard::sGraveAccent: return 0x32; + case sf::Keyboard::sComma: return 0x2b; + case sf::Keyboard::sPeriod: return 0x2f; + case sf::Keyboard::sForwardSlash: return 0x2c; + + case sf::Keyboard::sF1: return 0x7a; + case sf::Keyboard::sF2: return 0x78; + case sf::Keyboard::sF3: return 0x63; + case sf::Keyboard::sF4: return 0x76; + case sf::Keyboard::sF5: return 0x60; + case sf::Keyboard::sF6: return 0x61; + case sf::Keyboard::sF7: return 0x62; + case sf::Keyboard::sF8: return 0x64; + case sf::Keyboard::sF9: return 0x65; + case sf::Keyboard::sF10: return 0x6d; + case sf::Keyboard::sF11: return 0x67; + case sf::Keyboard::sF12: return 0x6f; + case sf::Keyboard::sF13: return 0x69; + case sf::Keyboard::sF14: return 0x6b; + case sf::Keyboard::sF15: return 0x71; + + case sf::Keyboard::sCapsLock: return 0x39; + + /* TODO Those are missing: + * case sf::Keyboard::sPrintScreen: return 0; + * case sf::Keyboard::sScrollLock: return 0; + * case sf::Keyboard::sPause: return 0; + */ + case sf::Keyboard::sInsert: return 0x72; + case sf::Keyboard::sHome: return 0x73; + case sf::Keyboard::sPageUp: return 0x74; + case sf::Keyboard::sDelete: return 0x75; + case sf::Keyboard::sEnd: return 0x77; + case sf::Keyboard::sPageDown: return 0x79; + + case sf::Keyboard::sRight: return 0x7c; + case sf::Keyboard::sLeft: return 0x7b; + case sf::Keyboard::sDown: return 0x7d; + case sf::Keyboard::sUp: return 0x7e; + + case sf::Keyboard::sNumLock: return 0x47; + case sf::Keyboard::sDivide: return 0x4b; + case sf::Keyboard::sMultiply: return 0x43; + case sf::Keyboard::sMinus: return 0x4e; + case sf::Keyboard::sPlus: return 0x45; + case sf::Keyboard::sPadEquals: return 0x51; + case sf::Keyboard::sReturn: return 0x4c; + case sf::Keyboard::sDecimal: return 0x41; + + case sf::Keyboard::sNumpad1: return 0x53; + case sf::Keyboard::sNumpad2: return 0x54; + case sf::Keyboard::sNumpad3: return 0x55; + case sf::Keyboard::sNumpad4: return 0x56; + case sf::Keyboard::sNumpad5: return 0x57; + case sf::Keyboard::sNumpad6: return 0x58; + case sf::Keyboard::sNumpad7: return 0x59; + case sf::Keyboard::sNumpad8: return 0x5b; + case sf::Keyboard::sNumpad9: return 0x5c; + case sf::Keyboard::sNumpad0: return 0x52; + + /* TODO Those are missing: + * case sf::Keyboard::sReverseSolidus: return 0; + * case sf::Keyboard::sApplication: return 0; + * case sf::Keyboard::sExecute: return 0; + * case sf::Keyboard::sHelp: return 0; + * case sf::Keyboard::sMenu: return 0; + * case sf::Keyboard::sSelect: return 0; + * case sf::Keyboard::sStop: return 0; + * case sf::Keyboard::sAgain: return 0; + * case sf::Keyboard::sUndo: return 0; + * case sf::Keyboard::sCut: return 0; + * case sf::Keyboard::sCopy: return 0; + * case sf::Keyboard::sPaste: return 0; + * case sf::Keyboard::sFind: return 0; + */ + + case sf::Keyboard::sMute: return 0x4a; + case sf::Keyboard::sVolumeUp: return 0x48; + case sf::Keyboard::sVolumeDown: return 0x49; + + case sf::Keyboard::sLControl: return 0x3b; + case sf::Keyboard::sLShift: return 0x38; + case sf::Keyboard::sLAlt: return 0x3a; + case sf::Keyboard::sLSystem: return 0x37; + case sf::Keyboard::sRControl: return 0x3b; + case sf::Keyboard::sRShift: return 0x38; + case sf::Keyboard::sRAlt: return 0x3a; + case sf::Keyboard::sRSystem: return 0x37; + + default: return 0x00; + } +} + + +//////////////////////////////////////////////////////// +Keyboard::Key HIDInputManager::localizedKeyFallback(Keyboard::Scancode code) +{ + switch (code) + { + case sf::Keyboard::sEnter: return sf::Keyboard::Return; + case sf::Keyboard::sEscape: return sf::Keyboard::Escape; + case sf::Keyboard::sBackspace: return sf::Keyboard::BackSpace; + case sf::Keyboard::sTab: return sf::Keyboard::Tab; + case sf::Keyboard::sSpace: return sf::Keyboard::Space; + + case sf::Keyboard::sF1: return sf::Keyboard::F1; + case sf::Keyboard::sF2: return sf::Keyboard::F2; + case sf::Keyboard::sF3: return sf::Keyboard::F3; + case sf::Keyboard::sF4: return sf::Keyboard::F4; + case sf::Keyboard::sF5: return sf::Keyboard::F5; + case sf::Keyboard::sF6: return sf::Keyboard::F6; + case sf::Keyboard::sF7: return sf::Keyboard::F7; + case sf::Keyboard::sF8: return sf::Keyboard::F8; + case sf::Keyboard::sF9: return sf::Keyboard::F9; + case sf::Keyboard::sF10: return sf::Keyboard::F10; + case sf::Keyboard::sF11: return sf::Keyboard::F11; + case sf::Keyboard::sF12: return sf::Keyboard::F12; + case sf::Keyboard::sF13: return sf::Keyboard::F13; + case sf::Keyboard::sF14: return sf::Keyboard::F14; + case sf::Keyboard::sF15: return sf::Keyboard::F15; + + case sf::Keyboard::sPause: return sf::Keyboard::Pause; + case sf::Keyboard::sInsert: return sf::Keyboard::Insert; + case sf::Keyboard::sHome: return sf::Keyboard::Home; + case sf::Keyboard::sPageUp: return sf::Keyboard::PageUp; + case sf::Keyboard::sDelete: return sf::Keyboard::Delete; + case sf::Keyboard::sEnd: return sf::Keyboard::End; + case sf::Keyboard::sPageDown: return sf::Keyboard::PageDown; + + case sf::Keyboard::sRight: return sf::Keyboard::Right; + case sf::Keyboard::sLeft: return sf::Keyboard::Left; + case sf::Keyboard::sDown: return sf::Keyboard::Down; + case sf::Keyboard::sUp: return sf::Keyboard::Up; + + case sf::Keyboard::sDivide: return sf::Keyboard::Divide; + case sf::Keyboard::sMultiply: return sf::Keyboard::Multiply; + case sf::Keyboard::sMinus: return sf::Keyboard::Subtract; + case sf::Keyboard::sPlus: return sf::Keyboard::Add; + + case sf::Keyboard::sNumpad0: return sf::Keyboard::Numpad1; + case sf::Keyboard::sNumpad1: return sf::Keyboard::Numpad2; + case sf::Keyboard::sNumpad2: return sf::Keyboard::Numpad3; + case sf::Keyboard::sNumpad3: return sf::Keyboard::Numpad4; + case sf::Keyboard::sNumpad4: return sf::Keyboard::Numpad5; + case sf::Keyboard::sNumpad5: return sf::Keyboard::Numpad6; + case sf::Keyboard::sNumpad6: return sf::Keyboard::Numpad7; + case sf::Keyboard::sNumpad7: return sf::Keyboard::Numpad8; + case sf::Keyboard::sNumpad8: return sf::Keyboard::Numpad9; + case sf::Keyboard::sNumpad9: return sf::Keyboard::Numpad0; + + case sf::Keyboard::sLControl: return sf::Keyboard::LControl; + case sf::Keyboard::sLShift: return sf::Keyboard::LShift; + case sf::Keyboard::sLAlt: return sf::Keyboard::LAlt; + case sf::Keyboard::sLSystem: return sf::Keyboard::LSystem; + case sf::Keyboard::sRControl: return sf::Keyboard::RControl; + case sf::Keyboard::sRShift: return sf::Keyboard::RShift; + case sf::Keyboard::sRAlt: return sf::Keyboard::RAlt; + case sf::Keyboard::sRSystem: return sf::Keyboard::RSystem; + + default: return sf::Keyboard::Unknown; } } diff --git a/src/SFML/Window/OSX/InputImpl.mm b/src/SFML/Window/OSX/InputImpl.mm index 0397237a..84533803 100644 --- a/src/SFML/Window/OSX/InputImpl.mm +++ b/src/SFML/Window/OSX/InputImpl.mm @@ -39,9 +39,6 @@ /// In order to keep track of the keyboard's state and mouse buttons' state /// we use the HID manager. Mouse position is handled differently. /// -/// NB: we probably could use -/// NSEvent +addGlobalMonitorForEventsMatchingMask:handler: for mouse only. -/// //////////////////////////////////////////////////////////// namespace sf @@ -122,6 +119,7 @@ SFOpenGLView* getSFOpenGLViewFromSFMLWindow(const WindowBase& window) return view; } + //////////////////////////////////////////////////////////// bool InputImpl::isKeyPressed(Keyboard::Key key) { @@ -129,6 +127,34 @@ bool InputImpl::isKeyPressed(Keyboard::Key key) } +//////////////////////////////////////////////////////////// +bool InputImpl::isKeyPressed(Keyboard::Scancode code) +{ + return HIDInputManager::getInstance().isKeyPressed(code); +} + + +//////////////////////////////////////////////////////////// +Keyboard::Key InputImpl::localize(Keyboard::Scancode code) +{ + return HIDInputManager::getInstance().localize(code); +} + + +//////////////////////////////////////////////////////////// +Keyboard::Scancode InputImpl::unlocalize(Keyboard::Key key) +{ + return HIDInputManager::getInstance().unlocalize(key); +} + + +//////////////////////////////////////////////////////////// +String InputImpl::localizedRepresentation(Keyboard::Scancode code) +{ + return HIDInputManager::getInstance().localizedRepresentation(code); +} + + //////////////////////////////////////////////////////////// void InputImpl::setVirtualKeyboardVisible(bool /*visible*/) { diff --git a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h index ea2d5a17..03d6c093 100644 --- a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h +++ b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h @@ -56,7 +56,8 @@ void initialiseKeyboardHelper(void); /// \brief Set up a SFML key event based on the given modifiers flags and key code /// //////////////////////////////////////////////////////////// -sf::Event::KeyEvent keyEventWithModifiers(NSUInteger modifiers, sf::Keyboard::Key key); +sf::Event::KeyEvent keyEventWithModifiers(NSUInteger modifiers, sf::Keyboard::Key key, + sf::Keyboard::Scancode code); //////////////////////////////////////////////////////////// diff --git a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm index 105e9110..cf9a1940 100644 --- a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm +++ b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm @@ -92,6 +92,7 @@ BOOL isKeyMaskActive(NSUInteger modifiers, NSUInteger mask); //////////////////////////////////////////////////////////// void processOneModifier(NSUInteger modifiers, NSUInteger mask, BOOL& wasDown, sf::Keyboard::Key key, + sf::Keyboard::Scancode code, sf::priv::WindowImplCocoa& requester); @@ -105,6 +106,7 @@ void processLeftRightModifiers(NSUInteger modifiers, NSUInteger leftMask, NSUInteger rightMask, BOOL& leftWasDown, BOOL& rightWasDown, sf::Keyboard::Key leftKey, sf::Keyboard::Key rightKey, + sf::Keyboard::Scancode leftCode, sf::Keyboard::Scancode rightCode, sf::priv::WindowImplCocoa& requester); @@ -136,14 +138,15 @@ void initialiseKeyboardHelper(void) //////////////////////////////////////////////////////// -sf::Event::KeyEvent keyEventWithModifiers(NSUInteger modifiers, sf::Keyboard::Key key) +sf::Event::KeyEvent keyEventWithModifiers(NSUInteger modifiers, sf::Keyboard::Key key, sf::Keyboard::Scancode code) { sf::Event::KeyEvent event; - event.code = key; - event.alt = modifiers & NSAlternateKeyMask; - event.control = modifiers & NSControlKeyMask; - event.shift = modifiers & NSShiftKeyMask; - event.system = modifiers & NSCommandKeyMask; + event.code = key; + event.scancode = code; + event.alt = modifiers & NSAlternateKeyMask; + event.control = modifiers & NSControlKeyMask; + event.shift = modifiers & NSShiftKeyMask; + event.system = modifiers & NSCommandKeyMask; return event; } @@ -158,6 +161,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftShiftKeyMask, NSRightShiftKeyMask, state.leftShiftWasDown, state.rightShiftWasDown, sf::Keyboard::LShift, sf::Keyboard::RShift, + sf::Keyboard::sLShift, sf::Keyboard::sRShift, requester ); @@ -167,6 +171,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftCommandKeyMask, NSRightCommandKeyMask, state.leftCommandWasDown, state.rightCommandWasDown, sf::Keyboard::LSystem, sf::Keyboard::RSystem, + sf::Keyboard::sLSystem, sf::Keyboard::sRSystem, requester ); @@ -176,6 +181,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftAlternateKeyMask, NSRightAlternateKeyMask, state.leftAlternateWasDown, state.rightAlternateWasDown, sf::Keyboard::LAlt, sf::Keyboard::RAlt, + sf::Keyboard::sLAlt, sf::Keyboard::sRAlt, requester ); @@ -185,6 +191,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftControlKeyMask, NSRightControlKeyMask, state.leftControlWasDown, state.rightControlWasDown, sf::Keyboard::LControl, sf::Keyboard::RControl, + sf::Keyboard::sLControl, sf::Keyboard::sRControl, requester ); } @@ -203,10 +210,11 @@ BOOL isKeyMaskActive(NSUInteger modifiers, NSUInteger mask) //////////////////////////////////////////////////////// void processOneModifier(NSUInteger modifiers, NSUInteger mask, BOOL& wasDown, sf::Keyboard::Key key, + sf::Keyboard::Scancode code, sf::priv::WindowImplCocoa& requester) { // Setup a potential event key. - sf::Event::KeyEvent event = keyEventWithModifiers(modifiers, key); + sf::Event::KeyEvent event = keyEventWithModifiers(modifiers, key, code); // State BOOL isDown = isKeyMaskActive(modifiers, mask); @@ -231,10 +239,11 @@ void processLeftRightModifiers(NSUInteger modifiers, NSUInteger leftMask, NSUInteger rightMask, BOOL& leftWasDown, BOOL& rightWasDown, sf::Keyboard::Key leftKey, sf::Keyboard::Key rightKey, + sf::Keyboard::Scancode leftCode, sf::Keyboard::Scancode rightCode, sf::priv::WindowImplCocoa& requester) { - processOneModifier(modifiers, leftMask, leftWasDown, leftKey, requester); - processOneModifier(modifiers, rightMask, rightWasDown, rightKey, requester); + processOneModifier(modifiers, leftMask, leftWasDown, leftKey, leftCode, requester); + processOneModifier(modifiers, rightMask, rightWasDown, rightKey, rightCode, requester); } diff --git a/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm b/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm index eb3e1231..86b4f109 100644 --- a/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm +++ b/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm @@ -86,7 +86,7 @@ { sf::Event::KeyEvent key = [SFOpenGLView convertNSKeyEventToSFMLEvent:theEvent]; - if (key.code != sf::Keyboard::Unknown) // The key is recognized. + if ((key.code != sf::Keyboard::Unknown) || (key.scancode != sf::Keyboard::sUnknown)) m_requester->keyDown(key); } @@ -180,21 +180,17 @@ //////////////////////////////////////////////////////// +(sf::Event::KeyEvent)convertNSKeyEventToSFMLEvent:(NSEvent*)event { - // Key code - sf::Keyboard::Key key = sf::Keyboard::Unknown; - - // First we look if the key down is from a list of characters - // that depend on keyboard localization. + // We look for the key in a list of characters that depend on keyboard localization, + // if the key is not "dead". NSString* string = [event charactersIgnoringModifiers]; - if ([string length] > 0) - key = sf::priv::HIDInputManager::localizedKeys([string characterAtIndex:0]); + sf::Keyboard::Key key = ([string length] > 0) + ? sf::priv::HIDInputManager::localizedKey([string characterAtIndex:0]) + : sf::Keyboard::Unknown; - // If the key is not a localized one, we try to find a corresponding code - // through virtual key code. - if (key == sf::Keyboard::Unknown) - key = sf::priv::HIDInputManager::nonLocalizedKeys([event keyCode]); + // The scancode always depends on the hardware keyboard, not some OS setting. + sf::Keyboard::Scancode code = sf::priv::HIDInputManager::nonLocalizedKey([event keyCode]); - return keyEventWithModifiers([event modifierFlags], key); + return keyEventWithModifiers([event modifierFlags], key, code); } From 7a99260ead38f94c2c430369de3eed9f1e878721 Mon Sep 17 00:00:00 2001 From: Marco Antognini Date: Fri, 26 May 2017 11:03:21 +0200 Subject: [PATCH 03/36] Handle layout changes on macOS --- src/SFML/Window/OSX/HIDInputManager.hpp | 7 ++++++- src/SFML/Window/OSX/HIDInputManager.mm | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/SFML/Window/OSX/HIDInputManager.hpp b/src/SFML/Window/OSX/HIDInputManager.hpp index 9a82a7b9..bde3d5e4 100644 --- a/src/SFML/Window/OSX/HIDInputManager.hpp +++ b/src/SFML/Window/OSX/HIDInputManager.hpp @@ -206,10 +206,15 @@ private: void loadKey(IOHIDElementRef key); //////////////////////////////////////////////////////////// - /// Regenerate the mappings from/to Key and Scancode + /// Regenerate the mappings from/to Key and Scancode. + /// + /// It is public to allow regular callback to forward the + /// information to the manager. /// //////////////////////////////////////////////////////////// +public: void buildMappings(); +private: //////////////////////////////////////////////////////////// /// \brief Release all resources diff --git a/src/SFML/Window/OSX/HIDInputManager.mm b/src/SFML/Window/OSX/HIDInputManager.mm index 549829ff..233302b0 100644 --- a/src/SFML/Window/OSX/HIDInputManager.mm +++ b/src/SFML/Window/OSX/HIDInputManager.mm @@ -30,6 +30,15 @@ #include #include +namespace +{ + void keyboardChanged(CFNotificationCenterRef, void* observer, CFStringRef, const void*, CFDictionaryRef) + { + sf::priv::HIDInputManager* manager = static_cast(observer); + manager->buildMappings(); + } +} + namespace sf { namespace priv @@ -228,8 +237,19 @@ m_manager(0) return; } + // Build up our knownledge of the hardware initializeKeyboard(); buildMappings(); + + // Register for notification on keyboard layout changes + CFNotificationCenterAddObserver( + CFNotificationCenterGetDistributedCenter(), + this, + keyboardChanged, // callback + kTISNotifySelectedKeyboardInputSourceChanged, + NULL, // use callback + CFNotificationSuspensionBehaviorDeliverImmediately + ); } @@ -237,6 +257,8 @@ m_manager(0) HIDInputManager::~HIDInputManager() { freeUp(); + + CFNotificationCenterRemoveEveryObserver(CFNotificationCenterGetDistributedCenter(), this); } From cf3752ce774d763d333bcd801990140b3a119b55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Sat, 9 Sep 2017 01:21:29 +0200 Subject: [PATCH 04/36] Use Scan prefix instead of s and getDescription instead of localizedRepresentation. --- include/SFML/Window/Keyboard.hpp | 258 ++-- src/SFML/Window/Android/InputImpl.hpp | 2 +- src/SFML/Window/Keyboard.cpp | 4 +- src/SFML/Window/OSX/HIDInputManager.hpp | 10 +- src/SFML/Window/OSX/HIDInputManager.mm | 1112 ++++++++--------- src/SFML/Window/OSX/InputImpl.hpp | 2 +- src/SFML/Window/OSX/InputImpl.mm | 2 +- .../Window/OSX/SFKeyboardModifiersHelper.mm | 8 +- src/SFML/Window/OSX/SFOpenGLView+keyboard.mm | 2 +- src/SFML/Window/Unix/InputImpl.hpp | 2 +- src/SFML/Window/Win32/InputImpl.hpp | 2 +- src/SFML/Window/iOS/InputImpl.hpp | 2 +- 12 files changed, 703 insertions(+), 703 deletions(-) diff --git a/include/SFML/Window/Keyboard.hpp b/include/SFML/Window/Keyboard.hpp index 7ac3fb8e..c0f902b3 100644 --- a/include/SFML/Window/Keyboard.hpp +++ b/include/SFML/Window/Keyboard.hpp @@ -182,140 +182,140 @@ public: //////////////////////////////////////////////////////////// enum Scancode { - sUnknown = -1, ///< Represents any scancode not present in this enum - sA = 0, ///< Keyboard a and A key - sB, ///< Keyboard b and B key - sC, ///< Keyboard c and C key - sD, ///< Keyboard d and D key - sE, ///< Keyboard e and E key - sF, ///< Keyboard f and F key - sG, ///< Keyboard g and G key - sH, ///< Keyboard h and H key - sI, ///< Keyboard i and I key - sJ, ///< Keyboard j and J key - sK, ///< Keyboard k and K key - sL, ///< Keyboard l and L key - sM, ///< Keyboard m and M key - sN, ///< Keyboard n and N key - sO, ///< Keyboard o and O key - sP, ///< Keyboard p and P key - sQ, ///< Keyboard q and Q key - sR, ///< Keyboard r and R key - sS, ///< Keyboard s and S key - sT, ///< Keyboard t and T key - sU, ///< Keyboard u and U key - sV, ///< Keyboard v and V key - sW, ///< Keyboard w and W key - sX, ///< Keyboard x and X key - sY, ///< Keyboard y and Y key - sZ, ///< Keyboard z and Z key - sNum1, ///< Keyboard 1 and ! key - sNum2, ///< Keyboard 2 and @ key - sNum3, ///< Keyboard 3 and # key - sNum4, ///< Keyboard 4 and $ key - sNum5, ///< Keyboard 5 and % key - sNum6, ///< Keyboard 6 and ^ key - sNum7, ///< Keyboard 7 and & key - sNum8, ///< Keyboard 8 and * key - sNum9, ///< Keyboard 9 and ) key - sNum0, ///< Keyboard 0 and ) key - sEnter, ///< Keyboard Return (ENTER) key - sEscape, ///< Keyboard Escape key - sBackspace, ///< Keyboard Backspace key + ScanUnknown = -1, ///< Represents any scancode not present in this enum + ScanA = 0, ///< Keyboard a and A key + ScanB, ///< Keyboard b and B key + ScanC, ///< Keyboard c and C key + ScanD, ///< Keyboard d and D key + ScanE, ///< Keyboard e and E key + ScanF, ///< Keyboard f and F key + ScanG, ///< Keyboard g and G key + ScanH, ///< Keyboard h and H key + ScanI, ///< Keyboard i and I key + ScanJ, ///< Keyboard j and J key + ScanK, ///< Keyboard k and K key + ScanL, ///< Keyboard l and L key + ScanM, ///< Keyboard m and M key + ScanN, ///< Keyboard n and N key + ScanO, ///< Keyboard o and O key + ScanP, ///< Keyboard p and P key + ScanQ, ///< Keyboard q and Q key + ScanR, ///< Keyboard r and R key + ScanS, ///< Keyboard s and S key + ScanT, ///< Keyboard t and T key + ScanU, ///< Keyboard u and U key + ScanV, ///< Keyboard v and V key + ScanW, ///< Keyboard w and W key + ScanX, ///< Keyboard x and X key + ScanY, ///< Keyboard y and Y key + ScanZ, ///< Keyboard z and Z key + ScanNum1, ///< Keyboard 1 and ! key + ScanNum2, ///< Keyboard 2 and @ key + ScanNum3, ///< Keyboard 3 and # key + ScanNum4, ///< Keyboard 4 and $ key + ScanNum5, ///< Keyboard 5 and % key + ScanNum6, ///< Keyboard 6 and ^ key + ScanNum7, ///< Keyboard 7 and & key + ScanNum8, ///< Keyboard 8 and * key + ScanNum9, ///< Keyboard 9 and ) key + ScanNum0, ///< Keyboard 0 and ) key + ScanEnter, ///< Keyboard Return (ENTER) key + ScanEscape, ///< Keyboard Escape key + ScanBackspace, ///< Keyboard Backspace key // TODO above it's BackSpace, but is it correct? What do we use here? - sTab, ///< Keyboard Tab key - sSpace, ///< Keyboard Space key - sHyphen, ///< Keyboard - and _ key - sEquals, ///< Keyboard = and + - sLBracket, ///< Keyboard [ and { key - sRBracket, ///< Keyboard ] and } key - sBackslash, ///< Keyboard \ and | key + ScanTab, ///< Keyboard Tab key + ScanSpace, ///< Keyboard Space key + ScanHyphen, ///< Keyboard - and _ key + ScanEquals, ///< Keyboard = and + + ScanLBracket, ///< Keyboard [ and { key + ScanRBracket, ///< Keyboard ] and } key + ScanBackslash, ///< Keyboard \ and | key // TODO capitalisation - sDash, ///< Keyboard Non-US # and ~ - sSemicolon, ///< Keyboard ; and : key + ScanDash, ///< Keyboard Non-US # and ~ + ScanSemicolon, ///< Keyboard ; and : key // TODO capitalisation - sQuote, ///< Keyboard ' and " key - sGraveAccent, ///< Keyboard ` and ~ key - sComma, ///< Keyboard , and < key - sPeriod, ///< Keyboard . and > key - sForwardSlash, ///< Keyboard / and ? key - sF1, ///< Keyboard F1 key - sF2, ///< Keyboard F2 key - sF3, ///< Keyboard F3 key - sF4, ///< Keyboard F4 key - sF5, ///< Keyboard F5 key - sF6, ///< Keyboard F6 key - sF7, ///< Keyboard F7 key - sF8, ///< Keyboard F8 key - sF9, ///< Keyboard F9 key - sF10, ///< Keyboard F10 key - sF11, ///< Keyboard F11 key - sF12, ///< Keyboard F12 key - sF13, ///< Keyboard F13 key - sF14, ///< Keyboard F14 key - sF15, ///< Keyboard F15 key - sCapsLock, ///< Keyboard Caps Lock key - sPrintScreen, ///< Keyboard Print Screen key - sScrollLock, ///< Keyboard Scroll Lock key - sPause, ///< Keyboard Pause key - sInsert, ///< Keyboard Insert key - sHome, ///< Keyboard Home key - sPageUp, ///< Keyboard Page Up key - sDelete, ///< Keyboard Delete Forward key - sEnd, ///< Keyboard End key - sPageDown, ///< Keyboard Page Down key - sRight, ///< Keyboard Right Arrow key - sLeft, ///< Keyboard Left Arrow key - sDown, ///< Keyboard Down Arrow key - sUp, ///< Keyboard Up Arrow key - sNumLock, ///< Keypad Num Lock and Clear key - sDivide, ///< Keypad / key - sMultiply, ///< Keypad * key - sMinus, ///< Keypad - key - sPlus, ///< Keypad + key - sPadEquals, ///< keypad = key, probably Mac only - sReturn, ///< Keypad Enter (return) key - sDecimal, ///< Keypad . and Delete key - sNumpad1, ///< Keypad 1 and End key - sNumpad2, ///< Keypad 2 and Down Arrow key - sNumpad3, ///< Keypad 3 and Page Down key - sNumpad4, ///< Keypad 4 and Left Arrow key - sNumpad5, ///< Keypad 5 key - sNumpad6, ///< Keypad 6 and Right Arrow key - sNumpad7, ///< Keypad 7 and Home key - sNumpad8, ///< Keypad 8 and Up Arrow key - sNumpad9, ///< Keypad 9 and Page Up key - sNumpad0, ///< Keypad 0 and Insert key - sReverseSolidus, ///< Keyboard Non-US \ and | key + ScanQuote, ///< Keyboard ' and " key + ScanGraveAccent, ///< Keyboard ` and ~ key + ScanComma, ///< Keyboard , and < key + ScanPeriod, ///< Keyboard . and > key + ScanForwardSlash, ///< Keyboard / and ? key + ScanF1, ///< Keyboard F1 key + ScanF2, ///< Keyboard F2 key + ScanF3, ///< Keyboard F3 key + ScanF4, ///< Keyboard F4 key + ScanF5, ///< Keyboard F5 key + ScanF6, ///< Keyboard F6 key + ScanF7, ///< Keyboard F7 key + ScanF8, ///< Keyboard F8 key + ScanF9, ///< Keyboard F9 key + ScanF10, ///< Keyboard F10 key + ScanF11, ///< Keyboard F11 key + ScanF12, ///< Keyboard F12 key + ScanF13, ///< Keyboard F13 key + ScanF14, ///< Keyboard F14 key + ScanF15, ///< Keyboard F15 key + ScanCapsLock, ///< Keyboard Caps Lock key + ScanPrintScreen, ///< Keyboard Print Screen key + ScanScrollLock, ///< Keyboard Scroll Lock key + ScanPause, ///< Keyboard Pause key + ScanInsert, ///< Keyboard Insert key + ScanHome, ///< Keyboard Home key + ScanPageUp, ///< Keyboard Page Up key + ScanDelete, ///< Keyboard Delete Forward key + ScanEnd, ///< Keyboard End key + ScanPageDown, ///< Keyboard Page Down key + ScanRight, ///< Keyboard Right Arrow key + ScanLeft, ///< Keyboard Left Arrow key + ScanDown, ///< Keyboard Down Arrow key + ScanUp, ///< Keyboard Up Arrow key + ScanNumLock, ///< Keypad Num Lock and Clear key + ScanDivide, ///< Keypad / key + ScanMultiply, ///< Keypad * key + ScanMinus, ///< Keypad - key + ScanPlus, ///< Keypad + key + ScanPadEquals, ///< keypad = key, probably Mac only + ScanReturn, ///< Keypad Enter (return) key + ScanDecimal, ///< Keypad . and Delete key + ScanNumpad1, ///< Keypad 1 and End key + ScanNumpad2, ///< Keypad 2 and Down Arrow key + ScanNumpad3, ///< Keypad 3 and Page Down key + ScanNumpad4, ///< Keypad 4 and Left Arrow key + ScanNumpad5, ///< Keypad 5 key + ScanNumpad6, ///< Keypad 6 and Right Arrow key + ScanNumpad7, ///< Keypad 7 and Home key + ScanNumpad8, ///< Keypad 8 and Up Arrow key + ScanNumpad9, ///< Keypad 9 and Page Up key + ScanNumpad0, ///< Keypad 0 and Insert key + ScanReverseSolidus, ///< Keyboard Non-US \ and | key // FIXME what is this one? Might need better name. The doc says: // - Typically near the Left-Shift key in AT-102 implementations. // - Typical language mappings: Belg:<\> FrCa:«°» Dan:<\> Dutch:]|[ Fren:<> Ger:<|> Ital:<> LatAm:<> Nor:<> Span:<> Swed:<|> Swiss:<\> UK:\| Brazil: \|. // What is the difference with "regular" \ and | key? - sApplication, ///< Keyboard Application key - sExecute, ///< Keyboard Execute key - sHelp, ///< Keyboard Help key - sMenu, ///< Keyboard Menu key - sSelect, ///< Keyboard Select key - sStop, ///< Keyboard Stop key - sAgain, ///< Keyboard Again key - sUndo, ///< Keyboard Undo key - sCut, ///< Keyboard Cut key - sCopy, ///< Keyboard Copy key - sPaste, ///< Keyboard Paste key - sFind, ///< Keyboard Find key - sMute, ///< Keyboard Mute key - sVolumeUp, ///< Keyboard Volume Up key - sVolumeDown, ///< Keyboard Volume Down key - sLControl, ///< Keyboard Left Control key - sLShift, ///< Keyboard Left Shift key - sLAlt, ///< Keyboard Left Alt key - sLSystem, ///< Keyboard Left System key - sRControl, ///< Keyboard Right Control key - sRShift, ///< Keyboard Right Shift key - sRAlt, ///< Keyboard Right Alt key - sRSystem, ///< Keyboard Right System key + ScanApplication, ///< Keyboard Application key + ScanExecute, ///< Keyboard Execute key + ScanHelp, ///< Keyboard Help key + ScanMenu, ///< Keyboard Menu key + ScanSelect, ///< Keyboard Select key + ScanStop, ///< Keyboard Stop key + ScanAgain, ///< Keyboard Again key + ScanUndo, ///< Keyboard Undo key + ScanCut, ///< Keyboard Cut key + ScanCopy, ///< Keyboard Copy key + ScanPaste, ///< Keyboard Paste key + ScanFind, ///< Keyboard Find key + ScanMute, ///< Keyboard Mute key + ScanVolumeUp, ///< Keyboard Volume Up key + ScanVolumeDown, ///< Keyboard Volume Down key + ScanLControl, ///< Keyboard Left Control key + ScanLShift, ///< Keyboard Left Shift key + ScanLAlt, ///< Keyboard Left Alt key + ScanLSystem, ///< Keyboard Left System key + ScanRControl, ///< Keyboard Right Control key + ScanRShift, ///< Keyboard Right Shift key + ScanRAlt, ///< Keyboard Right Alt key + ScanRSystem, ///< Keyboard Right System key - sCodeCount ///< Keep last -- the total number of scancodes + ScanCodeCount ///< Keep last -- the total number of scancodes }; //////////////////////////////////////////////////////////// @@ -360,7 +360,7 @@ public: /// /// \return The scancode corresponding to the key under the current /// keyboard layout used by the operating system, or - /// sf::Keyboard::sUnknown when the key cannot be mapped + /// sf::Keyboard::ScanUnknown when the key cannot be mapped /// to a Keyboard::Scancode. /// /// \see localize @@ -376,7 +376,7 @@ public: /// when the given physical key is pressed by the user, when no /// modifiers are involved. /// - /// \warning The result is OS-dependent: for example, sf::Keyboard::sLSystem + /// \warning The result is OS-dependent: for example, sf::Keyboard::ScanLSystem /// is "Left Meta" on Linux, "Left Windows" on Windows and /// "Left Command" on macOS. /// @@ -387,7 +387,7 @@ public: /// \return The localized description of the code /// //////////////////////////////////////////////////////////// - static String localizedRepresentation(Scancode code); + static String getDescription(Scancode code); //////////////////////////////////////////////////////////// /// \brief Show or hide the virtual keyboard diff --git a/src/SFML/Window/Android/InputImpl.hpp b/src/SFML/Window/Android/InputImpl.hpp index ffbc6312..139a5bbd 100644 --- a/src/SFML/Window/Android/InputImpl.hpp +++ b/src/SFML/Window/Android/InputImpl.hpp @@ -72,7 +72,7 @@ public: /// \copydoc sf::Keyboard::localizedRepresentation /// //////////////////////////////////////////////////////////// - static String localizedRepresentation(Keyboard::Scancode code); + static String getDescription(Keyboard::Scancode code); //////////////////////////////////////////////////////////// /// \copydoc sf::Keyboard::setVirtualKeyboardVisible diff --git a/src/SFML/Window/Keyboard.cpp b/src/SFML/Window/Keyboard.cpp index b6b4e4a7..2742c2ba 100644 --- a/src/SFML/Window/Keyboard.cpp +++ b/src/SFML/Window/Keyboard.cpp @@ -56,9 +56,9 @@ Keyboard::Scancode Keyboard::unlocalize(Key key) } //////////////////////////////////////////////////////////// -String Keyboard::localizedRepresentation(Scancode code) +String Keyboard::getDescription(Scancode code) { - return priv::InputImpl::localizedRepresentation(code); + return priv::InputImpl::getDescription(code); } //////////////////////////////////////////////////////////// diff --git a/src/SFML/Window/OSX/HIDInputManager.hpp b/src/SFML/Window/OSX/HIDInputManager.hpp index bde3d5e4..bd3de198 100644 --- a/src/SFML/Window/OSX/HIDInputManager.hpp +++ b/src/SFML/Window/OSX/HIDInputManager.hpp @@ -115,7 +115,7 @@ public: /// Try to convert a virtual keycode (HID level) into a /// SFML scancode. /// - /// Return sf::Keyboard::sUnknown if the keycode is unknown. + /// Return sf::Keyboard::ScanUnknown if the keycode is unknown. /// //////////////////////////////////////////////////////////// static Keyboard::Scancode nonLocalizedKey(UniChar virtualKeycode); @@ -278,10 +278,10 @@ private: //////////////////////////////////////////////////////////// // Member data //////////////////////////////////////////////////////////// - IOHIDManagerRef m_manager; ///< Underlying HID Manager - IOHIDElements m_keys[Keyboard::sCodeCount]; ///< All the keys on any connected keyboard - Keyboard::Scancode m_mapping[Keyboard::KeyCount]; ///< Mapping from Key to Scancode - Keyboard::Key m_gnippam[Keyboard::sCodeCount]; ///< Mapping from Scancode to Key + IOHIDManagerRef m_manager; ///< Underlying HID Manager + IOHIDElements m_keys[Keyboard::ScanCodeCount]; ///< All the keys on any connected keyboard + Keyboard::Scancode m_mapping[Keyboard::KeyCount]; ///< Mapping from Key to Scancode + Keyboard::Key m_gnippam[Keyboard::ScanCodeCount]; ///< Mapping from Scancode to Key //////////////////////////////////////////////////////////// /// m_keys' index corresponds to sf::Keyboard::Scancode enum. diff --git a/src/SFML/Window/OSX/HIDInputManager.mm b/src/SFML/Window/OSX/HIDInputManager.mm index 233302b0..430f117c 100644 --- a/src/SFML/Window/OSX/HIDInputManager.mm +++ b/src/SFML/Window/OSX/HIDInputManager.mm @@ -103,7 +103,7 @@ bool HIDInputManager::isKeyPressed(Keyboard::Key key) //////////////////////////////////////////////////////////// bool HIDInputManager::isKeyPressed(Keyboard::Scancode code) { - return (code != Keyboard::sUnknown) && isPressed(m_keys[code]); + return (code != Keyboard::ScanUnknown) && isPressed(m_keys[code]); } @@ -133,89 +133,89 @@ String HIDInputManager::localizedRepresentation(Keyboard::Scancode code) // Fallback to our best guess for the keys that are known to be independent of the layout. switch (code) { - case sf::Keyboard::sEnter: return "Enter"; - case sf::Keyboard::sEscape: return "Escape"; - case sf::Keyboard::sBackspace: return "Backspace"; - case sf::Keyboard::sTab: return "Tab"; - case sf::Keyboard::sSpace: return "Space"; + case sf::Keyboard::ScanEnter: return "Enter"; + case sf::Keyboard::ScanEscape: return "Escape"; + case sf::Keyboard::ScanBackspace: return "Backspace"; + case sf::Keyboard::ScanTab: return "Tab"; + case sf::Keyboard::ScanSpace: return "Space"; - case sf::Keyboard::sF1: return "F1"; - case sf::Keyboard::sF2: return "F2"; - case sf::Keyboard::sF3: return "F3"; - case sf::Keyboard::sF4: return "F4"; - case sf::Keyboard::sF5: return "F5"; - case sf::Keyboard::sF6: return "F6"; - case sf::Keyboard::sF7: return "F7"; - case sf::Keyboard::sF8: return "F8"; - case sf::Keyboard::sF9: return "F9"; - case sf::Keyboard::sF10: return "F10"; - case sf::Keyboard::sF11: return "F11"; - case sf::Keyboard::sF12: return "F12"; - case sf::Keyboard::sF13: return "F13"; - case sf::Keyboard::sF14: return "F14"; - case sf::Keyboard::sF15: return "F15"; + case sf::Keyboard::ScanF1: return "F1"; + case sf::Keyboard::ScanF2: return "F2"; + case sf::Keyboard::ScanF3: return "F3"; + case sf::Keyboard::ScanF4: return "F4"; + case sf::Keyboard::ScanF5: return "F5"; + case sf::Keyboard::ScanF6: return "F6"; + case sf::Keyboard::ScanF7: return "F7"; + case sf::Keyboard::ScanF8: return "F8"; + case sf::Keyboard::ScanF9: return "F9"; + case sf::Keyboard::ScanF10: return "F10"; + case sf::Keyboard::ScanF11: return "F11"; + case sf::Keyboard::ScanF12: return "F12"; + case sf::Keyboard::ScanF13: return "F13"; + case sf::Keyboard::ScanF14: return "F14"; + case sf::Keyboard::ScanF15: return "F15"; - case sf::Keyboard::sCapsLock: return "CapsLock"; - case sf::Keyboard::sPrintScreen: return "PrintScreen"; - case sf::Keyboard::sScrollLock: return "ScrollLock"; + case sf::Keyboard::ScanCapsLock: return "CapsLock"; + case sf::Keyboard::ScanPrintScreen: return "PrintScreen"; + case sf::Keyboard::ScanScrollLock: return "ScrollLock"; - case sf::Keyboard::sPause: return "Pause"; - case sf::Keyboard::sInsert: return "Insert"; - case sf::Keyboard::sHome: return "Home"; - case sf::Keyboard::sPageUp: return "PageUp"; - case sf::Keyboard::sDelete: return "Delete"; - case sf::Keyboard::sEnd: return "End"; - case sf::Keyboard::sPageDown: return "PageDown"; + case sf::Keyboard::ScanPause: return "Pause"; + case sf::Keyboard::ScanInsert: return "Insert"; + case sf::Keyboard::ScanHome: return "Home"; + case sf::Keyboard::ScanPageUp: return "PageUp"; + case sf::Keyboard::ScanDelete: return "Delete"; + case sf::Keyboard::ScanEnd: return "End"; + case sf::Keyboard::ScanPageDown: return "PageDown"; - case sf::Keyboard::sLeft: return "Left Arrow"; - case sf::Keyboard::sRight: return "Right Arrow"; - case sf::Keyboard::sDown: return "Down Arrow"; - case sf::Keyboard::sUp: return "Up Arrow"; + case sf::Keyboard::ScanLeft: return "Left Arrow"; + case sf::Keyboard::ScanRight: return "Right Arrow"; + case sf::Keyboard::ScanDown: return "Down Arrow"; + case sf::Keyboard::ScanUp: return "Up Arrow"; - case sf::Keyboard::sNumLock: return "NumLock"; - case sf::Keyboard::sDivide: return "Divide (Numpad)"; - case sf::Keyboard::sMultiply: return "Multiply (Numpad)"; - case sf::Keyboard::sMinus: return "Minux (Numpad)"; - case sf::Keyboard::sPlus: return "Plus (Numpad)"; - case sf::Keyboard::sPadEquals: return "Equals (Numpad)"; - case sf::Keyboard::sReturn: return "Return (Numpad)"; - case sf::Keyboard::sDecimal: return "Decimal (Numpad)"; + case sf::Keyboard::ScanNumLock: return "NumLock"; + case sf::Keyboard::ScanDivide: return "Divide (Numpad)"; + case sf::Keyboard::ScanMultiply: return "Multiply (Numpad)"; + case sf::Keyboard::ScanMinus: return "Minux (Numpad)"; + case sf::Keyboard::ScanPlus: return "Plus (Numpad)"; + case sf::Keyboard::ScanPadEquals: return "Equals (Numpad)"; + case sf::Keyboard::ScanReturn: return "Return (Numpad)"; + case sf::Keyboard::ScanDecimal: return "Decimal (Numpad)"; - case sf::Keyboard::sNumpad0: return "0 (Numpad)"; - case sf::Keyboard::sNumpad1: return "1 (Numpad)"; - case sf::Keyboard::sNumpad2: return "2 (Numpad)"; - case sf::Keyboard::sNumpad3: return "3 (Numpad)"; - case sf::Keyboard::sNumpad4: return "4 (Numpad)"; - case sf::Keyboard::sNumpad5: return "5 (Numpad)"; - case sf::Keyboard::sNumpad6: return "6 (Numpad)"; - case sf::Keyboard::sNumpad7: return "7 (Numpad)"; - case sf::Keyboard::sNumpad8: return "8 (Numpad)"; - case sf::Keyboard::sNumpad9: return "9 (Numpad)"; + case sf::Keyboard::ScanNumpad0: return "0 (Numpad)"; + case sf::Keyboard::ScanNumpad1: return "1 (Numpad)"; + case sf::Keyboard::ScanNumpad2: return "2 (Numpad)"; + case sf::Keyboard::ScanNumpad3: return "3 (Numpad)"; + case sf::Keyboard::ScanNumpad4: return "4 (Numpad)"; + case sf::Keyboard::ScanNumpad5: return "5 (Numpad)"; + case sf::Keyboard::ScanNumpad6: return "6 (Numpad)"; + case sf::Keyboard::ScanNumpad7: return "7 (Numpad)"; + case sf::Keyboard::ScanNumpad8: return "8 (Numpad)"; + case sf::Keyboard::ScanNumpad9: return "9 (Numpad)"; - case sf::Keyboard::sApplication: return "Application"; - case sf::Keyboard::sExecute: return "Execute"; - case sf::Keyboard::sHelp: return "Help"; - case sf::Keyboard::sMenu: return "Menu"; - case sf::Keyboard::sSelect: return "Select"; - case sf::Keyboard::sStop: return "Stop"; - case sf::Keyboard::sAgain: return "Again"; - case sf::Keyboard::sUndo: return "Undo"; - case sf::Keyboard::sCut: return "Cut"; - case sf::Keyboard::sCopy: return "Copy"; - case sf::Keyboard::sPaste: return "Paste"; - case sf::Keyboard::sFind: return "Find"; - case sf::Keyboard::sMute: return "Mute"; - case sf::Keyboard::sVolumeUp: return "Volume Up"; - case sf::Keyboard::sVolumeDown: return "Volume Down"; + case sf::Keyboard::ScanApplication: return "Application"; + case sf::Keyboard::ScanExecute: return "Execute"; + case sf::Keyboard::ScanHelp: return "Help"; + case sf::Keyboard::ScanMenu: return "Menu"; + case sf::Keyboard::ScanSelect: return "Select"; + case sf::Keyboard::ScanStop: return "Stop"; + case sf::Keyboard::ScanAgain: return "Again"; + case sf::Keyboard::ScanUndo: return "Undo"; + case sf::Keyboard::ScanCut: return "Cut"; + case sf::Keyboard::ScanCopy: return "Copy"; + case sf::Keyboard::ScanPaste: return "Paste"; + case sf::Keyboard::ScanFind: return "Find"; + case sf::Keyboard::ScanMute: return "Mute"; + case sf::Keyboard::ScanVolumeUp: return "Volume Up"; + case sf::Keyboard::ScanVolumeDown: return "Volume Down"; - case sf::Keyboard::sLControl: return "Control (Left)"; - case sf::Keyboard::sLShift: return "Shift (Left)"; - case sf::Keyboard::sLAlt: return "Alt (Left)"; - case sf::Keyboard::sLSystem: return "Command (Left)"; - case sf::Keyboard::sRControl: return "Control (Right)"; - case sf::Keyboard::sRShift: return "Shift (Right)"; - case sf::Keyboard::sRAlt: return "Alt (Right)"; - case sf::Keyboard::sRSystem: return "Command (Right)"; + case sf::Keyboard::ScanLControl: return "Control (Left)"; + case sf::Keyboard::ScanLShift: return "Shift (Left)"; + case sf::Keyboard::ScanLAlt: return "Alt (Left)"; + case sf::Keyboard::ScanLSystem: return "Command (Left)"; + case sf::Keyboard::ScanRControl: return "Control (Right)"; + case sf::Keyboard::ScanRShift: return "Shift (Right)"; + case sf::Keyboard::ScanRAlt: return "Alt (Right)"; + case sf::Keyboard::ScanRSystem: return "Command (Right)"; default: return "Unknown Scancode"; // no guess good enough possible. } @@ -316,7 +316,7 @@ void HIDInputManager::loadKey(IOHIDElementRef key) { UInt32 usage = IOHIDElementGetUsage(key); sf::Keyboard::Scancode code = usageToScancode(usage); - if (code != Keyboard::sUnknown) + if (code != Keyboard::ScanUnknown) { CFRetain(key); m_keys[code].push_back(key); @@ -329,8 +329,8 @@ void HIDInputManager::buildMappings() { // Reset the mappings for (int i = 0; i < Keyboard::KeyCount; ++i) - m_mapping[i] = Keyboard::sUnknown; - for (int i = 0; i < Keyboard::sCodeCount; ++i) + m_mapping[i] = Keyboard::ScanUnknown; + for (int i = 0; i < Keyboard::ScanCodeCount; ++i) m_gnippam[i] = Keyboard::Unknown; // Get the current keyboard layout @@ -348,7 +348,7 @@ void HIDInputManager::buildMappings() // For each scancode having a IOHIDElement, we translate the corresponding // virtual code to a localized Key. - for (int i = 0; i < Keyboard::sCodeCount; ++i) + for (int i = 0; i < Keyboard::ScanCodeCount; ++i) { Keyboard::Scancode scan = static_cast(i); UInt8 virtualCode = scanToVirtualCode(scan); @@ -465,202 +465,202 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage) { switch (usage) { - case kHIDUsage_KeyboardErrorRollOver: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardPOSTFail: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardErrorUndefined: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardErrorRollOver: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardPOSTFail: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardErrorUndefined: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardA: return sf::Keyboard::sA; - case kHIDUsage_KeyboardB: return sf::Keyboard::sB; - case kHIDUsage_KeyboardC: return sf::Keyboard::sC; - case kHIDUsage_KeyboardD: return sf::Keyboard::sD; - case kHIDUsage_KeyboardE: return sf::Keyboard::sE; - case kHIDUsage_KeyboardF: return sf::Keyboard::sF; - case kHIDUsage_KeyboardG: return sf::Keyboard::sG; - case kHIDUsage_KeyboardH: return sf::Keyboard::sH; - case kHIDUsage_KeyboardI: return sf::Keyboard::sI; - case kHIDUsage_KeyboardJ: return sf::Keyboard::sJ; - case kHIDUsage_KeyboardK: return sf::Keyboard::sK; - case kHIDUsage_KeyboardL: return sf::Keyboard::sL; - case kHIDUsage_KeyboardM: return sf::Keyboard::sM; - case kHIDUsage_KeyboardN: return sf::Keyboard::sN; - case kHIDUsage_KeyboardO: return sf::Keyboard::sO; - case kHIDUsage_KeyboardP: return sf::Keyboard::sP; - case kHIDUsage_KeyboardQ: return sf::Keyboard::sQ; - case kHIDUsage_KeyboardR: return sf::Keyboard::sR; - case kHIDUsage_KeyboardS: return sf::Keyboard::sS; - case kHIDUsage_KeyboardT: return sf::Keyboard::sT; - case kHIDUsage_KeyboardU: return sf::Keyboard::sU; - case kHIDUsage_KeyboardV: return sf::Keyboard::sV; - case kHIDUsage_KeyboardW: return sf::Keyboard::sW; - case kHIDUsage_KeyboardX: return sf::Keyboard::sX; - case kHIDUsage_KeyboardY: return sf::Keyboard::sY; - case kHIDUsage_KeyboardZ: return sf::Keyboard::sZ; + case kHIDUsage_KeyboardA: return sf::Keyboard::ScanA; + case kHIDUsage_KeyboardB: return sf::Keyboard::ScanB; + case kHIDUsage_KeyboardC: return sf::Keyboard::ScanC; + case kHIDUsage_KeyboardD: return sf::Keyboard::ScanD; + case kHIDUsage_KeyboardE: return sf::Keyboard::ScanE; + case kHIDUsage_KeyboardF: return sf::Keyboard::ScanF; + case kHIDUsage_KeyboardG: return sf::Keyboard::ScanG; + case kHIDUsage_KeyboardH: return sf::Keyboard::ScanH; + case kHIDUsage_KeyboardI: return sf::Keyboard::ScanI; + case kHIDUsage_KeyboardJ: return sf::Keyboard::ScanJ; + case kHIDUsage_KeyboardK: return sf::Keyboard::ScanK; + case kHIDUsage_KeyboardL: return sf::Keyboard::ScanL; + case kHIDUsage_KeyboardM: return sf::Keyboard::ScanM; + case kHIDUsage_KeyboardN: return sf::Keyboard::ScanN; + case kHIDUsage_KeyboardO: return sf::Keyboard::ScanO; + case kHIDUsage_KeyboardP: return sf::Keyboard::ScanP; + case kHIDUsage_KeyboardQ: return sf::Keyboard::ScanQ; + case kHIDUsage_KeyboardR: return sf::Keyboard::ScanR; + case kHIDUsage_KeyboardS: return sf::Keyboard::ScanS; + case kHIDUsage_KeyboardT: return sf::Keyboard::ScanT; + case kHIDUsage_KeyboardU: return sf::Keyboard::ScanU; + case kHIDUsage_KeyboardV: return sf::Keyboard::ScanV; + case kHIDUsage_KeyboardW: return sf::Keyboard::ScanW; + case kHIDUsage_KeyboardX: return sf::Keyboard::ScanX; + case kHIDUsage_KeyboardY: return sf::Keyboard::ScanY; + case kHIDUsage_KeyboardZ: return sf::Keyboard::ScanZ; - case kHIDUsage_Keyboard1: return sf::Keyboard::sNum1; - case kHIDUsage_Keyboard2: return sf::Keyboard::sNum2; - case kHIDUsage_Keyboard3: return sf::Keyboard::sNum3; - case kHIDUsage_Keyboard4: return sf::Keyboard::sNum4; - case kHIDUsage_Keyboard5: return sf::Keyboard::sNum5; - case kHIDUsage_Keyboard6: return sf::Keyboard::sNum6; - case kHIDUsage_Keyboard7: return sf::Keyboard::sNum7; - case kHIDUsage_Keyboard8: return sf::Keyboard::sNum8; - case kHIDUsage_Keyboard9: return sf::Keyboard::sNum9; - case kHIDUsage_Keyboard0: return sf::Keyboard::sNum0; + case kHIDUsage_Keyboard1: return sf::Keyboard::ScanNum1; + case kHIDUsage_Keyboard2: return sf::Keyboard::ScanNum2; + case kHIDUsage_Keyboard3: return sf::Keyboard::ScanNum3; + case kHIDUsage_Keyboard4: return sf::Keyboard::ScanNum4; + case kHIDUsage_Keyboard5: return sf::Keyboard::ScanNum5; + case kHIDUsage_Keyboard6: return sf::Keyboard::ScanNum6; + case kHIDUsage_Keyboard7: return sf::Keyboard::ScanNum7; + case kHIDUsage_Keyboard8: return sf::Keyboard::ScanNum8; + case kHIDUsage_Keyboard9: return sf::Keyboard::ScanNum9; + case kHIDUsage_Keyboard0: return sf::Keyboard::ScanNum0; - case kHIDUsage_KeyboardReturnOrEnter: return sf::Keyboard::sEnter; - case kHIDUsage_KeyboardEscape: return sf::Keyboard::sEscape; - case kHIDUsage_KeyboardDeleteOrBackspace: return sf::Keyboard::sBackspace; - case kHIDUsage_KeyboardTab: return sf::Keyboard::sTab; - case kHIDUsage_KeyboardSpacebar: return sf::Keyboard::sSpace; - case kHIDUsage_KeyboardHyphen: return sf::Keyboard::sHyphen; - case kHIDUsage_KeyboardEqualSign: return sf::Keyboard::sEquals; - case kHIDUsage_KeyboardOpenBracket: return sf::Keyboard::sLBracket; - case kHIDUsage_KeyboardCloseBracket: return sf::Keyboard::sRBracket; - case kHIDUsage_KeyboardBackslash: return sf::Keyboard::sBackslash; - case kHIDUsage_KeyboardNonUSPound: return sf::Keyboard::sDash; - case kHIDUsage_KeyboardSemicolon: return sf::Keyboard::sSemicolon; - case kHIDUsage_KeyboardQuote: return sf::Keyboard::sQuote; - case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::sGraveAccent; - case kHIDUsage_KeyboardComma: return sf::Keyboard::sComma; - case kHIDUsage_KeyboardPeriod: return sf::Keyboard::sPeriod; - case kHIDUsage_KeyboardSlash: return sf::Keyboard::sForwardSlash; - case kHIDUsage_KeyboardCapsLock: return sf::Keyboard::sCapsLock; + case kHIDUsage_KeyboardReturnOrEnter: return sf::Keyboard::ScanEnter; + case kHIDUsage_KeyboardEscape: return sf::Keyboard::ScanEscape; + case kHIDUsage_KeyboardDeleteOrBackspace: return sf::Keyboard::ScanBackspace; + case kHIDUsage_KeyboardTab: return sf::Keyboard::ScanTab; + case kHIDUsage_KeyboardSpacebar: return sf::Keyboard::ScanSpace; + case kHIDUsage_KeyboardHyphen: return sf::Keyboard::ScanHyphen; + case kHIDUsage_KeyboardEqualSign: return sf::Keyboard::ScanEquals; + case kHIDUsage_KeyboardOpenBracket: return sf::Keyboard::ScanLBracket; + case kHIDUsage_KeyboardCloseBracket: return sf::Keyboard::ScanRBracket; + case kHIDUsage_KeyboardBackslash: return sf::Keyboard::ScanBackslash; + case kHIDUsage_KeyboardNonUSPound: return sf::Keyboard::ScanDash; + case kHIDUsage_KeyboardSemicolon: return sf::Keyboard::ScanSemicolon; + case kHIDUsage_KeyboardQuote: return sf::Keyboard::ScanQuote; + case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::ScanGraveAccent; + case kHIDUsage_KeyboardComma: return sf::Keyboard::ScanComma; + case kHIDUsage_KeyboardPeriod: return sf::Keyboard::ScanPeriod; + case kHIDUsage_KeyboardSlash: return sf::Keyboard::ScanForwardSlash; + case kHIDUsage_KeyboardCapsLock: return sf::Keyboard::ScanCapsLock; - case kHIDUsage_KeyboardF1: return sf::Keyboard::sF1; - case kHIDUsage_KeyboardF2: return sf::Keyboard::sF2; - case kHIDUsage_KeyboardF3: return sf::Keyboard::sF3; - case kHIDUsage_KeyboardF4: return sf::Keyboard::sF4; - case kHIDUsage_KeyboardF5: return sf::Keyboard::sF5; - case kHIDUsage_KeyboardF6: return sf::Keyboard::sF6; - case kHIDUsage_KeyboardF7: return sf::Keyboard::sF7; - case kHIDUsage_KeyboardF8: return sf::Keyboard::sF8; - case kHIDUsage_KeyboardF9: return sf::Keyboard::sF9; - case kHIDUsage_KeyboardF10: return sf::Keyboard::sF10; - case kHIDUsage_KeyboardF11: return sf::Keyboard::sF11; - case kHIDUsage_KeyboardF12: return sf::Keyboard::sF12; + case kHIDUsage_KeyboardF1: return sf::Keyboard::ScanF1; + case kHIDUsage_KeyboardF2: return sf::Keyboard::ScanF2; + case kHIDUsage_KeyboardF3: return sf::Keyboard::ScanF3; + case kHIDUsage_KeyboardF4: return sf::Keyboard::ScanF4; + case kHIDUsage_KeyboardF5: return sf::Keyboard::ScanF5; + case kHIDUsage_KeyboardF6: return sf::Keyboard::ScanF6; + case kHIDUsage_KeyboardF7: return sf::Keyboard::ScanF7; + case kHIDUsage_KeyboardF8: return sf::Keyboard::ScanF8; + case kHIDUsage_KeyboardF9: return sf::Keyboard::ScanF9; + case kHIDUsage_KeyboardF10: return sf::Keyboard::ScanF10; + case kHIDUsage_KeyboardF11: return sf::Keyboard::ScanF11; + case kHIDUsage_KeyboardF12: return sf::Keyboard::ScanF12; - case kHIDUsage_KeyboardPrintScreen: return sf::Keyboard::sPrintScreen; - case kHIDUsage_KeyboardScrollLock: return sf::Keyboard::sScrollLock; - case kHIDUsage_KeyboardPause: return sf::Keyboard::sPause; - case kHIDUsage_KeyboardInsert: return sf::Keyboard::sInsert; - case kHIDUsage_KeyboardHome: return sf::Keyboard::sHome; - case kHIDUsage_KeyboardPageUp: return sf::Keyboard::sPageUp; - case kHIDUsage_KeyboardDeleteForward: return sf::Keyboard::sDelete; - case kHIDUsage_KeyboardEnd: return sf::Keyboard::sEnd; - case kHIDUsage_KeyboardPageDown: return sf::Keyboard::sPageDown; + case kHIDUsage_KeyboardPrintScreen: return sf::Keyboard::ScanPrintScreen; + case kHIDUsage_KeyboardScrollLock: return sf::Keyboard::ScanScrollLock; + case kHIDUsage_KeyboardPause: return sf::Keyboard::ScanPause; + case kHIDUsage_KeyboardInsert: return sf::Keyboard::ScanInsert; + case kHIDUsage_KeyboardHome: return sf::Keyboard::ScanHome; + case kHIDUsage_KeyboardPageUp: return sf::Keyboard::ScanPageUp; + case kHIDUsage_KeyboardDeleteForward: return sf::Keyboard::ScanDelete; + case kHIDUsage_KeyboardEnd: return sf::Keyboard::ScanEnd; + case kHIDUsage_KeyboardPageDown: return sf::Keyboard::ScanPageDown; - case kHIDUsage_KeyboardRightArrow: return sf::Keyboard::sRight; - case kHIDUsage_KeyboardLeftArrow: return sf::Keyboard::sLeft; - case kHIDUsage_KeyboardDownArrow: return sf::Keyboard::sDown; - case kHIDUsage_KeyboardUpArrow: return sf::Keyboard::sUp; + case kHIDUsage_KeyboardRightArrow: return sf::Keyboard::ScanRight; + case kHIDUsage_KeyboardLeftArrow: return sf::Keyboard::ScanLeft; + case kHIDUsage_KeyboardDownArrow: return sf::Keyboard::ScanDown; + case kHIDUsage_KeyboardUpArrow: return sf::Keyboard::ScanUp; - case kHIDUsage_KeypadNumLock: return sf::Keyboard::sNumLock; - case kHIDUsage_KeypadSlash: return sf::Keyboard::sDivide; - case kHIDUsage_KeypadAsterisk: return sf::Keyboard::sMultiply; - case kHIDUsage_KeypadHyphen: return sf::Keyboard::sMinus; - case kHIDUsage_KeypadPlus: return sf::Keyboard::sPlus; - case kHIDUsage_KeypadEnter: return sf::Keyboard::sReturn; + case kHIDUsage_KeypadNumLock: return sf::Keyboard::ScanNumLock; + case kHIDUsage_KeypadSlash: return sf::Keyboard::ScanDivide; + case kHIDUsage_KeypadAsterisk: return sf::Keyboard::ScanMultiply; + case kHIDUsage_KeypadHyphen: return sf::Keyboard::ScanMinus; + case kHIDUsage_KeypadPlus: return sf::Keyboard::ScanPlus; + case kHIDUsage_KeypadEnter: return sf::Keyboard::ScanReturn; - case kHIDUsage_Keypad1: return sf::Keyboard::sNumpad1; - case kHIDUsage_Keypad2: return sf::Keyboard::sNumpad2; - case kHIDUsage_Keypad3: return sf::Keyboard::sNumpad3; - case kHIDUsage_Keypad4: return sf::Keyboard::sNumpad4; - case kHIDUsage_Keypad5: return sf::Keyboard::sNumpad5; - case kHIDUsage_Keypad6: return sf::Keyboard::sNumpad6; - case kHIDUsage_Keypad7: return sf::Keyboard::sNumpad7; - case kHIDUsage_Keypad8: return sf::Keyboard::sNumpad8; - case kHIDUsage_Keypad9: return sf::Keyboard::sNumpad9; - case kHIDUsage_Keypad0: return sf::Keyboard::sNumpad0; + case kHIDUsage_Keypad1: return sf::Keyboard::ScanNumpad1; + case kHIDUsage_Keypad2: return sf::Keyboard::ScanNumpad2; + case kHIDUsage_Keypad3: return sf::Keyboard::ScanNumpad3; + case kHIDUsage_Keypad4: return sf::Keyboard::ScanNumpad4; + case kHIDUsage_Keypad5: return sf::Keyboard::ScanNumpad5; + case kHIDUsage_Keypad6: return sf::Keyboard::ScanNumpad6; + case kHIDUsage_Keypad7: return sf::Keyboard::ScanNumpad7; + case kHIDUsage_Keypad8: return sf::Keyboard::ScanNumpad8; + case kHIDUsage_Keypad9: return sf::Keyboard::ScanNumpad9; + case kHIDUsage_Keypad0: return sf::Keyboard::ScanNumpad0; - case kHIDUsage_KeypadPeriod: return sf::Keyboard::sDecimal; - case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::sReverseSolidus; - case kHIDUsage_KeyboardApplication: return sf::Keyboard::sApplication; - case kHIDUsage_KeyboardPower: return sf::Keyboard::sUnknown; - case kHIDUsage_KeypadEqualSign: return sf::Keyboard::sPadEquals; + case kHIDUsage_KeypadPeriod: return sf::Keyboard::ScanDecimal; + case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::ScanReverseSolidus; + case kHIDUsage_KeyboardApplication: return sf::Keyboard::ScanApplication; + case kHIDUsage_KeyboardPower: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeypadEqualSign: return sf::Keyboard::ScanPadEquals; - case kHIDUsage_KeyboardF13: return sf::Keyboard::sF13; - case kHIDUsage_KeyboardF14: return sf::Keyboard::sF14; - case kHIDUsage_KeyboardF15: return sf::Keyboard::sF15; - case kHIDUsage_KeyboardF16: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF17: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF18: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF19: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF20: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF21: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF22: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF23: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardF24: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardF13: return sf::Keyboard::ScanF13; + case kHIDUsage_KeyboardF14: return sf::Keyboard::ScanF14; + case kHIDUsage_KeyboardF15: return sf::Keyboard::ScanF15; + case kHIDUsage_KeyboardF16: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF17: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF18: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF19: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF20: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF21: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF22: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF23: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF24: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardExecute: return sf::Keyboard::sExecute; - case kHIDUsage_KeyboardHelp: return sf::Keyboard::sHelp; - case kHIDUsage_KeyboardMenu: return sf::Keyboard::sMenu; - case kHIDUsage_KeyboardSelect: return sf::Keyboard::sSelect; - case kHIDUsage_KeyboardStop: return sf::Keyboard::sStop; - case kHIDUsage_KeyboardAgain: return sf::Keyboard::sAgain; - case kHIDUsage_KeyboardUndo: return sf::Keyboard::sUndo; - case kHIDUsage_KeyboardCut: return sf::Keyboard::sCut; - case kHIDUsage_KeyboardCopy: return sf::Keyboard::sCopy; - case kHIDUsage_KeyboardPaste: return sf::Keyboard::sPaste; - case kHIDUsage_KeyboardFind: return sf::Keyboard::sFind; + case kHIDUsage_KeyboardExecute: return sf::Keyboard::ScanExecute; + case kHIDUsage_KeyboardHelp: return sf::Keyboard::ScanHelp; + case kHIDUsage_KeyboardMenu: return sf::Keyboard::ScanMenu; + case kHIDUsage_KeyboardSelect: return sf::Keyboard::ScanSelect; + case kHIDUsage_KeyboardStop: return sf::Keyboard::ScanStop; + case kHIDUsage_KeyboardAgain: return sf::Keyboard::ScanAgain; + case kHIDUsage_KeyboardUndo: return sf::Keyboard::ScanUndo; + case kHIDUsage_KeyboardCut: return sf::Keyboard::ScanCut; + case kHIDUsage_KeyboardCopy: return sf::Keyboard::ScanCopy; + case kHIDUsage_KeyboardPaste: return sf::Keyboard::ScanPaste; + case kHIDUsage_KeyboardFind: return sf::Keyboard::ScanFind; - case kHIDUsage_KeyboardMute: return sf::Keyboard::sMute; - case kHIDUsage_KeyboardVolumeUp: return sf::Keyboard::sVolumeUp; - case kHIDUsage_KeyboardVolumeDown: return sf::Keyboard::sVolumeDown; + case kHIDUsage_KeyboardMute: return sf::Keyboard::ScanMute; + case kHIDUsage_KeyboardVolumeUp: return sf::Keyboard::ScanVolumeUp; + case kHIDUsage_KeyboardVolumeDown: return sf::Keyboard::ScanVolumeDown; - case kHIDUsage_KeyboardLockingCapsLock: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLockingNumLock: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLockingScrollLock: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLockingCapsLock: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLockingNumLock: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLockingScrollLock: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeypadComma: return sf::Keyboard::sUnknown; - case kHIDUsage_KeypadEqualSignAS400: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational1: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational2: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational3: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational4: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational5: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational6: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational7: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational8: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardInternational9: return sf::Keyboard::sUnknown; + case kHIDUsage_KeypadComma: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeypadEqualSignAS400: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational1: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational2: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational3: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational4: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational5: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational6: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational7: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational8: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational9: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG1: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG2: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG3: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG4: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG5: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG6: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG7: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG8: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardLANG9: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardLANG1: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG2: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG3: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG4: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG5: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG6: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG7: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG8: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG9: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardAlternateErase: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardSysReqOrAttention: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardCancel: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardClear: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardPrior: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardReturn: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardSeparator: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardOut: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardOper: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardClearOrAgain: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardCrSelOrProps: return sf::Keyboard::sUnknown; - case kHIDUsage_KeyboardExSel: return sf::Keyboard::sUnknown; + case kHIDUsage_KeyboardAlternateErase: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardSysReqOrAttention: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardCancel: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardClear: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardPrior: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardReturn: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardSeparator: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardOut: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardOper: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardClearOrAgain: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardCrSelOrProps: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardExSel: return sf::Keyboard::ScanUnknown; /* 0xa5-0xdf Reserved */ - case kHIDUsage_KeyboardLeftControl: return sf::Keyboard::sLControl; - case kHIDUsage_KeyboardLeftShift: return sf::Keyboard::sLShift; - case kHIDUsage_KeyboardLeftAlt: return sf::Keyboard::sLAlt; - case kHIDUsage_KeyboardLeftGUI: return sf::Keyboard::sLSystem; - case kHIDUsage_KeyboardRightControl: return sf::Keyboard::sRControl; - case kHIDUsage_KeyboardRightShift: return sf::Keyboard::sRShift; - case kHIDUsage_KeyboardRightAlt: return sf::Keyboard::sRAlt; - case kHIDUsage_KeyboardRightGUI: return sf::Keyboard::sRSystem; + case kHIDUsage_KeyboardLeftControl: return sf::Keyboard::ScanLControl; + case kHIDUsage_KeyboardLeftShift: return sf::Keyboard::ScanLShift; + case kHIDUsage_KeyboardLeftAlt: return sf::Keyboard::ScanLAlt; + case kHIDUsage_KeyboardLeftGUI: return sf::Keyboard::ScanLSystem; + case kHIDUsage_KeyboardRightControl: return sf::Keyboard::ScanRControl; + case kHIDUsage_KeyboardRightShift: return sf::Keyboard::ScanRShift; + case kHIDUsage_KeyboardRightAlt: return sf::Keyboard::ScanRAlt; + case kHIDUsage_KeyboardRightGUI: return sf::Keyboard::ScanRSystem; /* 0xe8-0xffff Reserved */ - case kHIDUsage_Keyboard_Reserved: return sf::Keyboard::sUnknown; - default: return sf::Keyboard::sUnknown; + case kHIDUsage_Keyboard_Reserved: return sf::Keyboard::ScanUnknown; + default: return sf::Keyboard::ScanUnknown; } } @@ -957,151 +957,151 @@ Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode) // /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h switch (virtualKeycode) { - case 0x00: return sf::Keyboard::sA; - case 0x0b: return sf::Keyboard::sB; - case 0x08: return sf::Keyboard::sC; - case 0x02: return sf::Keyboard::sD; - case 0x0e: return sf::Keyboard::sE; - case 0x03: return sf::Keyboard::sF; - case 0x05: return sf::Keyboard::sG; - case 0x04: return sf::Keyboard::sH; - case 0x22: return sf::Keyboard::sI; - case 0x26: return sf::Keyboard::sJ; - case 0x28: return sf::Keyboard::sK; - case 0x25: return sf::Keyboard::sL; - case 0x2e: return sf::Keyboard::sM; - case 0x2d: return sf::Keyboard::sN; - case 0x1f: return sf::Keyboard::sO; - case 0x23: return sf::Keyboard::sP; - case 0x0c: return sf::Keyboard::sQ; - case 0x0f: return sf::Keyboard::sR; - case 0x01: return sf::Keyboard::sS; - case 0x11: return sf::Keyboard::sT; - case 0x20: return sf::Keyboard::sU; - case 0x09: return sf::Keyboard::sV; - case 0x0d: return sf::Keyboard::sW; - case 0x07: return sf::Keyboard::sX; - case 0x10: return sf::Keyboard::sY; - case 0x06: return sf::Keyboard::sZ; + case 0x00: return sf::Keyboard::ScanA; + case 0x0b: return sf::Keyboard::ScanB; + case 0x08: return sf::Keyboard::ScanC; + case 0x02: return sf::Keyboard::ScanD; + case 0x0e: return sf::Keyboard::ScanE; + case 0x03: return sf::Keyboard::ScanF; + case 0x05: return sf::Keyboard::ScanG; + case 0x04: return sf::Keyboard::ScanH; + case 0x22: return sf::Keyboard::ScanI; + case 0x26: return sf::Keyboard::ScanJ; + case 0x28: return sf::Keyboard::ScanK; + case 0x25: return sf::Keyboard::ScanL; + case 0x2e: return sf::Keyboard::ScanM; + case 0x2d: return sf::Keyboard::ScanN; + case 0x1f: return sf::Keyboard::ScanO; + case 0x23: return sf::Keyboard::ScanP; + case 0x0c: return sf::Keyboard::ScanQ; + case 0x0f: return sf::Keyboard::ScanR; + case 0x01: return sf::Keyboard::ScanS; + case 0x11: return sf::Keyboard::ScanT; + case 0x20: return sf::Keyboard::ScanU; + case 0x09: return sf::Keyboard::ScanV; + case 0x0d: return sf::Keyboard::ScanW; + case 0x07: return sf::Keyboard::ScanX; + case 0x10: return sf::Keyboard::ScanY; + case 0x06: return sf::Keyboard::ScanZ; - case 0x12: return sf::Keyboard::sNum1; - case 0x13: return sf::Keyboard::sNum2; - case 0x14: return sf::Keyboard::sNum3; - case 0x15: return sf::Keyboard::sNum4; - case 0x17: return sf::Keyboard::sNum5; - case 0x16: return sf::Keyboard::sNum6; - case 0x1a: return sf::Keyboard::sNum7; - case 0x1c: return sf::Keyboard::sNum8; - case 0x19: return sf::Keyboard::sNum9; - case 0x1d: return sf::Keyboard::sNum0; + case 0x12: return sf::Keyboard::ScanNum1; + case 0x13: return sf::Keyboard::ScanNum2; + case 0x14: return sf::Keyboard::ScanNum3; + case 0x15: return sf::Keyboard::ScanNum4; + case 0x17: return sf::Keyboard::ScanNum5; + case 0x16: return sf::Keyboard::ScanNum6; + case 0x1a: return sf::Keyboard::ScanNum7; + case 0x1c: return sf::Keyboard::ScanNum8; + case 0x19: return sf::Keyboard::ScanNum9; + case 0x1d: return sf::Keyboard::ScanNum0; - case 0x24: return sf::Keyboard::sEnter; - case 0x35: return sf::Keyboard::sEscape; - case 0x33: return sf::Keyboard::sBackspace; - case 0x30: return sf::Keyboard::sTab; - case 0x31: return sf::Keyboard::sSpace; - // case 0x27: return sf::Keyboard::sHyphen; // TODO 0x27 is for Quote - case 0x18: return sf::Keyboard::sEquals; - case 0x21: return sf::Keyboard::sLBracket; - case 0x1e: return sf::Keyboard::sRBracket; - case 0x2a: return sf::Keyboard::sBackslash; - case 0x1b: return sf::Keyboard::sDash; - case 0x29: return sf::Keyboard::sSemicolon; - case 0x27: return sf::Keyboard::sQuote; - case 0x32: return sf::Keyboard::sGraveAccent; - case 0x2b: return sf::Keyboard::sComma; - case 0x2f: return sf::Keyboard::sPeriod; - case 0x2c: return sf::Keyboard::sForwardSlash; + case 0x24: return sf::Keyboard::ScanEnter; + case 0x35: return sf::Keyboard::ScanEscape; + case 0x33: return sf::Keyboard::ScanBackspace; + case 0x30: return sf::Keyboard::ScanTab; + case 0x31: return sf::Keyboard::ScanSpace; + // case 0x27: return sf::Keyboard::ScanHyphen; // TODO 0x27 is for Quote + case 0x18: return sf::Keyboard::ScanEquals; + case 0x21: return sf::Keyboard::ScanLBracket; + case 0x1e: return sf::Keyboard::ScanRBracket; + case 0x2a: return sf::Keyboard::ScanBackslash; + case 0x1b: return sf::Keyboard::ScanDash; + case 0x29: return sf::Keyboard::ScanSemicolon; + case 0x27: return sf::Keyboard::ScanQuote; + case 0x32: return sf::Keyboard::ScanGraveAccent; + case 0x2b: return sf::Keyboard::ScanComma; + case 0x2f: return sf::Keyboard::ScanPeriod; + case 0x2c: return sf::Keyboard::ScanForwardSlash; - case 0x7a: return sf::Keyboard::sF1; - case 0x78: return sf::Keyboard::sF2; - case 0x63: return sf::Keyboard::sF3; - case 0x76: return sf::Keyboard::sF4; - case 0x60: return sf::Keyboard::sF5; - case 0x61: return sf::Keyboard::sF6; - case 0x62: return sf::Keyboard::sF7; - case 0x64: return sf::Keyboard::sF8; - case 0x65: return sf::Keyboard::sF9; - case 0x6d: return sf::Keyboard::sF10; - case 0x67: return sf::Keyboard::sF11; - case 0x6f: return sf::Keyboard::sF12; - case 0x69: return sf::Keyboard::sF13; - case 0x6b: return sf::Keyboard::sF14; - case 0x71: return sf::Keyboard::sF15; + case 0x7a: return sf::Keyboard::ScanF1; + case 0x78: return sf::Keyboard::ScanF2; + case 0x63: return sf::Keyboard::ScanF3; + case 0x76: return sf::Keyboard::ScanF4; + case 0x60: return sf::Keyboard::ScanF5; + case 0x61: return sf::Keyboard::ScanF6; + case 0x62: return sf::Keyboard::ScanF7; + case 0x64: return sf::Keyboard::ScanF8; + case 0x65: return sf::Keyboard::ScanF9; + case 0x6d: return sf::Keyboard::ScanF10; + case 0x67: return sf::Keyboard::ScanF11; + case 0x6f: return sf::Keyboard::ScanF12; + case 0x69: return sf::Keyboard::ScanF13; + case 0x6b: return sf::Keyboard::ScanF14; + case 0x71: return sf::Keyboard::ScanF15; - case 0x39: return sf::Keyboard::sCapsLock; + case 0x39: return sf::Keyboard::ScanCapsLock; /* TODO Those are missing: - * case 0x: return sf::Keyboard::sPrintScreen; - * case 0x: return sf::Keyboard::sScrollLock; - * case 0x: return sf::Keyboard::sPause; + * case 0x: return sf::Keyboard::ScanPrintScreen; + * case 0x: return sf::Keyboard::ScanScrollLock; + * case 0x: return sf::Keyboard::ScanPause; */ - case 0x72: return sf::Keyboard::sInsert; - case 0x73: return sf::Keyboard::sHome; - case 0x74: return sf::Keyboard::sPageUp; - case 0x75: return sf::Keyboard::sDelete; - case 0x77: return sf::Keyboard::sEnd; - case 0x79: return sf::Keyboard::sPageDown; + case 0x72: return sf::Keyboard::ScanInsert; + case 0x73: return sf::Keyboard::ScanHome; + case 0x74: return sf::Keyboard::ScanPageUp; + case 0x75: return sf::Keyboard::ScanDelete; + case 0x77: return sf::Keyboard::ScanEnd; + case 0x79: return sf::Keyboard::ScanPageDown; - case 0x7c: return sf::Keyboard::sRight; - case 0x7b: return sf::Keyboard::sLeft; - case 0x7d: return sf::Keyboard::sDown; - case 0x7e: return sf::Keyboard::sUp; + case 0x7c: return sf::Keyboard::ScanRight; + case 0x7b: return sf::Keyboard::ScanLeft; + case 0x7d: return sf::Keyboard::ScanDown; + case 0x7e: return sf::Keyboard::ScanUp; - case 0x47: return sf::Keyboard::sNumLock; - case 0x4b: return sf::Keyboard::sDivide; - case 0x43: return sf::Keyboard::sMultiply; - case 0x4e: return sf::Keyboard::sMinus; - case 0x45: return sf::Keyboard::sPlus; - case 0x51: return sf::Keyboard::sPadEquals; - case 0x4c: return sf::Keyboard::sReturn; - case 0x41: return sf::Keyboard::sDecimal; + case 0x47: return sf::Keyboard::ScanNumLock; + case 0x4b: return sf::Keyboard::ScanDivide; + case 0x43: return sf::Keyboard::ScanMultiply; + case 0x4e: return sf::Keyboard::ScanMinus; + case 0x45: return sf::Keyboard::ScanPlus; + case 0x51: return sf::Keyboard::ScanPadEquals; + case 0x4c: return sf::Keyboard::ScanReturn; + case 0x41: return sf::Keyboard::ScanDecimal; - case 0x53: return sf::Keyboard::sNumpad1; - case 0x54: return sf::Keyboard::sNumpad2; - case 0x55: return sf::Keyboard::sNumpad3; - case 0x56: return sf::Keyboard::sNumpad4; - case 0x57: return sf::Keyboard::sNumpad5; - case 0x58: return sf::Keyboard::sNumpad6; - case 0x59: return sf::Keyboard::sNumpad7; - case 0x5b: return sf::Keyboard::sNumpad8; - case 0x5c: return sf::Keyboard::sNumpad9; - case 0x52: return sf::Keyboard::sNumpad0; + case 0x53: return sf::Keyboard::ScanNumpad1; + case 0x54: return sf::Keyboard::ScanNumpad2; + case 0x55: return sf::Keyboard::ScanNumpad3; + case 0x56: return sf::Keyboard::ScanNumpad4; + case 0x57: return sf::Keyboard::ScanNumpad5; + case 0x58: return sf::Keyboard::ScanNumpad6; + case 0x59: return sf::Keyboard::ScanNumpad7; + case 0x5b: return sf::Keyboard::ScanNumpad8; + case 0x5c: return sf::Keyboard::ScanNumpad9; + case 0x52: return sf::Keyboard::ScanNumpad0; /* TODO Those are missing: - * case 0x: return sf::Keyboard::sReverseSolidus; - * case 0x: return sf::Keyboard::sApplication; - * case 0x: return sf::Keyboard::sExecute; - * case 0x72: return sf::Keyboard::sHelp; // 0x72 is for Insert - * case 0x: return sf::Keyboard::sMenu; - * case 0x: return sf::Keyboard::sSelect; - * case 0x: return sf::Keyboard::sStop; - * case 0x: return sf::Keyboard::sAgain; - * case 0x: return sf::Keyboard::sUndo; - * case 0x: return sf::Keyboard::sCut; - * case 0x: return sf::Keyboard::sCopy; - * case 0x: return sf::Keyboard::sPaste; - * case 0x: return sf::Keyboard::sFind; + * case 0x: return sf::Keyboard::ScanReverseSolidus; + * case 0x: return sf::Keyboard::ScanApplication; + * case 0x: return sf::Keyboard::ScanExecute; + * case 0x72: return sf::Keyboard::ScanHelp; // 0x72 is for Insert + * case 0x: return sf::Keyboard::ScanMenu; + * case 0x: return sf::Keyboard::ScanSelect; + * case 0x: return sf::Keyboard::ScanStop; + * case 0x: return sf::Keyboard::ScanAgain; + * case 0x: return sf::Keyboard::ScanUndo; + * case 0x: return sf::Keyboard::ScanCut; + * case 0x: return sf::Keyboard::ScanCopy; + * case 0x: return sf::Keyboard::ScanPaste; + * case 0x: return sf::Keyboard::ScanFind; */ - case 0x4a: return sf::Keyboard::sMute; - case 0x48: return sf::Keyboard::sVolumeUp; - case 0x49: return sf::Keyboard::sVolumeDown; + case 0x4a: return sf::Keyboard::ScanMute; + case 0x48: return sf::Keyboard::ScanVolumeUp; + case 0x49: return sf::Keyboard::ScanVolumeDown; /* NOTE Those are symmetric so we leave them out. * Thankfully handled through modifiers and not virtual codes. - * case 0x3b: return sf::Keyboard::sLControl; - * case 0x38: return sf::Keyboard::sLShift; - * case 0x3a: return sf::Keyboard::sLAlt; - * case 0x37: return sf::Keyboard::sLSystem; - * case 0x3b: return sf::Keyboard::sRControl; - * case 0x38: return sf::Keyboard::sRShift; - * case 0x3a: return sf::Keyboard::sRAlt; - * case 0x37: return sf::Keyboard::sRSystem; + * case 0x3b: return sf::Keyboard::ScanLControl; + * case 0x38: return sf::Keyboard::ScanLShift; + * case 0x3a: return sf::Keyboard::ScanLAlt; + * case 0x37: return sf::Keyboard::ScanLSystem; + * case 0x3b: return sf::Keyboard::ScanRControl; + * case 0x38: return sf::Keyboard::ScanRShift; + * case 0x3a: return sf::Keyboard::ScanRAlt; + * case 0x37: return sf::Keyboard::ScanRSystem; */ - default: return sf::Keyboard::sUnknown; + default: return sf::Keyboard::ScanUnknown; } } @@ -1111,147 +1111,147 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code) { switch (code) { - case sf::Keyboard::sA: return 0x00; - case sf::Keyboard::sB: return 0x0b; - case sf::Keyboard::sC: return 0x08; - case sf::Keyboard::sD: return 0x02; - case sf::Keyboard::sE: return 0x0e; - case sf::Keyboard::sF: return 0x03; - case sf::Keyboard::sG: return 0x05; - case sf::Keyboard::sH: return 0x04; - case sf::Keyboard::sI: return 0x22; - case sf::Keyboard::sJ: return 0x26; - case sf::Keyboard::sK: return 0x28; - case sf::Keyboard::sL: return 0x25; - case sf::Keyboard::sM: return 0x2e; - case sf::Keyboard::sN: return 0x2d; - case sf::Keyboard::sO: return 0x1f; - case sf::Keyboard::sP: return 0x23; - case sf::Keyboard::sQ: return 0x0c; - case sf::Keyboard::sR: return 0x0f; - case sf::Keyboard::sS: return 0x01; - case sf::Keyboard::sT: return 0x11; - case sf::Keyboard::sU: return 0x20; - case sf::Keyboard::sV: return 0x09; - case sf::Keyboard::sW: return 0x0d; - case sf::Keyboard::sX: return 0x07; - case sf::Keyboard::sY: return 0x10; - case sf::Keyboard::sZ: return 0x06; + case sf::Keyboard::ScanA: return 0x00; + case sf::Keyboard::ScanB: return 0x0b; + case sf::Keyboard::ScanC: return 0x08; + case sf::Keyboard::ScanD: return 0x02; + case sf::Keyboard::ScanE: return 0x0e; + case sf::Keyboard::ScanF: return 0x03; + case sf::Keyboard::ScanG: return 0x05; + case sf::Keyboard::ScanH: return 0x04; + case sf::Keyboard::ScanI: return 0x22; + case sf::Keyboard::ScanJ: return 0x26; + case sf::Keyboard::ScanK: return 0x28; + case sf::Keyboard::ScanL: return 0x25; + case sf::Keyboard::ScanM: return 0x2e; + case sf::Keyboard::ScanN: return 0x2d; + case sf::Keyboard::ScanO: return 0x1f; + case sf::Keyboard::ScanP: return 0x23; + case sf::Keyboard::ScanQ: return 0x0c; + case sf::Keyboard::ScanR: return 0x0f; + case sf::Keyboard::ScanS: return 0x01; + case sf::Keyboard::ScanT: return 0x11; + case sf::Keyboard::ScanU: return 0x20; + case sf::Keyboard::ScanV: return 0x09; + case sf::Keyboard::ScanW: return 0x0d; + case sf::Keyboard::ScanX: return 0x07; + case sf::Keyboard::ScanY: return 0x10; + case sf::Keyboard::ScanZ: return 0x06; - case sf::Keyboard::sNum1: return 0x12; - case sf::Keyboard::sNum2: return 0x13; - case sf::Keyboard::sNum3: return 0x14; - case sf::Keyboard::sNum4: return 0x15; - case sf::Keyboard::sNum5: return 0x17; - case sf::Keyboard::sNum6: return 0x16; - case sf::Keyboard::sNum7: return 0x1a; - case sf::Keyboard::sNum8: return 0x1c; - case sf::Keyboard::sNum9: return 0x19; - case sf::Keyboard::sNum0: return 0x1d; + case sf::Keyboard::ScanNum1: return 0x12; + case sf::Keyboard::ScanNum2: return 0x13; + case sf::Keyboard::ScanNum3: return 0x14; + case sf::Keyboard::ScanNum4: return 0x15; + case sf::Keyboard::ScanNum5: return 0x17; + case sf::Keyboard::ScanNum6: return 0x16; + case sf::Keyboard::ScanNum7: return 0x1a; + case sf::Keyboard::ScanNum8: return 0x1c; + case sf::Keyboard::ScanNum9: return 0x19; + case sf::Keyboard::ScanNum0: return 0x1d; - case sf::Keyboard::sEnter: return 0x24; - case sf::Keyboard::sEscape: return 0x35; - case sf::Keyboard::sBackspace: return 0x33; - case sf::Keyboard::sTab: return 0x30; - case sf::Keyboard::sSpace: return 0x31; + case sf::Keyboard::ScanEnter: return 0x24; + case sf::Keyboard::ScanEscape: return 0x35; + case sf::Keyboard::ScanBackspace: return 0x33; + case sf::Keyboard::ScanTab: return 0x30; + case sf::Keyboard::ScanSpace: return 0x31; - // case sf::Keyboard::sHyphen: return 0; // 0x27 is for Quote + // case sf::Keyboard::ScanHyphen: return 0; // 0x27 is for Quote - case sf::Keyboard::sEquals: return 0x18; - case sf::Keyboard::sLBracket: return 0x21; - case sf::Keyboard::sRBracket: return 0x1e; - case sf::Keyboard::sBackslash: return 0x2a; - case sf::Keyboard::sDash: return 0x1b; - case sf::Keyboard::sSemicolon: return 0x29; - case sf::Keyboard::sQuote: return 0x27; - case sf::Keyboard::sGraveAccent: return 0x32; - case sf::Keyboard::sComma: return 0x2b; - case sf::Keyboard::sPeriod: return 0x2f; - case sf::Keyboard::sForwardSlash: return 0x2c; + case sf::Keyboard::ScanEquals: return 0x18; + case sf::Keyboard::ScanLBracket: return 0x21; + case sf::Keyboard::ScanRBracket: return 0x1e; + case sf::Keyboard::ScanBackslash: return 0x2a; + case sf::Keyboard::ScanDash: return 0x1b; + case sf::Keyboard::ScanSemicolon: return 0x29; + case sf::Keyboard::ScanQuote: return 0x27; + case sf::Keyboard::ScanGraveAccent: return 0x32; + case sf::Keyboard::ScanComma: return 0x2b; + case sf::Keyboard::ScanPeriod: return 0x2f; + case sf::Keyboard::ScanForwardSlash: return 0x2c; - case sf::Keyboard::sF1: return 0x7a; - case sf::Keyboard::sF2: return 0x78; - case sf::Keyboard::sF3: return 0x63; - case sf::Keyboard::sF4: return 0x76; - case sf::Keyboard::sF5: return 0x60; - case sf::Keyboard::sF6: return 0x61; - case sf::Keyboard::sF7: return 0x62; - case sf::Keyboard::sF8: return 0x64; - case sf::Keyboard::sF9: return 0x65; - case sf::Keyboard::sF10: return 0x6d; - case sf::Keyboard::sF11: return 0x67; - case sf::Keyboard::sF12: return 0x6f; - case sf::Keyboard::sF13: return 0x69; - case sf::Keyboard::sF14: return 0x6b; - case sf::Keyboard::sF15: return 0x71; + case sf::Keyboard::ScanF1: return 0x7a; + case sf::Keyboard::ScanF2: return 0x78; + case sf::Keyboard::ScanF3: return 0x63; + case sf::Keyboard::ScanF4: return 0x76; + case sf::Keyboard::ScanF5: return 0x60; + case sf::Keyboard::ScanF6: return 0x61; + case sf::Keyboard::ScanF7: return 0x62; + case sf::Keyboard::ScanF8: return 0x64; + case sf::Keyboard::ScanF9: return 0x65; + case sf::Keyboard::ScanF10: return 0x6d; + case sf::Keyboard::ScanF11: return 0x67; + case sf::Keyboard::ScanF12: return 0x6f; + case sf::Keyboard::ScanF13: return 0x69; + case sf::Keyboard::ScanF14: return 0x6b; + case sf::Keyboard::ScanF15: return 0x71; - case sf::Keyboard::sCapsLock: return 0x39; + case sf::Keyboard::ScanCapsLock: return 0x39; /* TODO Those are missing: - * case sf::Keyboard::sPrintScreen: return 0; - * case sf::Keyboard::sScrollLock: return 0; - * case sf::Keyboard::sPause: return 0; + * case sf::Keyboard::ScanPrintScreen: return 0; + * case sf::Keyboard::ScanScrollLock: return 0; + * case sf::Keyboard::ScanPause: return 0; */ - case sf::Keyboard::sInsert: return 0x72; - case sf::Keyboard::sHome: return 0x73; - case sf::Keyboard::sPageUp: return 0x74; - case sf::Keyboard::sDelete: return 0x75; - case sf::Keyboard::sEnd: return 0x77; - case sf::Keyboard::sPageDown: return 0x79; + case sf::Keyboard::ScanInsert: return 0x72; + case sf::Keyboard::ScanHome: return 0x73; + case sf::Keyboard::ScanPageUp: return 0x74; + case sf::Keyboard::ScanDelete: return 0x75; + case sf::Keyboard::ScanEnd: return 0x77; + case sf::Keyboard::ScanPageDown: return 0x79; - case sf::Keyboard::sRight: return 0x7c; - case sf::Keyboard::sLeft: return 0x7b; - case sf::Keyboard::sDown: return 0x7d; - case sf::Keyboard::sUp: return 0x7e; + case sf::Keyboard::ScanRight: return 0x7c; + case sf::Keyboard::ScanLeft: return 0x7b; + case sf::Keyboard::ScanDown: return 0x7d; + case sf::Keyboard::ScanUp: return 0x7e; - case sf::Keyboard::sNumLock: return 0x47; - case sf::Keyboard::sDivide: return 0x4b; - case sf::Keyboard::sMultiply: return 0x43; - case sf::Keyboard::sMinus: return 0x4e; - case sf::Keyboard::sPlus: return 0x45; - case sf::Keyboard::sPadEquals: return 0x51; - case sf::Keyboard::sReturn: return 0x4c; - case sf::Keyboard::sDecimal: return 0x41; + case sf::Keyboard::ScanNumLock: return 0x47; + case sf::Keyboard::ScanDivide: return 0x4b; + case sf::Keyboard::ScanMultiply: return 0x43; + case sf::Keyboard::ScanMinus: return 0x4e; + case sf::Keyboard::ScanPlus: return 0x45; + case sf::Keyboard::ScanPadEquals: return 0x51; + case sf::Keyboard::ScanReturn: return 0x4c; + case sf::Keyboard::ScanDecimal: return 0x41; - case sf::Keyboard::sNumpad1: return 0x53; - case sf::Keyboard::sNumpad2: return 0x54; - case sf::Keyboard::sNumpad3: return 0x55; - case sf::Keyboard::sNumpad4: return 0x56; - case sf::Keyboard::sNumpad5: return 0x57; - case sf::Keyboard::sNumpad6: return 0x58; - case sf::Keyboard::sNumpad7: return 0x59; - case sf::Keyboard::sNumpad8: return 0x5b; - case sf::Keyboard::sNumpad9: return 0x5c; - case sf::Keyboard::sNumpad0: return 0x52; + case sf::Keyboard::ScanNumpad1: return 0x53; + case sf::Keyboard::ScanNumpad2: return 0x54; + case sf::Keyboard::ScanNumpad3: return 0x55; + case sf::Keyboard::ScanNumpad4: return 0x56; + case sf::Keyboard::ScanNumpad5: return 0x57; + case sf::Keyboard::ScanNumpad6: return 0x58; + case sf::Keyboard::ScanNumpad7: return 0x59; + case sf::Keyboard::ScanNumpad8: return 0x5b; + case sf::Keyboard::ScanNumpad9: return 0x5c; + case sf::Keyboard::ScanNumpad0: return 0x52; /* TODO Those are missing: - * case sf::Keyboard::sReverseSolidus: return 0; - * case sf::Keyboard::sApplication: return 0; - * case sf::Keyboard::sExecute: return 0; - * case sf::Keyboard::sHelp: return 0; - * case sf::Keyboard::sMenu: return 0; - * case sf::Keyboard::sSelect: return 0; - * case sf::Keyboard::sStop: return 0; - * case sf::Keyboard::sAgain: return 0; - * case sf::Keyboard::sUndo: return 0; - * case sf::Keyboard::sCut: return 0; - * case sf::Keyboard::sCopy: return 0; - * case sf::Keyboard::sPaste: return 0; - * case sf::Keyboard::sFind: return 0; + * case sf::Keyboard::ScanReverseSolidus: return 0; + * case sf::Keyboard::ScanApplication: return 0; + * case sf::Keyboard::ScanExecute: return 0; + * case sf::Keyboard::ScanHelp: return 0; + * case sf::Keyboard::ScanMenu: return 0; + * case sf::Keyboard::ScanSelect: return 0; + * case sf::Keyboard::ScanStop: return 0; + * case sf::Keyboard::ScanAgain: return 0; + * case sf::Keyboard::ScanUndo: return 0; + * case sf::Keyboard::ScanCut: return 0; + * case sf::Keyboard::ScanCopy: return 0; + * case sf::Keyboard::ScanPaste: return 0; + * case sf::Keyboard::ScanFind: return 0; */ - case sf::Keyboard::sMute: return 0x4a; - case sf::Keyboard::sVolumeUp: return 0x48; - case sf::Keyboard::sVolumeDown: return 0x49; + case sf::Keyboard::ScanMute: return 0x4a; + case sf::Keyboard::ScanVolumeUp: return 0x48; + case sf::Keyboard::ScanVolumeDown: return 0x49; - case sf::Keyboard::sLControl: return 0x3b; - case sf::Keyboard::sLShift: return 0x38; - case sf::Keyboard::sLAlt: return 0x3a; - case sf::Keyboard::sLSystem: return 0x37; - case sf::Keyboard::sRControl: return 0x3b; - case sf::Keyboard::sRShift: return 0x38; - case sf::Keyboard::sRAlt: return 0x3a; - case sf::Keyboard::sRSystem: return 0x37; + case sf::Keyboard::ScanLControl: return 0x3b; + case sf::Keyboard::ScanLShift: return 0x38; + case sf::Keyboard::ScanLAlt: return 0x3a; + case sf::Keyboard::ScanLSystem: return 0x37; + case sf::Keyboard::ScanRControl: return 0x3b; + case sf::Keyboard::ScanRShift: return 0x38; + case sf::Keyboard::ScanRAlt: return 0x3a; + case sf::Keyboard::ScanRSystem: return 0x37; default: return 0x00; } @@ -1263,65 +1263,65 @@ Keyboard::Key HIDInputManager::localizedKeyFallback(Keyboard::Scancode code) { switch (code) { - case sf::Keyboard::sEnter: return sf::Keyboard::Return; - case sf::Keyboard::sEscape: return sf::Keyboard::Escape; - case sf::Keyboard::sBackspace: return sf::Keyboard::BackSpace; - case sf::Keyboard::sTab: return sf::Keyboard::Tab; - case sf::Keyboard::sSpace: return sf::Keyboard::Space; + case sf::Keyboard::ScanEnter: return sf::Keyboard::Return; + case sf::Keyboard::ScanEscape: return sf::Keyboard::Escape; + case sf::Keyboard::ScanBackspace: return sf::Keyboard::BackSpace; + case sf::Keyboard::ScanTab: return sf::Keyboard::Tab; + case sf::Keyboard::ScanSpace: return sf::Keyboard::Space; - case sf::Keyboard::sF1: return sf::Keyboard::F1; - case sf::Keyboard::sF2: return sf::Keyboard::F2; - case sf::Keyboard::sF3: return sf::Keyboard::F3; - case sf::Keyboard::sF4: return sf::Keyboard::F4; - case sf::Keyboard::sF5: return sf::Keyboard::F5; - case sf::Keyboard::sF6: return sf::Keyboard::F6; - case sf::Keyboard::sF7: return sf::Keyboard::F7; - case sf::Keyboard::sF8: return sf::Keyboard::F8; - case sf::Keyboard::sF9: return sf::Keyboard::F9; - case sf::Keyboard::sF10: return sf::Keyboard::F10; - case sf::Keyboard::sF11: return sf::Keyboard::F11; - case sf::Keyboard::sF12: return sf::Keyboard::F12; - case sf::Keyboard::sF13: return sf::Keyboard::F13; - case sf::Keyboard::sF14: return sf::Keyboard::F14; - case sf::Keyboard::sF15: return sf::Keyboard::F15; + case sf::Keyboard::ScanF1: return sf::Keyboard::F1; + case sf::Keyboard::ScanF2: return sf::Keyboard::F2; + case sf::Keyboard::ScanF3: return sf::Keyboard::F3; + case sf::Keyboard::ScanF4: return sf::Keyboard::F4; + case sf::Keyboard::ScanF5: return sf::Keyboard::F5; + case sf::Keyboard::ScanF6: return sf::Keyboard::F6; + case sf::Keyboard::ScanF7: return sf::Keyboard::F7; + case sf::Keyboard::ScanF8: return sf::Keyboard::F8; + case sf::Keyboard::ScanF9: return sf::Keyboard::F9; + case sf::Keyboard::ScanF10: return sf::Keyboard::F10; + case sf::Keyboard::ScanF11: return sf::Keyboard::F11; + case sf::Keyboard::ScanF12: return sf::Keyboard::F12; + case sf::Keyboard::ScanF13: return sf::Keyboard::F13; + case sf::Keyboard::ScanF14: return sf::Keyboard::F14; + case sf::Keyboard::ScanF15: return sf::Keyboard::F15; - case sf::Keyboard::sPause: return sf::Keyboard::Pause; - case sf::Keyboard::sInsert: return sf::Keyboard::Insert; - case sf::Keyboard::sHome: return sf::Keyboard::Home; - case sf::Keyboard::sPageUp: return sf::Keyboard::PageUp; - case sf::Keyboard::sDelete: return sf::Keyboard::Delete; - case sf::Keyboard::sEnd: return sf::Keyboard::End; - case sf::Keyboard::sPageDown: return sf::Keyboard::PageDown; + case sf::Keyboard::ScanPause: return sf::Keyboard::Pause; + case sf::Keyboard::ScanInsert: return sf::Keyboard::Insert; + case sf::Keyboard::ScanHome: return sf::Keyboard::Home; + case sf::Keyboard::ScanPageUp: return sf::Keyboard::PageUp; + case sf::Keyboard::ScanDelete: return sf::Keyboard::Delete; + case sf::Keyboard::ScanEnd: return sf::Keyboard::End; + case sf::Keyboard::ScanPageDown: return sf::Keyboard::PageDown; - case sf::Keyboard::sRight: return sf::Keyboard::Right; - case sf::Keyboard::sLeft: return sf::Keyboard::Left; - case sf::Keyboard::sDown: return sf::Keyboard::Down; - case sf::Keyboard::sUp: return sf::Keyboard::Up; + case sf::Keyboard::ScanRight: return sf::Keyboard::Right; + case sf::Keyboard::ScanLeft: return sf::Keyboard::Left; + case sf::Keyboard::ScanDown: return sf::Keyboard::Down; + case sf::Keyboard::ScanUp: return sf::Keyboard::Up; - case sf::Keyboard::sDivide: return sf::Keyboard::Divide; - case sf::Keyboard::sMultiply: return sf::Keyboard::Multiply; - case sf::Keyboard::sMinus: return sf::Keyboard::Subtract; - case sf::Keyboard::sPlus: return sf::Keyboard::Add; + case sf::Keyboard::ScanDivide: return sf::Keyboard::Divide; + case sf::Keyboard::ScanMultiply: return sf::Keyboard::Multiply; + case sf::Keyboard::ScanMinus: return sf::Keyboard::Subtract; + case sf::Keyboard::ScanPlus: return sf::Keyboard::Add; - case sf::Keyboard::sNumpad0: return sf::Keyboard::Numpad1; - case sf::Keyboard::sNumpad1: return sf::Keyboard::Numpad2; - case sf::Keyboard::sNumpad2: return sf::Keyboard::Numpad3; - case sf::Keyboard::sNumpad3: return sf::Keyboard::Numpad4; - case sf::Keyboard::sNumpad4: return sf::Keyboard::Numpad5; - case sf::Keyboard::sNumpad5: return sf::Keyboard::Numpad6; - case sf::Keyboard::sNumpad6: return sf::Keyboard::Numpad7; - case sf::Keyboard::sNumpad7: return sf::Keyboard::Numpad8; - case sf::Keyboard::sNumpad8: return sf::Keyboard::Numpad9; - case sf::Keyboard::sNumpad9: return sf::Keyboard::Numpad0; + case sf::Keyboard::ScanNumpad0: return sf::Keyboard::Numpad1; + case sf::Keyboard::ScanNumpad1: return sf::Keyboard::Numpad2; + case sf::Keyboard::ScanNumpad2: return sf::Keyboard::Numpad3; + case sf::Keyboard::ScanNumpad3: return sf::Keyboard::Numpad4; + case sf::Keyboard::ScanNumpad4: return sf::Keyboard::Numpad5; + case sf::Keyboard::ScanNumpad5: return sf::Keyboard::Numpad6; + case sf::Keyboard::ScanNumpad6: return sf::Keyboard::Numpad7; + case sf::Keyboard::ScanNumpad7: return sf::Keyboard::Numpad8; + case sf::Keyboard::ScanNumpad8: return sf::Keyboard::Numpad9; + case sf::Keyboard::ScanNumpad9: return sf::Keyboard::Numpad0; - case sf::Keyboard::sLControl: return sf::Keyboard::LControl; - case sf::Keyboard::sLShift: return sf::Keyboard::LShift; - case sf::Keyboard::sLAlt: return sf::Keyboard::LAlt; - case sf::Keyboard::sLSystem: return sf::Keyboard::LSystem; - case sf::Keyboard::sRControl: return sf::Keyboard::RControl; - case sf::Keyboard::sRShift: return sf::Keyboard::RShift; - case sf::Keyboard::sRAlt: return sf::Keyboard::RAlt; - case sf::Keyboard::sRSystem: return sf::Keyboard::RSystem; + case sf::Keyboard::ScanLControl: return sf::Keyboard::LControl; + case sf::Keyboard::ScanLShift: return sf::Keyboard::LShift; + case sf::Keyboard::ScanLAlt: return sf::Keyboard::LAlt; + case sf::Keyboard::ScanLSystem: return sf::Keyboard::LSystem; + case sf::Keyboard::ScanRControl: return sf::Keyboard::RControl; + case sf::Keyboard::ScanRShift: return sf::Keyboard::RShift; + case sf::Keyboard::ScanRAlt: return sf::Keyboard::RAlt; + case sf::Keyboard::ScanRSystem: return sf::Keyboard::RSystem; default: return sf::Keyboard::Unknown; } diff --git a/src/SFML/Window/OSX/InputImpl.hpp b/src/SFML/Window/OSX/InputImpl.hpp index dad01073..bcf73b3b 100644 --- a/src/SFML/Window/OSX/InputImpl.hpp +++ b/src/SFML/Window/OSX/InputImpl.hpp @@ -73,7 +73,7 @@ public: /// \copydoc sf::Keyboard::localizedRepresentation /// //////////////////////////////////////////////////////////// - static String localizedRepresentation(Keyboard::Scancode code); + static String getDescription(Keyboard::Scancode code); //////////////////////////////////////////////////////////// /// \copydoc sf::Keyboard::setVirtualKeyboardVisible diff --git a/src/SFML/Window/OSX/InputImpl.mm b/src/SFML/Window/OSX/InputImpl.mm index 84533803..a1377c50 100644 --- a/src/SFML/Window/OSX/InputImpl.mm +++ b/src/SFML/Window/OSX/InputImpl.mm @@ -149,7 +149,7 @@ Keyboard::Scancode InputImpl::unlocalize(Keyboard::Key key) //////////////////////////////////////////////////////////// -String InputImpl::localizedRepresentation(Keyboard::Scancode code) +String InputImpl::getDescription(Keyboard::Scancode code) { return HIDInputManager::getInstance().localizedRepresentation(code); } diff --git a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm index cf9a1940..1105ae08 100644 --- a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm +++ b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm @@ -161,7 +161,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftShiftKeyMask, NSRightShiftKeyMask, state.leftShiftWasDown, state.rightShiftWasDown, sf::Keyboard::LShift, sf::Keyboard::RShift, - sf::Keyboard::sLShift, sf::Keyboard::sRShift, + sf::Keyboard::ScanLShift, sf::Keyboard::ScanRShift, requester ); @@ -171,7 +171,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftCommandKeyMask, NSRightCommandKeyMask, state.leftCommandWasDown, state.rightCommandWasDown, sf::Keyboard::LSystem, sf::Keyboard::RSystem, - sf::Keyboard::sLSystem, sf::Keyboard::sRSystem, + sf::Keyboard::ScanLSystem, sf::Keyboard::ScanRSystem, requester ); @@ -181,7 +181,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftAlternateKeyMask, NSRightAlternateKeyMask, state.leftAlternateWasDown, state.rightAlternateWasDown, sf::Keyboard::LAlt, sf::Keyboard::RAlt, - sf::Keyboard::sLAlt, sf::Keyboard::sRAlt, + sf::Keyboard::ScanLAlt, sf::Keyboard::ScanRAlt, requester ); @@ -191,7 +191,7 @@ void handleModifiersChanged(NSUInteger modifiers, sf::priv::WindowImplCocoa& req NSLeftControlKeyMask, NSRightControlKeyMask, state.leftControlWasDown, state.rightControlWasDown, sf::Keyboard::LControl, sf::Keyboard::RControl, - sf::Keyboard::sLControl, sf::Keyboard::sRControl, + sf::Keyboard::ScanLControl, sf::Keyboard::ScanRControl, requester ); } diff --git a/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm b/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm index 86b4f109..9162e58f 100644 --- a/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm +++ b/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm @@ -86,7 +86,7 @@ { sf::Event::KeyEvent key = [SFOpenGLView convertNSKeyEventToSFMLEvent:theEvent]; - if ((key.code != sf::Keyboard::Unknown) || (key.scancode != sf::Keyboard::sUnknown)) + if ((key.code != sf::Keyboard::Unknown) || (key.scancode != sf::Keyboard::ScanUnknown)) m_requester->keyDown(key); } diff --git a/src/SFML/Window/Unix/InputImpl.hpp b/src/SFML/Window/Unix/InputImpl.hpp index e692d6ec..bea33375 100644 --- a/src/SFML/Window/Unix/InputImpl.hpp +++ b/src/SFML/Window/Unix/InputImpl.hpp @@ -72,7 +72,7 @@ public: /// \copydoc sf::Keyboard::localizedRepresentation /// //////////////////////////////////////////////////////////// - static String localizedRepresentation(Keyboard::Scancode code); + static String getDescription(Keyboard::Scancode code); //////////////////////////////////////////////////////////// /// \copydoc sf::Keyboard::setVirtualKeyboardVisible diff --git a/src/SFML/Window/Win32/InputImpl.hpp b/src/SFML/Window/Win32/InputImpl.hpp index 9df15889..b145f38f 100644 --- a/src/SFML/Window/Win32/InputImpl.hpp +++ b/src/SFML/Window/Win32/InputImpl.hpp @@ -72,7 +72,7 @@ public: /// \copydoc sf::Keyboard::localizedRepresentation /// //////////////////////////////////////////////////////////// - static String localizedRepresentation(Keyboard::Scancode code); + static String getDescription(Keyboard::Scancode code); //////////////////////////////////////////////////////////// /// \copydoc sf::Keyboard::setVirtualKeyboardVisible diff --git a/src/SFML/Window/iOS/InputImpl.hpp b/src/SFML/Window/iOS/InputImpl.hpp index b1712fa2..a06c7dff 100644 --- a/src/SFML/Window/iOS/InputImpl.hpp +++ b/src/SFML/Window/iOS/InputImpl.hpp @@ -72,7 +72,7 @@ public: /// \copydoc sf::Keyboard::localizedRepresentation /// //////////////////////////////////////////////////////////// - static String localizedRepresentation(Keyboard::Scancode code); + static String getDescription(Keyboard::Scancode code); //////////////////////////////////////////////////////////// /// \copydoc sf::Keyboard::setVirtualKeyboardVisible From 6c8544413f0c03310998c4b00f8894d6f7393d30 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Tue, 21 Jan 2020 21:19:40 +0100 Subject: [PATCH 05/36] Add minor changes according to the review --- include/SFML/Window/Keyboard.hpp | 23 +- src/SFML/Window/Keyboard.cpp | 1 + src/SFML/Window/OSX/HIDInputManager.mm | 1324 ++++++++++++------------ 3 files changed, 674 insertions(+), 674 deletions(-) diff --git a/include/SFML/Window/Keyboard.hpp b/include/SFML/Window/Keyboard.hpp index c0f902b3..9c3fec7f 100644 --- a/include/SFML/Window/Keyboard.hpp +++ b/include/SFML/Window/Keyboard.hpp @@ -29,11 +29,12 @@ // Headers //////////////////////////////////////////////////////////// #include -#include namespace sf { +class String; + //////////////////////////////////////////////////////////// /// \brief Give access to the real-time state of the keyboard /// @@ -169,14 +170,14 @@ public: //////////////////////////////////////////////////////////// /// \brief Scancodes /// - /// The enumerators are bound to a physical key and do *not* depend - /// on the keyboard layout used by the operating system. Usually, the AT-101 + /// The enumerators are bound to a physical key and do not depend on + /// 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. /// /// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page /// 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. /// //////////////////////////////////////////////////////////// @@ -219,10 +220,9 @@ public: ScanNum8, ///< Keyboard 8 and * key ScanNum9, ///< Keyboard 9 and ) key ScanNum0, ///< Keyboard 0 and ) key - ScanEnter, ///< Keyboard Return (ENTER) key + ScanEnter, ///< Keyboard Enter/Return key ScanEscape, ///< Keyboard Escape key ScanBackspace, ///< Keyboard Backspace key - // TODO above it's BackSpace, but is it correct? What do we use here? ScanTab, ///< Keyboard Tab key ScanSpace, ///< Keyboard Space key ScanHyphen, ///< Keyboard - and _ key @@ -230,15 +230,14 @@ public: ScanLBracket, ///< Keyboard [ and { key ScanRBracket, ///< Keyboard ] and } key ScanBackslash, ///< Keyboard \ and | key - // TODO capitalisation ScanDash, ///< Keyboard Non-US # and ~ + // TODO hyphen vs minus vs dash ScanSemicolon, ///< Keyboard ; and : key - // TODO capitalisation ScanQuote, ///< Keyboard ' and " key ScanGraveAccent, ///< Keyboard ` and ~ key ScanComma, ///< Keyboard , and < key ScanPeriod, ///< Keyboard . and > key - ScanForwardSlash, ///< Keyboard / and ? key + ScanSlash, ///< Keyboard / and ? key ScanF1, ///< Keyboard F1 key ScanF2, ///< Keyboard F2 key ScanF3, ///< Keyboard F3 key @@ -273,8 +272,8 @@ public: ScanMultiply, ///< Keypad * key ScanMinus, ///< Keypad - key ScanPlus, ///< Keypad + key - ScanPadEquals, ///< keypad = key, probably Mac only - ScanReturn, ///< Keypad Enter (return) key + ScanNumpadEquals, ///< keypad = key, probably Mac only + ScanNumpadEnter, ///< Keypad Enter/Return key ScanDecimal, ///< Keypad . and Delete key ScanNumpad1, ///< Keypad 1 and End key ScanNumpad2, ///< Keypad 2 and Down Arrow key @@ -381,7 +380,7 @@ public: /// "Left Command" on macOS. /// /// 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. /// /// \return The localized description of the code diff --git a/src/SFML/Window/Keyboard.cpp b/src/SFML/Window/Keyboard.cpp index 2742c2ba..0be3347d 100644 --- a/src/SFML/Window/Keyboard.cpp +++ b/src/SFML/Window/Keyboard.cpp @@ -27,6 +27,7 @@ //////////////////////////////////////////////////////////// #include #include +#include namespace sf diff --git a/src/SFML/Window/OSX/HIDInputManager.mm b/src/SFML/Window/OSX/HIDInputManager.mm index 430f117c..d5891a61 100644 --- a/src/SFML/Window/OSX/HIDInputManager.mm +++ b/src/SFML/Window/OSX/HIDInputManager.mm @@ -133,31 +133,31 @@ String HIDInputManager::localizedRepresentation(Keyboard::Scancode code) // Fallback to our best guess for the keys that are known to be independent of the layout. switch (code) { - case sf::Keyboard::ScanEnter: return "Enter"; - case sf::Keyboard::ScanEscape: return "Escape"; - case sf::Keyboard::ScanBackspace: return "Backspace"; - case sf::Keyboard::ScanTab: return "Tab"; - case sf::Keyboard::ScanSpace: return "Space"; + case sf::Keyboard::ScanEnter: return "Enter"; + case sf::Keyboard::ScanEscape: return "Escape"; + case sf::Keyboard::ScanBackspace: return "Backspace"; + case sf::Keyboard::ScanTab: return "Tab"; + case sf::Keyboard::ScanSpace: return "Space"; - case sf::Keyboard::ScanF1: return "F1"; - case sf::Keyboard::ScanF2: return "F2"; - case sf::Keyboard::ScanF3: return "F3"; - case sf::Keyboard::ScanF4: return "F4"; - case sf::Keyboard::ScanF5: return "F5"; - case sf::Keyboard::ScanF6: return "F6"; - case sf::Keyboard::ScanF7: return "F7"; - case sf::Keyboard::ScanF8: return "F8"; - case sf::Keyboard::ScanF9: return "F9"; - case sf::Keyboard::ScanF10: return "F10"; - case sf::Keyboard::ScanF11: return "F11"; - case sf::Keyboard::ScanF12: return "F12"; - case sf::Keyboard::ScanF13: return "F13"; - case sf::Keyboard::ScanF14: return "F14"; - case sf::Keyboard::ScanF15: return "F15"; + case sf::Keyboard::ScanF1: return "F1"; + case sf::Keyboard::ScanF2: return "F2"; + case sf::Keyboard::ScanF3: return "F3"; + case sf::Keyboard::ScanF4: return "F4"; + case sf::Keyboard::ScanF5: return "F5"; + case sf::Keyboard::ScanF6: return "F6"; + case sf::Keyboard::ScanF7: return "F7"; + case sf::Keyboard::ScanF8: return "F8"; + case sf::Keyboard::ScanF9: return "F9"; + case sf::Keyboard::ScanF10: return "F10"; + case sf::Keyboard::ScanF11: return "F11"; + case sf::Keyboard::ScanF12: return "F12"; + case sf::Keyboard::ScanF13: return "F13"; + case sf::Keyboard::ScanF14: return "F14"; + case sf::Keyboard::ScanF15: return "F15"; - case sf::Keyboard::ScanCapsLock: return "CapsLock"; - case sf::Keyboard::ScanPrintScreen: return "PrintScreen"; - case sf::Keyboard::ScanScrollLock: return "ScrollLock"; + case sf::Keyboard::ScanCapsLock: return "CapsLock"; + case sf::Keyboard::ScanPrintScreen: return "PrintScreen"; + case sf::Keyboard::ScanScrollLock: return "ScrollLock"; case sf::Keyboard::ScanPause: return "Pause"; case sf::Keyboard::ScanInsert: return "Insert"; @@ -167,55 +167,55 @@ String HIDInputManager::localizedRepresentation(Keyboard::Scancode code) case sf::Keyboard::ScanEnd: return "End"; case sf::Keyboard::ScanPageDown: return "PageDown"; - case sf::Keyboard::ScanLeft: return "Left Arrow"; - case sf::Keyboard::ScanRight: return "Right Arrow"; - case sf::Keyboard::ScanDown: return "Down Arrow"; - case sf::Keyboard::ScanUp: return "Up Arrow"; + case sf::Keyboard::ScanLeft: return "Left Arrow"; + case sf::Keyboard::ScanRight: return "Right Arrow"; + case sf::Keyboard::ScanDown: return "Down Arrow"; + case sf::Keyboard::ScanUp: return "Up Arrow"; - case sf::Keyboard::ScanNumLock: return "NumLock"; - case sf::Keyboard::ScanDivide: return "Divide (Numpad)"; - case sf::Keyboard::ScanMultiply: return "Multiply (Numpad)"; - case sf::Keyboard::ScanMinus: return "Minux (Numpad)"; - case sf::Keyboard::ScanPlus: return "Plus (Numpad)"; - case sf::Keyboard::ScanPadEquals: return "Equals (Numpad)"; - case sf::Keyboard::ScanReturn: return "Return (Numpad)"; - case sf::Keyboard::ScanDecimal: return "Decimal (Numpad)"; + case sf::Keyboard::ScanNumLock: return "NumLock"; + case sf::Keyboard::ScanDivide: return "Divide (Numpad)"; + case sf::Keyboard::ScanMultiply: return "Multiply (Numpad)"; + case sf::Keyboard::ScanMinus: return "Minux (Numpad)"; + case sf::Keyboard::ScanPlus: return "Plus (Numpad)"; + case sf::Keyboard::ScanNumpadEquals: return "Equals (Numpad)"; + case sf::Keyboard::ScanNumpadEnter: return "Enter (Numpad)"; + case sf::Keyboard::ScanDecimal: return "Decimal (Numpad)"; - case sf::Keyboard::ScanNumpad0: return "0 (Numpad)"; - case sf::Keyboard::ScanNumpad1: return "1 (Numpad)"; - case sf::Keyboard::ScanNumpad2: return "2 (Numpad)"; - case sf::Keyboard::ScanNumpad3: return "3 (Numpad)"; - case sf::Keyboard::ScanNumpad4: return "4 (Numpad)"; - case sf::Keyboard::ScanNumpad5: return "5 (Numpad)"; - case sf::Keyboard::ScanNumpad6: return "6 (Numpad)"; - case sf::Keyboard::ScanNumpad7: return "7 (Numpad)"; - case sf::Keyboard::ScanNumpad8: return "8 (Numpad)"; - case sf::Keyboard::ScanNumpad9: return "9 (Numpad)"; + case sf::Keyboard::ScanNumpad0: return "0 (Numpad)"; + case sf::Keyboard::ScanNumpad1: return "1 (Numpad)"; + case sf::Keyboard::ScanNumpad2: return "2 (Numpad)"; + case sf::Keyboard::ScanNumpad3: return "3 (Numpad)"; + case sf::Keyboard::ScanNumpad4: return "4 (Numpad)"; + case sf::Keyboard::ScanNumpad5: return "5 (Numpad)"; + case sf::Keyboard::ScanNumpad6: return "6 (Numpad)"; + case sf::Keyboard::ScanNumpad7: return "7 (Numpad)"; + case sf::Keyboard::ScanNumpad8: return "8 (Numpad)"; + case sf::Keyboard::ScanNumpad9: return "9 (Numpad)"; - case sf::Keyboard::ScanApplication: return "Application"; - case sf::Keyboard::ScanExecute: return "Execute"; - case sf::Keyboard::ScanHelp: return "Help"; - case sf::Keyboard::ScanMenu: return "Menu"; - case sf::Keyboard::ScanSelect: return "Select"; - case sf::Keyboard::ScanStop: return "Stop"; - case sf::Keyboard::ScanAgain: return "Again"; - case sf::Keyboard::ScanUndo: return "Undo"; - case sf::Keyboard::ScanCut: return "Cut"; - case sf::Keyboard::ScanCopy: return "Copy"; - case sf::Keyboard::ScanPaste: return "Paste"; - case sf::Keyboard::ScanFind: return "Find"; - case sf::Keyboard::ScanMute: return "Mute"; - case sf::Keyboard::ScanVolumeUp: return "Volume Up"; - case sf::Keyboard::ScanVolumeDown: return "Volume Down"; + case sf::Keyboard::ScanApplication: return "Application"; + case sf::Keyboard::ScanExecute: return "Execute"; + case sf::Keyboard::ScanHelp: return "Help"; + case sf::Keyboard::ScanMenu: return "Menu"; + case sf::Keyboard::ScanSelect: return "Select"; + case sf::Keyboard::ScanStop: return "Stop"; + case sf::Keyboard::ScanAgain: return "Again"; + case sf::Keyboard::ScanUndo: return "Undo"; + case sf::Keyboard::ScanCut: return "Cut"; + case sf::Keyboard::ScanCopy: return "Copy"; + case sf::Keyboard::ScanPaste: return "Paste"; + case sf::Keyboard::ScanFind: return "Find"; + case sf::Keyboard::ScanMute: return "Mute"; + case sf::Keyboard::ScanVolumeUp: return "Volume Up"; + case sf::Keyboard::ScanVolumeDown: return "Volume Down"; - case sf::Keyboard::ScanLControl: return "Control (Left)"; - case sf::Keyboard::ScanLShift: return "Shift (Left)"; - case sf::Keyboard::ScanLAlt: return "Alt (Left)"; - case sf::Keyboard::ScanLSystem: return "Command (Left)"; - case sf::Keyboard::ScanRControl: return "Control (Right)"; - case sf::Keyboard::ScanRShift: return "Shift (Right)"; - case sf::Keyboard::ScanRAlt: return "Alt (Right)"; - case sf::Keyboard::ScanRSystem: return "Command (Right)"; + case sf::Keyboard::ScanLControl: return "Control (Left)"; + case sf::Keyboard::ScanLShift: return "Shift (Left)"; + case sf::Keyboard::ScanLAlt: return "Alt (Left)"; + case sf::Keyboard::ScanLSystem: return "Command (Left)"; + case sf::Keyboard::ScanRControl: return "Control (Right)"; + case sf::Keyboard::ScanRShift: return "Shift (Right)"; + case sf::Keyboard::ScanRAlt: return "Alt (Right)"; + case sf::Keyboard::ScanRSystem: return "Command (Right)"; default: return "Unknown Scancode"; // no guess good enough possible. } @@ -465,47 +465,47 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage) { switch (usage) { - case kHIDUsage_KeyboardErrorRollOver: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardPOSTFail: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardErrorUndefined: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardErrorRollOver: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardPOSTFail: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardErrorUndefined: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardA: return sf::Keyboard::ScanA; - case kHIDUsage_KeyboardB: return sf::Keyboard::ScanB; - case kHIDUsage_KeyboardC: return sf::Keyboard::ScanC; - case kHIDUsage_KeyboardD: return sf::Keyboard::ScanD; - case kHIDUsage_KeyboardE: return sf::Keyboard::ScanE; - case kHIDUsage_KeyboardF: return sf::Keyboard::ScanF; - case kHIDUsage_KeyboardG: return sf::Keyboard::ScanG; - case kHIDUsage_KeyboardH: return sf::Keyboard::ScanH; - case kHIDUsage_KeyboardI: return sf::Keyboard::ScanI; - case kHIDUsage_KeyboardJ: return sf::Keyboard::ScanJ; - case kHIDUsage_KeyboardK: return sf::Keyboard::ScanK; - case kHIDUsage_KeyboardL: return sf::Keyboard::ScanL; - case kHIDUsage_KeyboardM: return sf::Keyboard::ScanM; - case kHIDUsage_KeyboardN: return sf::Keyboard::ScanN; - case kHIDUsage_KeyboardO: return sf::Keyboard::ScanO; - case kHIDUsage_KeyboardP: return sf::Keyboard::ScanP; - case kHIDUsage_KeyboardQ: return sf::Keyboard::ScanQ; - case kHIDUsage_KeyboardR: return sf::Keyboard::ScanR; - case kHIDUsage_KeyboardS: return sf::Keyboard::ScanS; - case kHIDUsage_KeyboardT: return sf::Keyboard::ScanT; - case kHIDUsage_KeyboardU: return sf::Keyboard::ScanU; - case kHIDUsage_KeyboardV: return sf::Keyboard::ScanV; - case kHIDUsage_KeyboardW: return sf::Keyboard::ScanW; - case kHIDUsage_KeyboardX: return sf::Keyboard::ScanX; - case kHIDUsage_KeyboardY: return sf::Keyboard::ScanY; - case kHIDUsage_KeyboardZ: return sf::Keyboard::ScanZ; + case kHIDUsage_KeyboardA: return sf::Keyboard::ScanA; + case kHIDUsage_KeyboardB: return sf::Keyboard::ScanB; + case kHIDUsage_KeyboardC: return sf::Keyboard::ScanC; + case kHIDUsage_KeyboardD: return sf::Keyboard::ScanD; + case kHIDUsage_KeyboardE: return sf::Keyboard::ScanE; + case kHIDUsage_KeyboardF: return sf::Keyboard::ScanF; + case kHIDUsage_KeyboardG: return sf::Keyboard::ScanG; + case kHIDUsage_KeyboardH: return sf::Keyboard::ScanH; + case kHIDUsage_KeyboardI: return sf::Keyboard::ScanI; + case kHIDUsage_KeyboardJ: return sf::Keyboard::ScanJ; + case kHIDUsage_KeyboardK: return sf::Keyboard::ScanK; + case kHIDUsage_KeyboardL: return sf::Keyboard::ScanL; + case kHIDUsage_KeyboardM: return sf::Keyboard::ScanM; + case kHIDUsage_KeyboardN: return sf::Keyboard::ScanN; + case kHIDUsage_KeyboardO: return sf::Keyboard::ScanO; + case kHIDUsage_KeyboardP: return sf::Keyboard::ScanP; + case kHIDUsage_KeyboardQ: return sf::Keyboard::ScanQ; + case kHIDUsage_KeyboardR: return sf::Keyboard::ScanR; + case kHIDUsage_KeyboardS: return sf::Keyboard::ScanS; + case kHIDUsage_KeyboardT: return sf::Keyboard::ScanT; + case kHIDUsage_KeyboardU: return sf::Keyboard::ScanU; + case kHIDUsage_KeyboardV: return sf::Keyboard::ScanV; + case kHIDUsage_KeyboardW: return sf::Keyboard::ScanW; + case kHIDUsage_KeyboardX: return sf::Keyboard::ScanX; + case kHIDUsage_KeyboardY: return sf::Keyboard::ScanY; + case kHIDUsage_KeyboardZ: return sf::Keyboard::ScanZ; - case kHIDUsage_Keyboard1: return sf::Keyboard::ScanNum1; - case kHIDUsage_Keyboard2: return sf::Keyboard::ScanNum2; - case kHIDUsage_Keyboard3: return sf::Keyboard::ScanNum3; - case kHIDUsage_Keyboard4: return sf::Keyboard::ScanNum4; - case kHIDUsage_Keyboard5: return sf::Keyboard::ScanNum5; - case kHIDUsage_Keyboard6: return sf::Keyboard::ScanNum6; - case kHIDUsage_Keyboard7: return sf::Keyboard::ScanNum7; - case kHIDUsage_Keyboard8: return sf::Keyboard::ScanNum8; - case kHIDUsage_Keyboard9: return sf::Keyboard::ScanNum9; - case kHIDUsage_Keyboard0: return sf::Keyboard::ScanNum0; + case kHIDUsage_Keyboard1: return sf::Keyboard::ScanNum1; + case kHIDUsage_Keyboard2: return sf::Keyboard::ScanNum2; + case kHIDUsage_Keyboard3: return sf::Keyboard::ScanNum3; + case kHIDUsage_Keyboard4: return sf::Keyboard::ScanNum4; + case kHIDUsage_Keyboard5: return sf::Keyboard::ScanNum5; + case kHIDUsage_Keyboard6: return sf::Keyboard::ScanNum6; + case kHIDUsage_Keyboard7: return sf::Keyboard::ScanNum7; + case kHIDUsage_Keyboard8: return sf::Keyboard::ScanNum8; + case kHIDUsage_Keyboard9: return sf::Keyboard::ScanNum9; + case kHIDUsage_Keyboard0: return sf::Keyboard::ScanNum0; case kHIDUsage_KeyboardReturnOrEnter: return sf::Keyboard::ScanEnter; case kHIDUsage_KeyboardEscape: return sf::Keyboard::ScanEscape; @@ -523,128 +523,128 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage) case kHIDUsage_KeyboardGraveAccentAndTilde: return sf::Keyboard::ScanGraveAccent; case kHIDUsage_KeyboardComma: return sf::Keyboard::ScanComma; 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_KeyboardF1: return sf::Keyboard::ScanF1; - case kHIDUsage_KeyboardF2: return sf::Keyboard::ScanF2; - case kHIDUsage_KeyboardF3: return sf::Keyboard::ScanF3; - case kHIDUsage_KeyboardF4: return sf::Keyboard::ScanF4; - case kHIDUsage_KeyboardF5: return sf::Keyboard::ScanF5; - case kHIDUsage_KeyboardF6: return sf::Keyboard::ScanF6; - case kHIDUsage_KeyboardF7: return sf::Keyboard::ScanF7; - case kHIDUsage_KeyboardF8: return sf::Keyboard::ScanF8; - case kHIDUsage_KeyboardF9: return sf::Keyboard::ScanF9; - case kHIDUsage_KeyboardF10: return sf::Keyboard::ScanF10; - case kHIDUsage_KeyboardF11: return sf::Keyboard::ScanF11; - case kHIDUsage_KeyboardF12: return sf::Keyboard::ScanF12; + case kHIDUsage_KeyboardF1: return sf::Keyboard::ScanF1; + case kHIDUsage_KeyboardF2: return sf::Keyboard::ScanF2; + case kHIDUsage_KeyboardF3: return sf::Keyboard::ScanF3; + case kHIDUsage_KeyboardF4: return sf::Keyboard::ScanF4; + case kHIDUsage_KeyboardF5: return sf::Keyboard::ScanF5; + case kHIDUsage_KeyboardF6: return sf::Keyboard::ScanF6; + case kHIDUsage_KeyboardF7: return sf::Keyboard::ScanF7; + case kHIDUsage_KeyboardF8: return sf::Keyboard::ScanF8; + case kHIDUsage_KeyboardF9: return sf::Keyboard::ScanF9; + case kHIDUsage_KeyboardF10: return sf::Keyboard::ScanF10; + case kHIDUsage_KeyboardF11: return sf::Keyboard::ScanF11; + case kHIDUsage_KeyboardF12: return sf::Keyboard::ScanF12; - case kHIDUsage_KeyboardPrintScreen: return sf::Keyboard::ScanPrintScreen; - case kHIDUsage_KeyboardScrollLock: return sf::Keyboard::ScanScrollLock; - case kHIDUsage_KeyboardPause: return sf::Keyboard::ScanPause; - case kHIDUsage_KeyboardInsert: return sf::Keyboard::ScanInsert; - case kHIDUsage_KeyboardHome: return sf::Keyboard::ScanHome; - case kHIDUsage_KeyboardPageUp: return sf::Keyboard::ScanPageUp; - case kHIDUsage_KeyboardDeleteForward: return sf::Keyboard::ScanDelete; - case kHIDUsage_KeyboardEnd: return sf::Keyboard::ScanEnd; - case kHIDUsage_KeyboardPageDown: return sf::Keyboard::ScanPageDown; + case kHIDUsage_KeyboardPrintScreen: return sf::Keyboard::ScanPrintScreen; + case kHIDUsage_KeyboardScrollLock: return sf::Keyboard::ScanScrollLock; + case kHIDUsage_KeyboardPause: return sf::Keyboard::ScanPause; + case kHIDUsage_KeyboardInsert: return sf::Keyboard::ScanInsert; + case kHIDUsage_KeyboardHome: return sf::Keyboard::ScanHome; + case kHIDUsage_KeyboardPageUp: return sf::Keyboard::ScanPageUp; + case kHIDUsage_KeyboardDeleteForward: return sf::Keyboard::ScanDelete; + case kHIDUsage_KeyboardEnd: return sf::Keyboard::ScanEnd; + case kHIDUsage_KeyboardPageDown: return sf::Keyboard::ScanPageDown; - case kHIDUsage_KeyboardRightArrow: return sf::Keyboard::ScanRight; - case kHIDUsage_KeyboardLeftArrow: return sf::Keyboard::ScanLeft; - case kHIDUsage_KeyboardDownArrow: return sf::Keyboard::ScanDown; - case kHIDUsage_KeyboardUpArrow: return sf::Keyboard::ScanUp; + case kHIDUsage_KeyboardRightArrow: return sf::Keyboard::ScanRight; + case kHIDUsage_KeyboardLeftArrow: return sf::Keyboard::ScanLeft; + case kHIDUsage_KeyboardDownArrow: return sf::Keyboard::ScanDown; + case kHIDUsage_KeyboardUpArrow: return sf::Keyboard::ScanUp; - case kHIDUsage_KeypadNumLock: return sf::Keyboard::ScanNumLock; - case kHIDUsage_KeypadSlash: return sf::Keyboard::ScanDivide; - case kHIDUsage_KeypadAsterisk: return sf::Keyboard::ScanMultiply; - case kHIDUsage_KeypadHyphen: return sf::Keyboard::ScanMinus; - case kHIDUsage_KeypadPlus: return sf::Keyboard::ScanPlus; - case kHIDUsage_KeypadEnter: return sf::Keyboard::ScanReturn; + case kHIDUsage_KeypadNumLock: return sf::Keyboard::ScanNumLock; + case kHIDUsage_KeypadSlash: return sf::Keyboard::ScanDivide; + case kHIDUsage_KeypadAsterisk: return sf::Keyboard::ScanMultiply; + case kHIDUsage_KeypadHyphen: return sf::Keyboard::ScanMinus; + case kHIDUsage_KeypadPlus: return sf::Keyboard::ScanPlus; + case kHIDUsage_KeypadEnter: return sf::Keyboard::ScanEnter; - case kHIDUsage_Keypad1: return sf::Keyboard::ScanNumpad1; - case kHIDUsage_Keypad2: return sf::Keyboard::ScanNumpad2; - case kHIDUsage_Keypad3: return sf::Keyboard::ScanNumpad3; - case kHIDUsage_Keypad4: return sf::Keyboard::ScanNumpad4; - case kHIDUsage_Keypad5: return sf::Keyboard::ScanNumpad5; - case kHIDUsage_Keypad6: return sf::Keyboard::ScanNumpad6; - case kHIDUsage_Keypad7: return sf::Keyboard::ScanNumpad7; - case kHIDUsage_Keypad8: return sf::Keyboard::ScanNumpad8; - case kHIDUsage_Keypad9: return sf::Keyboard::ScanNumpad9; - case kHIDUsage_Keypad0: return sf::Keyboard::ScanNumpad0; + case kHIDUsage_Keypad1: return sf::Keyboard::ScanNumpad1; + case kHIDUsage_Keypad2: return sf::Keyboard::ScanNumpad2; + case kHIDUsage_Keypad3: return sf::Keyboard::ScanNumpad3; + case kHIDUsage_Keypad4: return sf::Keyboard::ScanNumpad4; + case kHIDUsage_Keypad5: return sf::Keyboard::ScanNumpad5; + case kHIDUsage_Keypad6: return sf::Keyboard::ScanNumpad6; + case kHIDUsage_Keypad7: return sf::Keyboard::ScanNumpad7; + case kHIDUsage_Keypad8: return sf::Keyboard::ScanNumpad8; + case kHIDUsage_Keypad9: return sf::Keyboard::ScanNumpad9; + case kHIDUsage_Keypad0: return sf::Keyboard::ScanNumpad0; - case kHIDUsage_KeypadPeriod: return sf::Keyboard::ScanDecimal; - case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::ScanReverseSolidus; - case kHIDUsage_KeyboardApplication: return sf::Keyboard::ScanApplication; - case kHIDUsage_KeyboardPower: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeypadEqualSign: return sf::Keyboard::ScanPadEquals; + case kHIDUsage_KeypadPeriod: return sf::Keyboard::ScanDecimal; + case kHIDUsage_KeyboardNonUSBackslash: return sf::Keyboard::ScanReverseSolidus; + case kHIDUsage_KeyboardApplication: return sf::Keyboard::ScanApplication; + case kHIDUsage_KeyboardPower: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeypadEqualSign: return sf::Keyboard::ScanNumpadEquals; - case kHIDUsage_KeyboardF13: return sf::Keyboard::ScanF13; - case kHIDUsage_KeyboardF14: return sf::Keyboard::ScanF14; - case kHIDUsage_KeyboardF15: return sf::Keyboard::ScanF15; - case kHIDUsage_KeyboardF16: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF17: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF18: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF19: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF20: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF21: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF22: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF23: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardF24: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF13: return sf::Keyboard::ScanF13; + case kHIDUsage_KeyboardF14: return sf::Keyboard::ScanF14; + case kHIDUsage_KeyboardF15: return sf::Keyboard::ScanF15; + case kHIDUsage_KeyboardF16: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF17: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF18: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF19: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF20: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF21: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF22: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF23: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardF24: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardExecute: return sf::Keyboard::ScanExecute; - case kHIDUsage_KeyboardHelp: return sf::Keyboard::ScanHelp; - case kHIDUsage_KeyboardMenu: return sf::Keyboard::ScanMenu; - case kHIDUsage_KeyboardSelect: return sf::Keyboard::ScanSelect; - case kHIDUsage_KeyboardStop: return sf::Keyboard::ScanStop; - case kHIDUsage_KeyboardAgain: return sf::Keyboard::ScanAgain; - case kHIDUsage_KeyboardUndo: return sf::Keyboard::ScanUndo; - case kHIDUsage_KeyboardCut: return sf::Keyboard::ScanCut; - case kHIDUsage_KeyboardCopy: return sf::Keyboard::ScanCopy; - case kHIDUsage_KeyboardPaste: return sf::Keyboard::ScanPaste; - case kHIDUsage_KeyboardFind: return sf::Keyboard::ScanFind; + case kHIDUsage_KeyboardExecute: return sf::Keyboard::ScanExecute; + case kHIDUsage_KeyboardHelp: return sf::Keyboard::ScanHelp; + case kHIDUsage_KeyboardMenu: return sf::Keyboard::ScanMenu; + case kHIDUsage_KeyboardSelect: return sf::Keyboard::ScanSelect; + case kHIDUsage_KeyboardStop: return sf::Keyboard::ScanStop; + case kHIDUsage_KeyboardAgain: return sf::Keyboard::ScanAgain; + case kHIDUsage_KeyboardUndo: return sf::Keyboard::ScanUndo; + case kHIDUsage_KeyboardCut: return sf::Keyboard::ScanCut; + case kHIDUsage_KeyboardCopy: return sf::Keyboard::ScanCopy; + case kHIDUsage_KeyboardPaste: return sf::Keyboard::ScanPaste; + case kHIDUsage_KeyboardFind: return sf::Keyboard::ScanFind; case kHIDUsage_KeyboardMute: return sf::Keyboard::ScanMute; case kHIDUsage_KeyboardVolumeUp: return sf::Keyboard::ScanVolumeUp; case kHIDUsage_KeyboardVolumeDown: return sf::Keyboard::ScanVolumeDown; - case kHIDUsage_KeyboardLockingCapsLock: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLockingNumLock: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLockingScrollLock: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLockingCapsLock: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLockingNumLock: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLockingScrollLock: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeypadComma: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeypadEqualSignAS400: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational1: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational2: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational3: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational4: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational5: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational6: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational7: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational8: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardInternational9: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeypadComma: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeypadEqualSignAS400: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational1: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational2: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational3: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational4: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational5: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational6: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational7: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational8: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardInternational9: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG1: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG2: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG3: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG4: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG5: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG6: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG7: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG8: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardLANG9: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG1: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG2: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG3: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG4: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG5: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG6: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG7: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG8: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardLANG9: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardAlternateErase: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardSysReqOrAttention: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardCancel: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardClear: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardPrior: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardReturn: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardSeparator: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardOut: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardOper: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardClearOrAgain: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardCrSelOrProps: return sf::Keyboard::ScanUnknown; - case kHIDUsage_KeyboardExSel: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardAlternateErase: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardSysReqOrAttention: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardCancel: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardClear: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardPrior: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardReturn: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardSeparator: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardOut: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardOper: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardClearOrAgain: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardCrSelOrProps: return sf::Keyboard::ScanUnknown; + case kHIDUsage_KeyboardExSel: return sf::Keyboard::ScanUnknown; /* 0xa5-0xdf Reserved */ @@ -659,8 +659,8 @@ sf::Keyboard::Scancode HIDInputManager::usageToScancode(UInt32 usage) /* 0xe8-0xffff Reserved */ - case kHIDUsage_Keyboard_Reserved: return sf::Keyboard::ScanUnknown; - default: return sf::Keyboard::ScanUnknown; + case kHIDUsage_Keyboard_Reserved: return sf::Keyboard::ScanUnknown; + default: return sf::Keyboard::ScanUnknown; } } @@ -672,147 +672,147 @@ Keyboard::Key HIDInputManager::localizedKey(UniChar ch) // Otherwise one can refer to the usual Unicode table. switch (ch) { - case 0x41: return sf::Keyboard::A; // uppercase A - case 0x42: return sf::Keyboard::B; - case 0x43: return sf::Keyboard::C; - case 0x44: return sf::Keyboard::D; - case 0x45: return sf::Keyboard::E; - case 0x46: return sf::Keyboard::F; - case 0x47: return sf::Keyboard::G; - case 0x48: return sf::Keyboard::H; - case 0x49: return sf::Keyboard::I; - case 0x4a: return sf::Keyboard::J; - case 0x4b: return sf::Keyboard::K; - case 0x4c: return sf::Keyboard::L; - case 0x4d: return sf::Keyboard::M; - case 0x4e: return sf::Keyboard::N; - case 0x4f: return sf::Keyboard::O; - case 0x50: return sf::Keyboard::P; - case 0x51: return sf::Keyboard::Q; - case 0x52: return sf::Keyboard::R; - case 0x53: return sf::Keyboard::S; - case 0x54: return sf::Keyboard::T; - case 0x55: return sf::Keyboard::U; - case 0x56: return sf::Keyboard::V; - case 0x57: return sf::Keyboard::W; - case 0x58: return sf::Keyboard::X; - case 0x59: return sf::Keyboard::Y; + case 0x41: return sf::Keyboard::A; // uppercase A + case 0x42: return sf::Keyboard::B; + case 0x43: return sf::Keyboard::C; + case 0x44: return sf::Keyboard::D; + case 0x45: return sf::Keyboard::E; + case 0x46: return sf::Keyboard::F; + case 0x47: return sf::Keyboard::G; + case 0x48: return sf::Keyboard::H; + case 0x49: return sf::Keyboard::I; + case 0x4a: return sf::Keyboard::J; + case 0x4b: return sf::Keyboard::K; + case 0x4c: return sf::Keyboard::L; + case 0x4d: return sf::Keyboard::M; + case 0x4e: return sf::Keyboard::N; + case 0x4f: return sf::Keyboard::O; + case 0x50: return sf::Keyboard::P; + case 0x51: return sf::Keyboard::Q; + case 0x52: return sf::Keyboard::R; + case 0x53: return sf::Keyboard::S; + case 0x54: return sf::Keyboard::T; + case 0x55: return sf::Keyboard::U; + case 0x56: return sf::Keyboard::V; + case 0x57: return sf::Keyboard::W; + case 0x58: return sf::Keyboard::X; + case 0x59: return sf::Keyboard::Y; - case 0x5a: return sf::Keyboard::Z; // lowercase A - case 0x61: return sf::Keyboard::A; - case 0x62: return sf::Keyboard::B; - case 0x63: return sf::Keyboard::C; - case 0x64: return sf::Keyboard::D; - case 0x65: return sf::Keyboard::E; - case 0x66: return sf::Keyboard::F; - case 0x67: return sf::Keyboard::G; - case 0x68: return sf::Keyboard::H; - case 0x69: return sf::Keyboard::I; - case 0x6a: return sf::Keyboard::J; - case 0x6b: return sf::Keyboard::K; - case 0x6c: return sf::Keyboard::L; - case 0x6d: return sf::Keyboard::M; - case 0x6e: return sf::Keyboard::N; - case 0x6f: return sf::Keyboard::O; - case 0x70: return sf::Keyboard::P; - case 0x71: return sf::Keyboard::Q; - case 0x72: return sf::Keyboard::R; - case 0x73: return sf::Keyboard::S; - case 0x74: return sf::Keyboard::T; - case 0x75: return sf::Keyboard::U; - case 0x76: return sf::Keyboard::V; - case 0x77: return sf::Keyboard::W; - case 0x78: return sf::Keyboard::X; - case 0x79: return sf::Keyboard::Y; - case 0x7a: return sf::Keyboard::Z; + case 0x5a: return sf::Keyboard::Z; // lowercase A + case 0x61: return sf::Keyboard::A; + case 0x62: return sf::Keyboard::B; + case 0x63: return sf::Keyboard::C; + case 0x64: return sf::Keyboard::D; + case 0x65: return sf::Keyboard::E; + case 0x66: return sf::Keyboard::F; + case 0x67: return sf::Keyboard::G; + case 0x68: return sf::Keyboard::H; + case 0x69: return sf::Keyboard::I; + case 0x6a: return sf::Keyboard::J; + case 0x6b: return sf::Keyboard::K; + case 0x6c: return sf::Keyboard::L; + case 0x6d: return sf::Keyboard::M; + case 0x6e: return sf::Keyboard::N; + case 0x6f: return sf::Keyboard::O; + case 0x70: return sf::Keyboard::P; + case 0x71: return sf::Keyboard::Q; + case 0x72: return sf::Keyboard::R; + case 0x73: return sf::Keyboard::S; + case 0x74: return sf::Keyboard::T; + case 0x75: return sf::Keyboard::U; + case 0x76: return sf::Keyboard::V; + case 0x77: return sf::Keyboard::W; + case 0x78: return sf::Keyboard::X; + case 0x79: return sf::Keyboard::Y; + case 0x7a: return sf::Keyboard::Z; - case 0x30: return sf::Keyboard::Num0; - case 0x31: return sf::Keyboard::Num1; - case 0x32: return sf::Keyboard::Num2; - case 0x33: return sf::Keyboard::Num3; - case 0x34: return sf::Keyboard::Num4; - case 0x35: return sf::Keyboard::Num5; - case 0x36: return sf::Keyboard::Num6; - case 0x37: return sf::Keyboard::Num7; - case 0x38: return sf::Keyboard::Num8; - case 0x39: return sf::Keyboard::Num9; + case 0x30: return sf::Keyboard::Num0; + case 0x31: return sf::Keyboard::Num1; + case 0x32: return sf::Keyboard::Num2; + case 0x33: return sf::Keyboard::Num3; + case 0x34: return sf::Keyboard::Num4; + case 0x35: return sf::Keyboard::Num5; + case 0x36: return sf::Keyboard::Num6; + case 0x37: return sf::Keyboard::Num7; + case 0x38: return sf::Keyboard::Num8; + case 0x39: return sf::Keyboard::Num9; - case 0x1b: return sf::Keyboard::Escape; + case 0x1b: return sf::Keyboard::Escape; /* Those are not represented using Unicode. - * case 0x: return sf::Keyboard::LControl; - * case 0x: return sf::Keyboard::LShift; - * case 0x: return sf::Keyboard::LAlt; - * case 0x: return sf::Keyboard::LSystem; - * case 0x: return sf::Keyboard::RControl; - * case 0x: return sf::Keyboard::RShift; - * case 0x: return sf::Keyboard::RAlt; - * case 0x: return sf::Keyboard::RSystem; + * case 0x: return sf::Keyboard::LControl; + * case 0x: return sf::Keyboard::LShift; + * case 0x: return sf::Keyboard::LAlt; + * case 0x: return sf::Keyboard::LSystem; + * case 0x: return sf::Keyboard::RControl; + * case 0x: return sf::Keyboard::RShift; + * case 0x: return sf::Keyboard::RAlt; + * case 0x: return sf::Keyboard::RSystem; */ - case NSMenuFunctionKey: return sf::Keyboard::Menu; + case NSMenuFunctionKey: return sf::Keyboard::Menu; - case 0x5b: return sf::Keyboard::LBracket; - case 0x5d: return sf::Keyboard::RBracket; - case 0x3b: return sf::Keyboard::SemiColon; - case 0x2c: return sf::Keyboard::Comma; - case 0x2e: return sf::Keyboard::Period; - case 0x27: return sf::Keyboard::Quote; - case 0x2044: return sf::Keyboard::Slash; // 0x2f is Divide - case 0x5c: return sf::Keyboard::BackSlash; - case 0x7e: return sf::Keyboard::Tilde; - case 0x3d: return sf::Keyboard::Equal; - case 0x2013: return sf::Keyboard::Dash; // 0x2d is Subtract - case 0x20: return sf::Keyboard::Space; - case 0x0d: return sf::Keyboard::Return; - case 0x7f: return sf::Keyboard::BackSpace; // NOTE backspace & delete are swapped on Mac. - case 0x09: return sf::Keyboard::Tab; + case 0x5b: return sf::Keyboard::LBracket; + case 0x5d: return sf::Keyboard::RBracket; + case 0x3b: return sf::Keyboard::SemiColon; + case 0x2c: return sf::Keyboard::Comma; + case 0x2e: return sf::Keyboard::Period; + case 0x27: return sf::Keyboard::Quote; + case 0x2044: return sf::Keyboard::Slash; // 0x2f is Divide + case 0x5c: return sf::Keyboard::BackSlash; + case 0x7e: return sf::Keyboard::Tilde; + case 0x3d: return sf::Keyboard::Equal; + case 0x2013: return sf::Keyboard::Dash; // 0x2d is Subtract + case 0x20: return sf::Keyboard::Space; + case 0x0d: return sf::Keyboard::Return; + case 0x7f: return sf::Keyboard::BackSpace; // NOTE backspace & delete are swapped on Mac. + case 0x09: return sf::Keyboard::Tab; - case NSPageUpFunctionKey: return sf::Keyboard::PageUp; - case NSPageDownFunctionKey: return sf::Keyboard::PageDown; - case NSEndFunctionKey: return sf::Keyboard::End; - case NSHomeFunctionKey: return sf::Keyboard::Home; - case NSInsertFunctionKey: return sf::Keyboard::Insert; - case NSDeleteFunctionKey: return sf::Keyboard::Delete; + case NSPageUpFunctionKey: return sf::Keyboard::PageUp; + case NSPageDownFunctionKey: return sf::Keyboard::PageDown; + case NSEndFunctionKey: return sf::Keyboard::End; + case NSHomeFunctionKey: return sf::Keyboard::Home; + case NSInsertFunctionKey: return sf::Keyboard::Insert; + case NSDeleteFunctionKey: return sf::Keyboard::Delete; - case 0x2b: return sf::Keyboard::Add; - case 0x2d: return sf::Keyboard::Subtract; - case 0x2a: return sf::Keyboard::Multiply; - case 0x2f: return sf::Keyboard::Divide; + case 0x2b: return sf::Keyboard::Add; + case 0x2d: return sf::Keyboard::Subtract; + case 0x2a: return sf::Keyboard::Multiply; + case 0x2f: return sf::Keyboard::Divide; - case NSLeftArrowFunctionKey: return sf::Keyboard::Left; - case NSRightArrowFunctionKey: return sf::Keyboard::Right; - case NSUpArrowFunctionKey: return sf::Keyboard::Up; - case NSDownArrowFunctionKey: return sf::Keyboard::Down; + case NSLeftArrowFunctionKey: return sf::Keyboard::Left; + case NSRightArrowFunctionKey: return sf::Keyboard::Right; + case NSUpArrowFunctionKey: return sf::Keyboard::Up; + case NSDownArrowFunctionKey: return sf::Keyboard::Down; /* Those are not represented using Unicode. - * case 0x: return sf::Keyboard::Numpad0; - * case 0x: return sf::Keyboard::Numpad1; - * case 0x: return sf::Keyboard::Numpad2; - * case 0x: return sf::Keyboard::Numpad3; - * case 0x: return sf::Keyboard::Numpad4; - * case 0x: return sf::Keyboard::Numpad5; - * case 0x: return sf::Keyboard::Numpad6; - * case 0x: return sf::Keyboard::Numpad7; - * case 0x: return sf::Keyboard::Numpad8; - * case 0x: return sf::Keyboard::Numpad9; + * case 0x: return sf::Keyboard::Numpad0; + * case 0x: return sf::Keyboard::Numpad1; + * case 0x: return sf::Keyboard::Numpad2; + * case 0x: return sf::Keyboard::Numpad3; + * case 0x: return sf::Keyboard::Numpad4; + * case 0x: return sf::Keyboard::Numpad5; + * case 0x: return sf::Keyboard::Numpad6; + * case 0x: return sf::Keyboard::Numpad7; + * case 0x: return sf::Keyboard::Numpad8; + * case 0x: return sf::Keyboard::Numpad9; */ - case NSF1FunctionKey: return sf::Keyboard::F1; - case NSF2FunctionKey: return sf::Keyboard::F2; - case NSF3FunctionKey: return sf::Keyboard::F3; - case NSF4FunctionKey: return sf::Keyboard::F4; - case NSF5FunctionKey: return sf::Keyboard::F5; - case NSF6FunctionKey: return sf::Keyboard::F6; - case NSF7FunctionKey: return sf::Keyboard::F7; - case NSF8FunctionKey: return sf::Keyboard::F8; - case NSF9FunctionKey: return sf::Keyboard::F9; - case NSF10FunctionKey: return sf::Keyboard::F10; - case NSF11FunctionKey: return sf::Keyboard::F11; - case NSF12FunctionKey: return sf::Keyboard::F12; - case NSF13FunctionKey: return sf::Keyboard::F13; - case NSF14FunctionKey: return sf::Keyboard::F14; - case NSF15FunctionKey: return sf::Keyboard::F15; + case NSF1FunctionKey: return sf::Keyboard::F1; + case NSF2FunctionKey: return sf::Keyboard::F2; + case NSF3FunctionKey: return sf::Keyboard::F3; + case NSF4FunctionKey: return sf::Keyboard::F4; + case NSF5FunctionKey: return sf::Keyboard::F5; + case NSF6FunctionKey: return sf::Keyboard::F6; + case NSF7FunctionKey: return sf::Keyboard::F7; + case NSF8FunctionKey: return sf::Keyboard::F8; + case NSF9FunctionKey: return sf::Keyboard::F9; + case NSF10FunctionKey: return sf::Keyboard::F10; + case NSF11FunctionKey: return sf::Keyboard::F11; + case NSF12FunctionKey: return sf::Keyboard::F12; + case NSF13FunctionKey: return sf::Keyboard::F13; + case NSF14FunctionKey: return sf::Keyboard::F14; + case NSF15FunctionKey: return sf::Keyboard::F15; case NSPauseFunctionKey: return sf::Keyboard::Pause; @@ -826,124 +826,124 @@ UniChar HIDInputManager::toUnicode(Keyboard::Key key) { switch (key) { - case sf::Keyboard::A: return 0x41; - case sf::Keyboard::B: return 0x42; - case sf::Keyboard::C: return 0x43; - case sf::Keyboard::D: return 0x44; - case sf::Keyboard::E: return 0x45; - case sf::Keyboard::F: return 0x46; - case sf::Keyboard::G: return 0x47; - case sf::Keyboard::H: return 0x48; - case sf::Keyboard::I: return 0x49; - case sf::Keyboard::J: return 0x4a; - case sf::Keyboard::K: return 0x4b; - case sf::Keyboard::L: return 0x4c; - case sf::Keyboard::M: return 0x4d; - case sf::Keyboard::N: return 0x4e; - case sf::Keyboard::O: return 0x4f; - case sf::Keyboard::P: return 0x50; - case sf::Keyboard::Q: return 0x51; - case sf::Keyboard::R: return 0x52; - case sf::Keyboard::S: return 0x53; - case sf::Keyboard::T: return 0x54; - case sf::Keyboard::U: return 0x55; - case sf::Keyboard::V: return 0x56; - case sf::Keyboard::W: return 0x57; - case sf::Keyboard::X: return 0x58; - case sf::Keyboard::Y: return 0x59; - case sf::Keyboard::Z: return 0x5a; + case sf::Keyboard::A: return 0x41; + case sf::Keyboard::B: return 0x42; + case sf::Keyboard::C: return 0x43; + case sf::Keyboard::D: return 0x44; + case sf::Keyboard::E: return 0x45; + case sf::Keyboard::F: return 0x46; + case sf::Keyboard::G: return 0x47; + case sf::Keyboard::H: return 0x48; + case sf::Keyboard::I: return 0x49; + case sf::Keyboard::J: return 0x4a; + case sf::Keyboard::K: return 0x4b; + case sf::Keyboard::L: return 0x4c; + case sf::Keyboard::M: return 0x4d; + case sf::Keyboard::N: return 0x4e; + case sf::Keyboard::O: return 0x4f; + case sf::Keyboard::P: return 0x50; + case sf::Keyboard::Q: return 0x51; + case sf::Keyboard::R: return 0x52; + case sf::Keyboard::S: return 0x53; + case sf::Keyboard::T: return 0x54; + case sf::Keyboard::U: return 0x55; + case sf::Keyboard::V: return 0x56; + case sf::Keyboard::W: return 0x57; + case sf::Keyboard::X: return 0x58; + case sf::Keyboard::Y: return 0x59; + case sf::Keyboard::Z: return 0x5a; - case sf::Keyboard::Num0: return 0x30; - case sf::Keyboard::Num1: return 0x31; - case sf::Keyboard::Num2: return 0x32; - case sf::Keyboard::Num3: return 0x33; - case sf::Keyboard::Num4: return 0x34; - case sf::Keyboard::Num5: return 0x35; - case sf::Keyboard::Num6: return 0x36; - case sf::Keyboard::Num7: return 0x37; - case sf::Keyboard::Num8: return 0x38; - case sf::Keyboard::Num9: return 0x39; + case sf::Keyboard::Num0: return 0x30; + case sf::Keyboard::Num1: return 0x31; + case sf::Keyboard::Num2: return 0x32; + case sf::Keyboard::Num3: return 0x33; + case sf::Keyboard::Num4: return 0x34; + case sf::Keyboard::Num5: return 0x35; + case sf::Keyboard::Num6: return 0x36; + case sf::Keyboard::Num7: return 0x37; + case sf::Keyboard::Num8: return 0x38; + case sf::Keyboard::Num9: return 0x39; case sf::Keyboard::Escape: return 0x1b; /* Not representable as Unicode: - * case sf::Keyboard::LControl: return 0x; - * case sf::Keyboard::LShift: return 0x; - * case sf::Keyboard::LAlt: return 0x; - * case sf::Keyboard::LSystem: return 0x; - * case sf::Keyboard::RControl: return 0x; - * case sf::Keyboard::RShift: return 0x; - * case sf::Keyboard::RAlt: return 0x; - * case sf::Keyboard::RSystem: return 0x; + * case sf::Keyboard::LControl: return 0x; + * case sf::Keyboard::LShift: return 0x; + * case sf::Keyboard::LAlt: return 0x; + * case sf::Keyboard::LSystem: return 0x; + * case sf::Keyboard::RControl: return 0x; + * case sf::Keyboard::RShift: return 0x; + * case sf::Keyboard::RAlt: return 0x; + * case sf::Keyboard::RSystem: return 0x; */ case sf::Keyboard::Menu: return NSMenuFunctionKey; - case sf::Keyboard::LBracket: return 0x5b; - case sf::Keyboard::RBracket: return 0x5d; - case sf::Keyboard::SemiColon: return 0x3b; - case sf::Keyboard::Comma: return 0x2c; - case sf::Keyboard::Period: return 0x2e; - case sf::Keyboard::Quote: return 0x27; - case sf::Keyboard::Slash: return 0x2044; // 0x2f is Divide - case sf::Keyboard::BackSlash: return 0x5c; - case sf::Keyboard::Tilde: return 0x7e; - case sf::Keyboard::Equal: return 0x3d; - case sf::Keyboard::Dash: return 0x2013; // 0x2d is Subtract - case sf::Keyboard::Space: return 0x20; - case sf::Keyboard::Return: return 0x0d; - case sf::Keyboard::BackSpace: return 0x7f; // NOTE backspace & delete are swapped on Mac. - case sf::Keyboard::Tab: return 0x09; + case sf::Keyboard::LBracket: return 0x5b; + case sf::Keyboard::RBracket: return 0x5d; + case sf::Keyboard::SemiColon: return 0x3b; + case sf::Keyboard::Comma: return 0x2c; + case sf::Keyboard::Period: return 0x2e; + case sf::Keyboard::Quote: return 0x27; + case sf::Keyboard::Slash: return 0x2044; // 0x2f is Divide + case sf::Keyboard::BackSlash: return 0x5c; + case sf::Keyboard::Tilde: return 0x7e; + case sf::Keyboard::Equal: return 0x3d; + case sf::Keyboard::Dash: return 0x2013; // 0x2d is Subtract + case sf::Keyboard::Space: return 0x20; + case sf::Keyboard::Return: return 0x0d; + case sf::Keyboard::BackSpace: return 0x7f; // NOTE backspace & delete are swapped on Mac. + case sf::Keyboard::Tab: return 0x09; - case sf::Keyboard::PageUp: return NSPageUpFunctionKey; - case sf::Keyboard::PageDown: return NSPageDownFunctionKey; - case sf::Keyboard::End: return NSEndFunctionKey; - case sf::Keyboard::Home: return NSHomeFunctionKey; - case sf::Keyboard::Insert: return NSInsertFunctionKey; - case sf::Keyboard::Delete: return NSDeleteFunctionKey; + case sf::Keyboard::PageUp: return NSPageUpFunctionKey; + case sf::Keyboard::PageDown: return NSPageDownFunctionKey; + case sf::Keyboard::End: return NSEndFunctionKey; + case sf::Keyboard::Home: return NSHomeFunctionKey; + case sf::Keyboard::Insert: return NSInsertFunctionKey; + case sf::Keyboard::Delete: return NSDeleteFunctionKey; - case sf::Keyboard::Add: return 0x2b; - case sf::Keyboard::Subtract: return 0x2d; - case sf::Keyboard::Multiply: return 0x2a; - case sf::Keyboard::Divide: return 0x2f; + case sf::Keyboard::Add: return 0x2b; + case sf::Keyboard::Subtract: return 0x2d; + case sf::Keyboard::Multiply: return 0x2a; + case sf::Keyboard::Divide: return 0x2f; - case sf::Keyboard::Left: return NSLeftArrowFunctionKey; - case sf::Keyboard::Right: return NSRightArrowFunctionKey; - case sf::Keyboard::Up: return NSUpArrowFunctionKey; - case sf::Keyboard::Down: return NSDownArrowFunctionKey; + case sf::Keyboard::Left: return NSLeftArrowFunctionKey; + case sf::Keyboard::Right: return NSRightArrowFunctionKey; + case sf::Keyboard::Up: return NSUpArrowFunctionKey; + case sf::Keyboard::Down: return NSDownArrowFunctionKey; /* Those are not represented using Unicode. - * case sf::Keyboard::Numpad0: return 0x; - * case sf::Keyboard::Numpad1: return 0x; - * case sf::Keyboard::Numpad2: return 0x; - * case sf::Keyboard::Numpad3: return 0x; - * case sf::Keyboard::Numpad4: return 0x; - * case sf::Keyboard::Numpad5: return 0x; - * case sf::Keyboard::Numpad6: return 0x; - * case sf::Keyboard::Numpad7: return 0x; - * case sf::Keyboard::Numpad8: return 0x; - * case sf::Keyboard::Numpad9: return 0x; + * case sf::Keyboard::Numpad0: return 0x; + * case sf::Keyboard::Numpad1: return 0x; + * case sf::Keyboard::Numpad2: return 0x; + * case sf::Keyboard::Numpad3: return 0x; + * case sf::Keyboard::Numpad4: return 0x; + * case sf::Keyboard::Numpad5: return 0x; + * case sf::Keyboard::Numpad6: return 0x; + * case sf::Keyboard::Numpad7: return 0x; + * case sf::Keyboard::Numpad8: return 0x; + * case sf::Keyboard::Numpad9: return 0x; */ - case sf::Keyboard::F1: return NSF1FunctionKey; - case sf::Keyboard::F2: return NSF2FunctionKey; - case sf::Keyboard::F3: return NSF3FunctionKey; - case sf::Keyboard::F4: return NSF4FunctionKey; - case sf::Keyboard::F5: return NSF5FunctionKey; - case sf::Keyboard::F6: return NSF6FunctionKey; - case sf::Keyboard::F7: return NSF7FunctionKey; - case sf::Keyboard::F8: return NSF8FunctionKey; - case sf::Keyboard::F9: return NSF9FunctionKey; - case sf::Keyboard::F10: return NSF10FunctionKey; - case sf::Keyboard::F11: return NSF11FunctionKey; - case sf::Keyboard::F12: return NSF12FunctionKey; - case sf::Keyboard::F13: return NSF13FunctionKey; - case sf::Keyboard::F14: return NSF14FunctionKey; - case sf::Keyboard::F15: return NSF15FunctionKey; + case sf::Keyboard::F1: return NSF1FunctionKey; + case sf::Keyboard::F2: return NSF2FunctionKey; + case sf::Keyboard::F3: return NSF3FunctionKey; + case sf::Keyboard::F4: return NSF4FunctionKey; + case sf::Keyboard::F5: return NSF5FunctionKey; + case sf::Keyboard::F6: return NSF6FunctionKey; + case sf::Keyboard::F7: return NSF7FunctionKey; + case sf::Keyboard::F8: return NSF8FunctionKey; + case sf::Keyboard::F9: return NSF9FunctionKey; + case sf::Keyboard::F10: return NSF10FunctionKey; + case sf::Keyboard::F11: return NSF11FunctionKey; + case sf::Keyboard::F12: return NSF12FunctionKey; + case sf::Keyboard::F13: return NSF13FunctionKey; + case sf::Keyboard::F14: return NSF14FunctionKey; + case sf::Keyboard::F15: return NSF15FunctionKey; - case sf::Keyboard::Pause: return NSPauseFunctionKey; + case sf::Keyboard::Pause: return NSPauseFunctionKey; - default: return 0x00; + default: return 0x00; } } @@ -957,132 +957,132 @@ Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode) // /System/Library/Frameworks/Carbon.framework/Versions/A/Frameworks/HIToolbox.framework/Versions/A/Headers/Events.h switch (virtualKeycode) { - case 0x00: return sf::Keyboard::ScanA; - case 0x0b: return sf::Keyboard::ScanB; - case 0x08: return sf::Keyboard::ScanC; - case 0x02: return sf::Keyboard::ScanD; - case 0x0e: return sf::Keyboard::ScanE; - case 0x03: return sf::Keyboard::ScanF; - case 0x05: return sf::Keyboard::ScanG; - case 0x04: return sf::Keyboard::ScanH; - case 0x22: return sf::Keyboard::ScanI; - case 0x26: return sf::Keyboard::ScanJ; - case 0x28: return sf::Keyboard::ScanK; - case 0x25: return sf::Keyboard::ScanL; - case 0x2e: return sf::Keyboard::ScanM; - case 0x2d: return sf::Keyboard::ScanN; - case 0x1f: return sf::Keyboard::ScanO; - case 0x23: return sf::Keyboard::ScanP; - case 0x0c: return sf::Keyboard::ScanQ; - case 0x0f: return sf::Keyboard::ScanR; - case 0x01: return sf::Keyboard::ScanS; - case 0x11: return sf::Keyboard::ScanT; - case 0x20: return sf::Keyboard::ScanU; - case 0x09: return sf::Keyboard::ScanV; - case 0x0d: return sf::Keyboard::ScanW; - case 0x07: return sf::Keyboard::ScanX; - case 0x10: return sf::Keyboard::ScanY; - case 0x06: return sf::Keyboard::ScanZ; + case 0x00: return sf::Keyboard::ScanA; + case 0x0b: return sf::Keyboard::ScanB; + case 0x08: return sf::Keyboard::ScanC; + case 0x02: return sf::Keyboard::ScanD; + case 0x0e: return sf::Keyboard::ScanE; + case 0x03: return sf::Keyboard::ScanF; + case 0x05: return sf::Keyboard::ScanG; + case 0x04: return sf::Keyboard::ScanH; + case 0x22: return sf::Keyboard::ScanI; + case 0x26: return sf::Keyboard::ScanJ; + case 0x28: return sf::Keyboard::ScanK; + case 0x25: return sf::Keyboard::ScanL; + case 0x2e: return sf::Keyboard::ScanM; + case 0x2d: return sf::Keyboard::ScanN; + case 0x1f: return sf::Keyboard::ScanO; + case 0x23: return sf::Keyboard::ScanP; + case 0x0c: return sf::Keyboard::ScanQ; + case 0x0f: return sf::Keyboard::ScanR; + case 0x01: return sf::Keyboard::ScanS; + case 0x11: return sf::Keyboard::ScanT; + case 0x20: return sf::Keyboard::ScanU; + case 0x09: return sf::Keyboard::ScanV; + case 0x0d: return sf::Keyboard::ScanW; + case 0x07: return sf::Keyboard::ScanX; + case 0x10: return sf::Keyboard::ScanY; + case 0x06: return sf::Keyboard::ScanZ; - case 0x12: return sf::Keyboard::ScanNum1; - case 0x13: return sf::Keyboard::ScanNum2; - case 0x14: return sf::Keyboard::ScanNum3; - case 0x15: return sf::Keyboard::ScanNum4; - case 0x17: return sf::Keyboard::ScanNum5; - case 0x16: return sf::Keyboard::ScanNum6; - case 0x1a: return sf::Keyboard::ScanNum7; - case 0x1c: return sf::Keyboard::ScanNum8; - case 0x19: return sf::Keyboard::ScanNum9; - case 0x1d: return sf::Keyboard::ScanNum0; + case 0x12: return sf::Keyboard::ScanNum1; + case 0x13: return sf::Keyboard::ScanNum2; + case 0x14: return sf::Keyboard::ScanNum3; + case 0x15: return sf::Keyboard::ScanNum4; + case 0x17: return sf::Keyboard::ScanNum5; + case 0x16: return sf::Keyboard::ScanNum6; + case 0x1a: return sf::Keyboard::ScanNum7; + case 0x1c: return sf::Keyboard::ScanNum8; + case 0x19: return sf::Keyboard::ScanNum9; + case 0x1d: return sf::Keyboard::ScanNum0; - case 0x24: return sf::Keyboard::ScanEnter; - case 0x35: return sf::Keyboard::ScanEscape; - case 0x33: return sf::Keyboard::ScanBackspace; - case 0x30: return sf::Keyboard::ScanTab; - case 0x31: return sf::Keyboard::ScanSpace; - // case 0x27: return sf::Keyboard::ScanHyphen; // TODO 0x27 is for Quote - case 0x18: return sf::Keyboard::ScanEquals; - case 0x21: return sf::Keyboard::ScanLBracket; - case 0x1e: return sf::Keyboard::ScanRBracket; - case 0x2a: return sf::Keyboard::ScanBackslash; - case 0x1b: return sf::Keyboard::ScanDash; - case 0x29: return sf::Keyboard::ScanSemicolon; - case 0x27: return sf::Keyboard::ScanQuote; - case 0x32: return sf::Keyboard::ScanGraveAccent; - case 0x2b: return sf::Keyboard::ScanComma; - case 0x2f: return sf::Keyboard::ScanPeriod; - case 0x2c: return sf::Keyboard::ScanForwardSlash; + case 0x24: return sf::Keyboard::ScanEnter; + case 0x35: return sf::Keyboard::ScanEscape; + case 0x33: return sf::Keyboard::ScanBackspace; + case 0x30: return sf::Keyboard::ScanTab; + case 0x31: return sf::Keyboard::ScanSpace; + // case 0x27: return sf::Keyboard::ScanHyphen; // TODO 0x27 is for Quote + case 0x18: return sf::Keyboard::ScanEquals; + case 0x21: return sf::Keyboard::ScanLBracket; + case 0x1e: return sf::Keyboard::ScanRBracket; + case 0x2a: return sf::Keyboard::ScanBackslash; + case 0x1b: return sf::Keyboard::ScanDash; + case 0x29: return sf::Keyboard::ScanSemicolon; + case 0x27: return sf::Keyboard::ScanQuote; + case 0x32: return sf::Keyboard::ScanGraveAccent; + case 0x2b: return sf::Keyboard::ScanComma; + case 0x2f: return sf::Keyboard::ScanPeriod; + case 0x2c: return sf::Keyboard::ScanSlash; - case 0x7a: return sf::Keyboard::ScanF1; - case 0x78: return sf::Keyboard::ScanF2; - case 0x63: return sf::Keyboard::ScanF3; - case 0x76: return sf::Keyboard::ScanF4; - case 0x60: return sf::Keyboard::ScanF5; - case 0x61: return sf::Keyboard::ScanF6; - case 0x62: return sf::Keyboard::ScanF7; - case 0x64: return sf::Keyboard::ScanF8; - case 0x65: return sf::Keyboard::ScanF9; - case 0x6d: return sf::Keyboard::ScanF10; - case 0x67: return sf::Keyboard::ScanF11; - case 0x6f: return sf::Keyboard::ScanF12; - case 0x69: return sf::Keyboard::ScanF13; - case 0x6b: return sf::Keyboard::ScanF14; - case 0x71: return sf::Keyboard::ScanF15; + case 0x7a: return sf::Keyboard::ScanF1; + case 0x78: return sf::Keyboard::ScanF2; + case 0x63: return sf::Keyboard::ScanF3; + case 0x76: return sf::Keyboard::ScanF4; + case 0x60: return sf::Keyboard::ScanF5; + case 0x61: return sf::Keyboard::ScanF6; + case 0x62: return sf::Keyboard::ScanF7; + case 0x64: return sf::Keyboard::ScanF8; + case 0x65: return sf::Keyboard::ScanF9; + case 0x6d: return sf::Keyboard::ScanF10; + case 0x67: return sf::Keyboard::ScanF11; + case 0x6f: return sf::Keyboard::ScanF12; + case 0x69: return sf::Keyboard::ScanF13; + case 0x6b: return sf::Keyboard::ScanF14; + case 0x71: return sf::Keyboard::ScanF15; - case 0x39: return sf::Keyboard::ScanCapsLock; + case 0x39: return sf::Keyboard::ScanCapsLock; /* TODO Those are missing: - * case 0x: return sf::Keyboard::ScanPrintScreen; - * case 0x: return sf::Keyboard::ScanScrollLock; - * case 0x: return sf::Keyboard::ScanPause; + * case 0x: return sf::Keyboard::ScanPrintScreen; + * case 0x: return sf::Keyboard::ScanScrollLock; + * case 0x: return sf::Keyboard::ScanPause; */ - case 0x72: return sf::Keyboard::ScanInsert; - case 0x73: return sf::Keyboard::ScanHome; - case 0x74: return sf::Keyboard::ScanPageUp; - case 0x75: return sf::Keyboard::ScanDelete; - case 0x77: return sf::Keyboard::ScanEnd; - case 0x79: return sf::Keyboard::ScanPageDown; + case 0x72: return sf::Keyboard::ScanInsert; + case 0x73: return sf::Keyboard::ScanHome; + case 0x74: return sf::Keyboard::ScanPageUp; + case 0x75: return sf::Keyboard::ScanDelete; + case 0x77: return sf::Keyboard::ScanEnd; + case 0x79: return sf::Keyboard::ScanPageDown; - case 0x7c: return sf::Keyboard::ScanRight; - case 0x7b: return sf::Keyboard::ScanLeft; - case 0x7d: return sf::Keyboard::ScanDown; - case 0x7e: return sf::Keyboard::ScanUp; + case 0x7c: return sf::Keyboard::ScanRight; + case 0x7b: return sf::Keyboard::ScanLeft; + case 0x7d: return sf::Keyboard::ScanDown; + case 0x7e: return sf::Keyboard::ScanUp; - case 0x47: return sf::Keyboard::ScanNumLock; - case 0x4b: return sf::Keyboard::ScanDivide; - case 0x43: return sf::Keyboard::ScanMultiply; - case 0x4e: return sf::Keyboard::ScanMinus; - case 0x45: return sf::Keyboard::ScanPlus; - case 0x51: return sf::Keyboard::ScanPadEquals; - case 0x4c: return sf::Keyboard::ScanReturn; - case 0x41: return sf::Keyboard::ScanDecimal; + case 0x47: return sf::Keyboard::ScanNumLock; + case 0x4b: return sf::Keyboard::ScanDivide; + case 0x43: return sf::Keyboard::ScanMultiply; + case 0x4e: return sf::Keyboard::ScanMinus; + case 0x45: return sf::Keyboard::ScanPlus; + case 0x51: return sf::Keyboard::ScanNumpadEquals; + case 0x4c: return sf::Keyboard::ScanNumpadEnter; + case 0x41: return sf::Keyboard::ScanDecimal; - case 0x53: return sf::Keyboard::ScanNumpad1; - case 0x54: return sf::Keyboard::ScanNumpad2; - case 0x55: return sf::Keyboard::ScanNumpad3; - case 0x56: return sf::Keyboard::ScanNumpad4; - case 0x57: return sf::Keyboard::ScanNumpad5; - case 0x58: return sf::Keyboard::ScanNumpad6; - case 0x59: return sf::Keyboard::ScanNumpad7; - case 0x5b: return sf::Keyboard::ScanNumpad8; - case 0x5c: return sf::Keyboard::ScanNumpad9; - case 0x52: return sf::Keyboard::ScanNumpad0; + case 0x53: return sf::Keyboard::ScanNumpad1; + case 0x54: return sf::Keyboard::ScanNumpad2; + case 0x55: return sf::Keyboard::ScanNumpad3; + case 0x56: return sf::Keyboard::ScanNumpad4; + case 0x57: return sf::Keyboard::ScanNumpad5; + case 0x58: return sf::Keyboard::ScanNumpad6; + case 0x59: return sf::Keyboard::ScanNumpad7; + case 0x5b: return sf::Keyboard::ScanNumpad8; + case 0x5c: return sf::Keyboard::ScanNumpad9; + case 0x52: return sf::Keyboard::ScanNumpad0; /* TODO Those are missing: - * case 0x: return sf::Keyboard::ScanReverseSolidus; - * case 0x: return sf::Keyboard::ScanApplication; - * case 0x: return sf::Keyboard::ScanExecute; - * case 0x72: return sf::Keyboard::ScanHelp; // 0x72 is for Insert - * case 0x: return sf::Keyboard::ScanMenu; - * case 0x: return sf::Keyboard::ScanSelect; - * case 0x: return sf::Keyboard::ScanStop; - * case 0x: return sf::Keyboard::ScanAgain; - * case 0x: return sf::Keyboard::ScanUndo; - * case 0x: return sf::Keyboard::ScanCut; - * case 0x: return sf::Keyboard::ScanCopy; - * case 0x: return sf::Keyboard::ScanPaste; - * case 0x: return sf::Keyboard::ScanFind; + * case 0x: return sf::Keyboard::ScanReverseSolidus; + * case 0x: return sf::Keyboard::ScanApplication; + * case 0x: return sf::Keyboard::ScanExecute; + * case 0x72: return sf::Keyboard::ScanHelp; // 0x72 is for Insert + * case 0x: return sf::Keyboard::ScanMenu; + * case 0x: return sf::Keyboard::ScanSelect; + * case 0x: return sf::Keyboard::ScanStop; + * case 0x: return sf::Keyboard::ScanAgain; + * case 0x: return sf::Keyboard::ScanUndo; + * case 0x: return sf::Keyboard::ScanCut; + * case 0x: return sf::Keyboard::ScanCopy; + * case 0x: return sf::Keyboard::ScanPaste; + * case 0x: return sf::Keyboard::ScanFind; */ case 0x4a: return sf::Keyboard::ScanMute; @@ -1091,14 +1091,14 @@ Keyboard::Scancode HIDInputManager::nonLocalizedKey(UniChar virtualKeycode) /* NOTE Those are symmetric so we leave them out. * Thankfully handled through modifiers and not virtual codes. - * case 0x3b: return sf::Keyboard::ScanLControl; - * case 0x38: return sf::Keyboard::ScanLShift; - * case 0x3a: return sf::Keyboard::ScanLAlt; - * case 0x37: return sf::Keyboard::ScanLSystem; - * case 0x3b: return sf::Keyboard::ScanRControl; - * case 0x38: return sf::Keyboard::ScanRShift; - * case 0x3a: return sf::Keyboard::ScanRAlt; - * case 0x37: return sf::Keyboard::ScanRSystem; + * case 0x3b: return sf::Keyboard::ScanLControl; + * case 0x38: return sf::Keyboard::ScanLShift; + * case 0x3a: return sf::Keyboard::ScanLAlt; + * case 0x37: return sf::Keyboard::ScanLSystem; + * case 0x3b: return sf::Keyboard::ScanRControl; + * case 0x38: return sf::Keyboard::ScanRShift; + * case 0x3a: return sf::Keyboard::ScanRAlt; + * case 0x37: return sf::Keyboard::ScanRSystem; */ default: return sf::Keyboard::ScanUnknown; @@ -1111,81 +1111,81 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code) { switch (code) { - case sf::Keyboard::ScanA: return 0x00; - case sf::Keyboard::ScanB: return 0x0b; - case sf::Keyboard::ScanC: return 0x08; - case sf::Keyboard::ScanD: return 0x02; - case sf::Keyboard::ScanE: return 0x0e; - case sf::Keyboard::ScanF: return 0x03; - case sf::Keyboard::ScanG: return 0x05; - case sf::Keyboard::ScanH: return 0x04; - case sf::Keyboard::ScanI: return 0x22; - case sf::Keyboard::ScanJ: return 0x26; - case sf::Keyboard::ScanK: return 0x28; - case sf::Keyboard::ScanL: return 0x25; - case sf::Keyboard::ScanM: return 0x2e; - case sf::Keyboard::ScanN: return 0x2d; - case sf::Keyboard::ScanO: return 0x1f; - case sf::Keyboard::ScanP: return 0x23; - case sf::Keyboard::ScanQ: return 0x0c; - case sf::Keyboard::ScanR: return 0x0f; - case sf::Keyboard::ScanS: return 0x01; - case sf::Keyboard::ScanT: return 0x11; - case sf::Keyboard::ScanU: return 0x20; - case sf::Keyboard::ScanV: return 0x09; - case sf::Keyboard::ScanW: return 0x0d; - case sf::Keyboard::ScanX: return 0x07; - case sf::Keyboard::ScanY: return 0x10; - case sf::Keyboard::ScanZ: return 0x06; + case sf::Keyboard::ScanA: return 0x00; + case sf::Keyboard::ScanB: return 0x0b; + case sf::Keyboard::ScanC: return 0x08; + case sf::Keyboard::ScanD: return 0x02; + case sf::Keyboard::ScanE: return 0x0e; + case sf::Keyboard::ScanF: return 0x03; + case sf::Keyboard::ScanG: return 0x05; + case sf::Keyboard::ScanH: return 0x04; + case sf::Keyboard::ScanI: return 0x22; + case sf::Keyboard::ScanJ: return 0x26; + case sf::Keyboard::ScanK: return 0x28; + case sf::Keyboard::ScanL: return 0x25; + case sf::Keyboard::ScanM: return 0x2e; + case sf::Keyboard::ScanN: return 0x2d; + case sf::Keyboard::ScanO: return 0x1f; + case sf::Keyboard::ScanP: return 0x23; + case sf::Keyboard::ScanQ: return 0x0c; + case sf::Keyboard::ScanR: return 0x0f; + case sf::Keyboard::ScanS: return 0x01; + case sf::Keyboard::ScanT: return 0x11; + case sf::Keyboard::ScanU: return 0x20; + case sf::Keyboard::ScanV: return 0x09; + case sf::Keyboard::ScanW: return 0x0d; + case sf::Keyboard::ScanX: return 0x07; + case sf::Keyboard::ScanY: return 0x10; + case sf::Keyboard::ScanZ: return 0x06; - case sf::Keyboard::ScanNum1: return 0x12; - case sf::Keyboard::ScanNum2: return 0x13; - case sf::Keyboard::ScanNum3: return 0x14; - case sf::Keyboard::ScanNum4: return 0x15; - case sf::Keyboard::ScanNum5: return 0x17; - case sf::Keyboard::ScanNum6: return 0x16; - case sf::Keyboard::ScanNum7: return 0x1a; - case sf::Keyboard::ScanNum8: return 0x1c; - case sf::Keyboard::ScanNum9: return 0x19; - case sf::Keyboard::ScanNum0: return 0x1d; + case sf::Keyboard::ScanNum1: return 0x12; + case sf::Keyboard::ScanNum2: return 0x13; + case sf::Keyboard::ScanNum3: return 0x14; + case sf::Keyboard::ScanNum4: return 0x15; + case sf::Keyboard::ScanNum5: return 0x17; + case sf::Keyboard::ScanNum6: return 0x16; + case sf::Keyboard::ScanNum7: return 0x1a; + case sf::Keyboard::ScanNum8: return 0x1c; + case sf::Keyboard::ScanNum9: return 0x19; + case sf::Keyboard::ScanNum0: return 0x1d; - case sf::Keyboard::ScanEnter: return 0x24; - case sf::Keyboard::ScanEscape: return 0x35; - case sf::Keyboard::ScanBackspace: return 0x33; - case sf::Keyboard::ScanTab: return 0x30; - case sf::Keyboard::ScanSpace: return 0x31; + case sf::Keyboard::ScanEnter: return 0x24; + case sf::Keyboard::ScanEscape: return 0x35; + case sf::Keyboard::ScanBackspace: return 0x33; + case sf::Keyboard::ScanTab: return 0x30; + case sf::Keyboard::ScanSpace: return 0x31; // case sf::Keyboard::ScanHyphen: return 0; // 0x27 is for Quote - case sf::Keyboard::ScanEquals: return 0x18; - case sf::Keyboard::ScanLBracket: return 0x21; - case sf::Keyboard::ScanRBracket: return 0x1e; - case sf::Keyboard::ScanBackslash: return 0x2a; - case sf::Keyboard::ScanDash: return 0x1b; - case sf::Keyboard::ScanSemicolon: return 0x29; - case sf::Keyboard::ScanQuote: return 0x27; - case sf::Keyboard::ScanGraveAccent: return 0x32; - case sf::Keyboard::ScanComma: return 0x2b; - case sf::Keyboard::ScanPeriod: return 0x2f; - case sf::Keyboard::ScanForwardSlash: return 0x2c; + case sf::Keyboard::ScanEquals: return 0x18; + case sf::Keyboard::ScanLBracket: return 0x21; + case sf::Keyboard::ScanRBracket: return 0x1e; + case sf::Keyboard::ScanBackslash: return 0x2a; + case sf::Keyboard::ScanDash: return 0x1b; + case sf::Keyboard::ScanSemicolon: return 0x29; + case sf::Keyboard::ScanQuote: return 0x27; + case sf::Keyboard::ScanGraveAccent: return 0x32; + case sf::Keyboard::ScanComma: return 0x2b; + case sf::Keyboard::ScanPeriod: return 0x2f; + case sf::Keyboard::ScanSlash: return 0x2c; - case sf::Keyboard::ScanF1: return 0x7a; - case sf::Keyboard::ScanF2: return 0x78; - case sf::Keyboard::ScanF3: return 0x63; - case sf::Keyboard::ScanF4: return 0x76; - case sf::Keyboard::ScanF5: return 0x60; - case sf::Keyboard::ScanF6: return 0x61; - case sf::Keyboard::ScanF7: return 0x62; - case sf::Keyboard::ScanF8: return 0x64; - case sf::Keyboard::ScanF9: return 0x65; - case sf::Keyboard::ScanF10: return 0x6d; - case sf::Keyboard::ScanF11: return 0x67; - case sf::Keyboard::ScanF12: return 0x6f; - case sf::Keyboard::ScanF13: return 0x69; - case sf::Keyboard::ScanF14: return 0x6b; - case sf::Keyboard::ScanF15: return 0x71; + case sf::Keyboard::ScanF1: return 0x7a; + case sf::Keyboard::ScanF2: return 0x78; + case sf::Keyboard::ScanF3: return 0x63; + case sf::Keyboard::ScanF4: return 0x76; + case sf::Keyboard::ScanF5: return 0x60; + case sf::Keyboard::ScanF6: return 0x61; + case sf::Keyboard::ScanF7: return 0x62; + case sf::Keyboard::ScanF8: return 0x64; + case sf::Keyboard::ScanF9: return 0x65; + case sf::Keyboard::ScanF10: return 0x6d; + case sf::Keyboard::ScanF11: return 0x67; + case sf::Keyboard::ScanF12: return 0x6f; + case sf::Keyboard::ScanF13: return 0x69; + case sf::Keyboard::ScanF14: return 0x6b; + case sf::Keyboard::ScanF15: return 0x71; - case sf::Keyboard::ScanCapsLock: return 0x39; + case sf::Keyboard::ScanCapsLock: return 0x39; /* TODO Those are missing: * case sf::Keyboard::ScanPrintScreen: return 0; @@ -1199,30 +1199,30 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code) case sf::Keyboard::ScanEnd: return 0x77; case sf::Keyboard::ScanPageDown: return 0x79; - case sf::Keyboard::ScanRight: return 0x7c; - case sf::Keyboard::ScanLeft: return 0x7b; - case sf::Keyboard::ScanDown: return 0x7d; - case sf::Keyboard::ScanUp: return 0x7e; + case sf::Keyboard::ScanRight: return 0x7c; + case sf::Keyboard::ScanLeft: return 0x7b; + case sf::Keyboard::ScanDown: return 0x7d; + case sf::Keyboard::ScanUp: return 0x7e; - case sf::Keyboard::ScanNumLock: return 0x47; - case sf::Keyboard::ScanDivide: return 0x4b; - case sf::Keyboard::ScanMultiply: return 0x43; - case sf::Keyboard::ScanMinus: return 0x4e; - case sf::Keyboard::ScanPlus: return 0x45; - case sf::Keyboard::ScanPadEquals: return 0x51; - case sf::Keyboard::ScanReturn: return 0x4c; - case sf::Keyboard::ScanDecimal: return 0x41; + case sf::Keyboard::ScanNumLock: return 0x47; + case sf::Keyboard::ScanDivide: return 0x4b; + case sf::Keyboard::ScanMultiply: return 0x43; + case sf::Keyboard::ScanMinus: return 0x4e; + case sf::Keyboard::ScanPlus: return 0x45; + case sf::Keyboard::ScanNumpadEquals: return 0x51; + case sf::Keyboard::ScanNumpadEnter: return 0x4c; + case sf::Keyboard::ScanDecimal: return 0x41; - case sf::Keyboard::ScanNumpad1: return 0x53; - case sf::Keyboard::ScanNumpad2: return 0x54; - case sf::Keyboard::ScanNumpad3: return 0x55; - case sf::Keyboard::ScanNumpad4: return 0x56; - case sf::Keyboard::ScanNumpad5: return 0x57; - case sf::Keyboard::ScanNumpad6: return 0x58; - case sf::Keyboard::ScanNumpad7: return 0x59; - case sf::Keyboard::ScanNumpad8: return 0x5b; - case sf::Keyboard::ScanNumpad9: return 0x5c; - case sf::Keyboard::ScanNumpad0: return 0x52; + case sf::Keyboard::ScanNumpad1: return 0x53; + case sf::Keyboard::ScanNumpad2: return 0x54; + case sf::Keyboard::ScanNumpad3: return 0x55; + case sf::Keyboard::ScanNumpad4: return 0x56; + case sf::Keyboard::ScanNumpad5: return 0x57; + case sf::Keyboard::ScanNumpad6: return 0x58; + case sf::Keyboard::ScanNumpad7: return 0x59; + case sf::Keyboard::ScanNumpad8: return 0x5b; + case sf::Keyboard::ScanNumpad9: return 0x5c; + case sf::Keyboard::ScanNumpad0: return 0x52; /* TODO Those are missing: * case sf::Keyboard::ScanReverseSolidus: return 0; @@ -1240,18 +1240,18 @@ UInt8 HIDInputManager::scanToVirtualCode(Keyboard::Scancode code) * case sf::Keyboard::ScanFind: return 0; */ - case sf::Keyboard::ScanMute: return 0x4a; - case sf::Keyboard::ScanVolumeUp: return 0x48; - case sf::Keyboard::ScanVolumeDown: return 0x49; + case sf::Keyboard::ScanMute: return 0x4a; + case sf::Keyboard::ScanVolumeUp: return 0x48; + case sf::Keyboard::ScanVolumeDown: return 0x49; - case sf::Keyboard::ScanLControl: return 0x3b; - case sf::Keyboard::ScanLShift: return 0x38; - case sf::Keyboard::ScanLAlt: return 0x3a; - case sf::Keyboard::ScanLSystem: return 0x37; - case sf::Keyboard::ScanRControl: return 0x3b; - case sf::Keyboard::ScanRShift: return 0x38; - case sf::Keyboard::ScanRAlt: return 0x3a; - case sf::Keyboard::ScanRSystem: return 0x37; + case sf::Keyboard::ScanLControl: return 0x3b; + case sf::Keyboard::ScanLShift: return 0x38; + case sf::Keyboard::ScanLAlt: return 0x3a; + case sf::Keyboard::ScanLSystem: return 0x37; + case sf::Keyboard::ScanRControl: return 0x3b; + case sf::Keyboard::ScanRShift: return 0x38; + case sf::Keyboard::ScanRAlt: return 0x3a; + case sf::Keyboard::ScanRSystem: return 0x37; default: return 0x00; } From e1380f182ae3efb6c43f9a1438b121597495996e Mon Sep 17 00:00:00 2001 From: Marco Antognini Date: Mon, 27 Mar 2017 00:36:59 +0200 Subject: [PATCH 06/36] Add new API for scancodes --- include/SFML/Window/Event.hpp | 12 +-- include/SFML/Window/Keyboard.hpp | 153 +++++++++++++++++++++++++++++++ 2 files changed, 159 insertions(+), 6 deletions(-) diff --git a/include/SFML/Window/Event.hpp b/include/SFML/Window/Event.hpp index 84d8df3b..dfeafb32 100644 --- a/include/SFML/Window/Event.hpp +++ b/include/SFML/Window/Event.hpp @@ -61,12 +61,12 @@ public: //////////////////////////////////////////////////////////// struct KeyEvent { - Keyboard::Key code; //!< Code of the key that has been pressed - Keyboard::Scancode scancode; //!< Physical code of the key that has been pressed - bool alt; //!< Is the Alt key pressed? - bool control; //!< Is the Control key pressed? - bool shift; //!< Is the Shift key pressed? - bool system; //!< Is the System key pressed? + Keyboard::Key code; ///< Code of the key that has been pressed, or Unknown + Keyboard::Scancode scancode; ///< Physical code of the key that has been pressed + bool alt; ///< Is the Alt key pressed? + bool control; ///< Is the Control key pressed? + bool shift; ///< Is the Shift key pressed? + bool system; ///< Is the System key pressed? }; //////////////////////////////////////////////////////////// diff --git a/include/SFML/Window/Keyboard.hpp b/include/SFML/Window/Keyboard.hpp index 9c3fec7f..9d3a0241 100644 --- a/include/SFML/Window/Keyboard.hpp +++ b/include/SFML/Window/Keyboard.hpp @@ -29,6 +29,7 @@ // Headers //////////////////////////////////////////////////////////// #include +#include namespace sf @@ -317,6 +318,158 @@ public: ScanCodeCount ///< Keep last -- the total number of scancodes }; + //////////////////////////////////////////////////////////// + /// \brief Scancodes + /// + /// The enumerators are bound to a physical key and do *not* depend + /// on 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. + /// + /// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page + /// of Universal Serial Bus (USB): HID Usage Tables, v1.12. + /// + /// \todo When porting this for SFML 3, remove the `s` prefix and use + /// enum class. + /// + //////////////////////////////////////////////////////////// + enum Scancode + { + sUnknown = -1, ///< Represents any scancode not present in this enum + sA = 0, ///< Keyboard a and A key + sB, ///< Keyboard b and B key + sC, ///< Keyboard c and C key + sD, ///< Keyboard d and D key + sE, ///< Keyboard e and E key + sF, ///< Keyboard f and F key + sG, ///< Keyboard g and G key + sH, ///< Keyboard h and H key + sI, ///< Keyboard i and I key + sJ, ///< Keyboard j and J key + sK, ///< Keyboard k and K key + sL, ///< Keyboard l and L key + sM, ///< Keyboard m and M key + sN, ///< Keyboard n and N key + sO, ///< Keyboard o and O key + sP, ///< Keyboard p and P key + sQ, ///< Keyboard q and Q key + sR, ///< Keyboard r and R key + sS, ///< Keyboard s and S key + sT, ///< Keyboard t and T key + sU, ///< Keyboard u and U key + sV, ///< Keyboard v and V key + sW, ///< Keyboard w and W key + sX, ///< Keyboard x and X key + sY, ///< Keyboard y and Y key + sZ, ///< Keyboard z and Z key + sNum1, ///< Keyboard 1 and ! key + sNum2, ///< Keyboard 2 and @ key + sNum3, ///< Keyboard 3 and # key + sNum4, ///< Keyboard 4 and $ key + sNum5, ///< Keyboard 5 and % key + sNum6, ///< Keyboard 6 and ^ key + sNum7, ///< Keyboard 7 and & key + sNum8, ///< Keyboard 8 and * key + sNum9, ///< Keyboard 9 and ) key + sNum0, ///< Keyboard 0 and ) key + sEnter, ///< Keyboard Return (ENTER) key + sEscape, ///< Keyboard Escape key + sBackspace, ///< Keyboard Backspace key + // TODO above it's BackSpace, but is it correct? What do we use here? + sTab, ///< Keyboard Tab key + sSpace, ///< Keyboard Space key + sHyphen, ///< Keyboard - and _ key + sEquals, ///< Keyboard = and + + sLBracket, ///< Keyboard [ and { key + sRBracket, ///< Keyboard ] and } key + sBackslash, ///< Keyboard \ and | key + // TODO capitalisation + sDash, ///< Keyboard Non-US # and ~ + sSemicolon, ///< Keyboard ; and : key + // TODO capitalisation + sQuote, ///< Keyboard ' and " key + sGraveAccent, ///< Keyboard ` and ~ key + sComma, ///< Keyboard , and < key + sPeriod, ///< Keyboard . and > key + sForwardSlash, ///< Keyboard / and ? key + sF1, ///< Keyboard F1 key + sF2, ///< Keyboard F2 key + sF3, ///< Keyboard F3 key + sF4, ///< Keyboard F4 key + sF5, ///< Keyboard F5 key + sF6, ///< Keyboard F6 key + sF7, ///< Keyboard F7 key + sF8, ///< Keyboard F8 key + sF9, ///< Keyboard F9 key + sF10, ///< Keyboard F10 key + sF11, ///< Keyboard F11 key + sF12, ///< Keyboard F12 key + sF13, ///< Keyboard F13 key + sF14, ///< Keyboard F14 key + sF15, ///< Keyboard F15 key + sCapsLock, ///< Keyboard Caps Lock key + sPrintScreen, ///< Keyboard Print Screen key + sScrollLock, ///< Keyboard Scroll Lock key + sPause, ///< Keyboard Pause key + sInsert, ///< Keyboard Insert key + sHome, ///< Keyboard Home key + sPageUp, ///< Keyboard Page Up key + sDelete, ///< Keyboard Delete Forward key + sEnd, ///< Keyboard End key + sPageDown, ///< Keyboard Page Down key + sRight, ///< Keyboard Right Arrow key + sLeft, ///< Keyboard Left Arrow key + sDown, ///< Keyboard Down Arrow key + sUp, ///< Keyboard Up Arrow key + sNumLock, ///< Keypad Num Lock and Clear key + sDivide, ///< Keypad / key + sMultiply, ///< Keypad * key + sMinus, ///< Keypad - key + sPlus, ///< Keypad + key + sPadEquals, ///< keypad = key, probably Mac only + sReturn, ///< Keypad Enter (return) key + sDecimal, ///< Keypad . and Delete key + sNumpad1, ///< Keypad 1 and End key + sNumpad2, ///< Keypad 2 and Down Arrow key + sNumpad3, ///< Keypad 3 and Page Down key + sNumpad4, ///< Keypad 4 and Left Arrow key + sNumpad5, ///< Keypad 5 key + sNumpad6, ///< Keypad 6 and Right Arrow key + sNumpad7, ///< Keypad 7 and Home key + sNumpad8, ///< Keypad 8 and Up Arrow key + sNumpad9, ///< Keypad 9 and Page Up key + sNumpad0, ///< Keypad 0 and Insert key + sReverseSolidus, ///< Keyboard Non-US \ and | key + // FIXME what is this one? Might need better name. The doc says: + // - Typically near the Left-Shift key in AT-102 implementations. + // - Typical language mappings: Belg:<\> FrCa:«°» Dan:<\> Dutch:]|[ Fren:<> Ger:<|> Ital:<> LatAm:<> Nor:<> Span:<> Swed:<|> Swiss:<\> UK:\| Brazil: \|. + // What is the difference with "regular" \ and | key? + sApplication, ///< Keyboard Application key + sExecute, ///< Keyboard Execute key + sHelp, ///< Keyboard Help key + sMenu, ///< Keyboard Menu key + sSelect, ///< Keyboard Select key + sStop, ///< Keyboard Stop key + sAgain, ///< Keyboard Again key + sUndo, ///< Keyboard Undo key + sCut, ///< Keyboard Cut key + sCopy, ///< Keyboard Copy key + sPaste, ///< Keyboard Paste key + sFind, ///< Keyboard Find key + sMute, ///< Keyboard Mute key + sVolumeUp, ///< Keyboard Volume Up key + sVolumeDown, ///< Keyboard Volume Down key + sLControl, ///< Keyboard Left Control key + sLShift, ///< Keyboard Left Shift key + sLAlt, ///< Keyboard Left Alt key + sLSystem, ///< Keyboard Left System key + sRControl, ///< Keyboard Right Control key + sRShift, ///< Keyboard Right Shift key + sRAlt, ///< Keyboard Right Alt key + sRSystem, ///< Keyboard Right System key + + sCodeCount ///< Keep last -- the total number of scancodes + }; + //////////////////////////////////////////////////////////// /// \brief Check if a key is pressed /// From 188aaae7a114448cf30e00445320064c7b35a783 Mon Sep 17 00:00:00 2001 From: Marco Antognini Date: Tue, 28 Mar 2017 23:37:06 +0200 Subject: [PATCH 07/36] Add support of scancodes for macOS --- src/SFML/Window/OSX/HIDInputManager.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SFML/Window/OSX/HIDInputManager.hpp b/src/SFML/Window/OSX/HIDInputManager.hpp index bd3de198..2bccff61 100644 --- a/src/SFML/Window/OSX/HIDInputManager.hpp +++ b/src/SFML/Window/OSX/HIDInputManager.hpp @@ -223,6 +223,8 @@ private: /// /// \see initializeKeyboard /// + /// \see initializeKeyboard + /// //////////////////////////////////////////////////////////// void freeUp(); From 7f9bca43c5e2ae81c18809ae60c0e09c08e30926 Mon Sep 17 00:00:00 2001 From: "jonathan.r.paton@googlemail.com" Date: Thu, 28 Sep 2017 20:28:42 +0100 Subject: [PATCH 08/36] Initial Windows implementation --- src/SFML/Window/Win32/InputImpl.cpp | 288 ++++++++++++++-------- src/SFML/Window/Win32/InputImpl.hpp | 7 +- src/SFML/Window/Win32/WindowImplWin32.cpp | 129 ++++++++-- src/SFML/Window/Win32/WindowImplWin32.hpp | 22 +- 4 files changed, 321 insertions(+), 125 deletions(-) mode change 100755 => 100644 src/SFML/Window/Win32/WindowImplWin32.cpp diff --git a/src/SFML/Window/Win32/InputImpl.cpp b/src/SFML/Window/Win32/InputImpl.cpp index 5f4e993c..07ccef37 100644 --- a/src/SFML/Window/Win32/InputImpl.cpp +++ b/src/SFML/Window/Win32/InputImpl.cpp @@ -45,116 +45,45 @@ namespace priv //////////////////////////////////////////////////////////// bool InputImpl::isKeyPressed(Keyboard::Key key) { - int vkey = 0; - switch (key) - { - default: vkey = 0; break; - case Keyboard::A: vkey = 'A'; break; - case Keyboard::B: vkey = 'B'; break; - case Keyboard::C: vkey = 'C'; break; - case Keyboard::D: vkey = 'D'; break; - case Keyboard::E: vkey = 'E'; break; - case Keyboard::F: vkey = 'F'; break; - case Keyboard::G: vkey = 'G'; break; - case Keyboard::H: vkey = 'H'; break; - case Keyboard::I: vkey = 'I'; break; - case Keyboard::J: vkey = 'J'; break; - case Keyboard::K: vkey = 'K'; break; - case Keyboard::L: vkey = 'L'; break; - case Keyboard::M: vkey = 'M'; break; - case Keyboard::N: vkey = 'N'; break; - case Keyboard::O: vkey = 'O'; break; - case Keyboard::P: vkey = 'P'; break; - case Keyboard::Q: vkey = 'Q'; break; - case Keyboard::R: vkey = 'R'; break; - case Keyboard::S: vkey = 'S'; break; - case Keyboard::T: vkey = 'T'; break; - case Keyboard::U: vkey = 'U'; break; - case Keyboard::V: vkey = 'V'; break; - case Keyboard::W: vkey = 'W'; break; - case Keyboard::X: vkey = 'X'; break; - case Keyboard::Y: vkey = 'Y'; break; - case Keyboard::Z: vkey = 'Z'; break; - case Keyboard::Num0: vkey = '0'; break; - case Keyboard::Num1: vkey = '1'; break; - case Keyboard::Num2: vkey = '2'; break; - case Keyboard::Num3: vkey = '3'; break; - case Keyboard::Num4: vkey = '4'; break; - case Keyboard::Num5: vkey = '5'; break; - case Keyboard::Num6: vkey = '6'; break; - case Keyboard::Num7: vkey = '7'; break; - case Keyboard::Num8: vkey = '8'; break; - case Keyboard::Num9: vkey = '9'; break; - case Keyboard::Escape: vkey = VK_ESCAPE; break; - case Keyboard::LControl: vkey = VK_LCONTROL; break; - case Keyboard::LShift: vkey = VK_LSHIFT; break; - case Keyboard::LAlt: vkey = VK_LMENU; break; - case Keyboard::LSystem: vkey = VK_LWIN; break; - case Keyboard::RControl: vkey = VK_RCONTROL; break; - case Keyboard::RShift: vkey = VK_RSHIFT; break; - case Keyboard::RAlt: vkey = VK_RMENU; break; - case Keyboard::RSystem: vkey = VK_RWIN; break; - case Keyboard::Menu: vkey = VK_APPS; break; - case Keyboard::LBracket: vkey = VK_OEM_4; break; - case Keyboard::RBracket: vkey = VK_OEM_6; break; - case Keyboard::Semicolon: vkey = VK_OEM_1; break; - case Keyboard::Comma: vkey = VK_OEM_COMMA; break; - case Keyboard::Period: vkey = VK_OEM_PERIOD; break; - case Keyboard::Quote: vkey = VK_OEM_7; break; - case Keyboard::Slash: vkey = VK_OEM_2; break; - case Keyboard::Backslash: vkey = VK_OEM_5; break; - case Keyboard::Tilde: vkey = VK_OEM_3; break; - case Keyboard::Equal: vkey = VK_OEM_PLUS; break; - case Keyboard::Hyphen: vkey = VK_OEM_MINUS; break; - case Keyboard::Space: vkey = VK_SPACE; break; - case Keyboard::Enter: vkey = VK_RETURN; break; - case Keyboard::Backspace: vkey = VK_BACK; break; - case Keyboard::Tab: vkey = VK_TAB; break; - case Keyboard::PageUp: vkey = VK_PRIOR; break; - case Keyboard::PageDown: vkey = VK_NEXT; break; - case Keyboard::End: vkey = VK_END; break; - case Keyboard::Home: vkey = VK_HOME; break; - case Keyboard::Insert: vkey = VK_INSERT; break; - case Keyboard::Delete: vkey = VK_DELETE; break; - case Keyboard::Add: vkey = VK_ADD; break; - case Keyboard::Subtract: vkey = VK_SUBTRACT; break; - case Keyboard::Multiply: vkey = VK_MULTIPLY; break; - case Keyboard::Divide: vkey = VK_DIVIDE; break; - case Keyboard::Left: vkey = VK_LEFT; break; - case Keyboard::Right: vkey = VK_RIGHT; break; - case Keyboard::Up: vkey = VK_UP; break; - case Keyboard::Down: vkey = VK_DOWN; break; - case Keyboard::Numpad0: vkey = VK_NUMPAD0; break; - case Keyboard::Numpad1: vkey = VK_NUMPAD1; break; - case Keyboard::Numpad2: vkey = VK_NUMPAD2; break; - case Keyboard::Numpad3: vkey = VK_NUMPAD3; break; - case Keyboard::Numpad4: vkey = VK_NUMPAD4; break; - case Keyboard::Numpad5: vkey = VK_NUMPAD5; break; - case Keyboard::Numpad6: vkey = VK_NUMPAD6; break; - case Keyboard::Numpad7: vkey = VK_NUMPAD7; break; - case Keyboard::Numpad8: vkey = VK_NUMPAD8; break; - case Keyboard::Numpad9: vkey = VK_NUMPAD9; break; - case Keyboard::F1: vkey = VK_F1; break; - case Keyboard::F2: vkey = VK_F2; break; - case Keyboard::F3: vkey = VK_F3; break; - case Keyboard::F4: vkey = VK_F4; break; - case Keyboard::F5: vkey = VK_F5; break; - case Keyboard::F6: vkey = VK_F6; break; - case Keyboard::F7: vkey = VK_F7; break; - case Keyboard::F8: vkey = VK_F8; break; - case Keyboard::F9: vkey = VK_F9; break; - case Keyboard::F10: vkey = VK_F10; break; - case Keyboard::F11: vkey = VK_F11; break; - case Keyboard::F12: vkey = VK_F12; break; - case Keyboard::F13: vkey = VK_F13; break; - case Keyboard::F14: vkey = VK_F14; break; - case Keyboard::F15: vkey = VK_F15; break; - case Keyboard::Pause: vkey = VK_PAUSE; break; - } - - return (GetAsyncKeyState(vkey) & 0x8000) != 0; + return isKeyPressed(unlocalize(key)); } +//////////////////////////////////////////////////////////// +bool InputImpl::isKeyPressed(Keyboard::Scancode code) +{ + auto winCode = sfScanToWin(code); + auto vkey = MapVirtualKey(winCode, MAPVK_VSC_TO_VK_EX); + auto state = GetAsyncKeyState(vkey); + return (state & 0x8000) != 0; +} + +//////////////////////////////////////////////////////////// +Keyboard::Key InputImpl::localize(Keyboard::Scancode code) +{ + // TODO + return sf::Keyboard::Unknown; +} + +//////////////////////////////////////////////////////////// +Keyboard::Scancode InputImpl::unlocalize(Keyboard::Key code) +{ + // TODO + return sf::Keyboard::ScanUnknown; +} + +//////////////////////////////////////////////////////////// +String InputImpl::getDescription(Keyboard::Scancode code) +{ + LONG lparam = sfScanToWin(code); + const int bufSize(1024); + WCHAR name[bufSize]; + int result = GetKeyNameText(lparam, name, bufSize); + if (result > 0) + { + return name; + } + return "Unknown"; +} //////////////////////////////////////////////////////////// void InputImpl::setVirtualKeyboardVisible(bool visible) @@ -251,6 +180,149 @@ Vector2i InputImpl::getTouchPosition(unsigned int /*finger*/, const WindowBase& return Vector2i(); } +//////////////////////////////////////////////////////////// +LONG InputImpl::sfScanToWin(Keyboard::Scancode code) +{ + // Windows scan codes + // Reference: https://msdn.microsoft.com/en-us/library/aa299374(v=vs.60).aspx + switch (code) + { + case Keyboard::ScanA: return 30; + case Keyboard::ScanB: return 48; + case Keyboard::ScanC: return 46; + case Keyboard::ScanD: return 32; + case Keyboard::ScanE: return 18; + case Keyboard::ScanF: return 33; + case Keyboard::ScanG: return 34; + case Keyboard::ScanH: return 35; + case Keyboard::ScanI: return 23; + case Keyboard::ScanJ: return 36; + case Keyboard::ScanK: return 37; + case Keyboard::ScanL: return 38; + case Keyboard::ScanM: return 50; + case Keyboard::ScanN: return 49; + case Keyboard::ScanO: return 24; + case Keyboard::ScanP: return 25; + case Keyboard::ScanQ: return 16; + case Keyboard::ScanR: return 19; + case Keyboard::ScanS: return 31; + case Keyboard::ScanT: return 20; + case Keyboard::ScanU: return 22; + case Keyboard::ScanV: return 47; + case Keyboard::ScanW: return 17; + case Keyboard::ScanX: return 45; + case Keyboard::ScanY: return 21; + case Keyboard::ScanZ: return 44; + + case Keyboard::ScanNum1: return 2; + case Keyboard::ScanNum2: return 3; + case Keyboard::ScanNum3: return 4; + case Keyboard::ScanNum4: return 5; + case Keyboard::ScanNum5: return 6; + case Keyboard::ScanNum6: return 7; + case Keyboard::ScanNum7: return 8; + case Keyboard::ScanNum8: return 9; + case Keyboard::ScanNum9: return 10; + case Keyboard::ScanNum0: return 11; + + case Keyboard::ScanEnter: return 28; + case Keyboard::ScanEscape: return 1; + case Keyboard::ScanBackspace: return 14; + case Keyboard::ScanTab: return 15; + case Keyboard::ScanSpace: return 57; + case Keyboard::ScanHyphen: return 12; + case Keyboard::ScanEquals: return 13; + case Keyboard::ScanLBracket: return 26; + case Keyboard::ScanRBracket: return 27; + case Keyboard::ScanBackslash: return 43; + case Keyboard::ScanDash: return 41; + case Keyboard::ScanSemicolon: return 39; + case Keyboard::ScanQuote: return 40; + //case Keyboard::ScanGraveAccent: return ? ? ? + case Keyboard::ScanComma: return 51; + case Keyboard::ScanPeriod: return 52; + case Keyboard::ScanSlash: return 53; + + case Keyboard::ScanF1: return 59; + case Keyboard::ScanF2: return 60; + case Keyboard::ScanF3: return 61; + case Keyboard::ScanF4: return 62; + case Keyboard::ScanF5: return 63; + case Keyboard::ScanF6: return 64; + case Keyboard::ScanF7: return 65; + case Keyboard::ScanF8: return 66; + case Keyboard::ScanF9: return 67; + case Keyboard::ScanF10: return 68; + case Keyboard::ScanF11: return MAKELONG(87, KF_EXTENDED); + case Keyboard::ScanF12: return MAKELONG(88, KF_EXTENDED); + //case Keyboard::ScanF13: return ??? + //case Keyboard::ScanF14: return ??? + //case Keyboard::ScanF15: return ??? + + case Keyboard::ScanCapsLock: return 58; + case Keyboard::ScanPrintScreen: return 55; + case Keyboard::ScanScrollLock: return 70; + //case Keyboard::ScanPause: return ???; + case Keyboard::ScanInsert: return 82; + case Keyboard::ScanHome: return 71; + case Keyboard::ScanPageUp: return 73; + case Keyboard::ScanDelete: return 83; + case Keyboard::ScanEnd: return 79; + case Keyboard::ScanPageDown: return 81; + case Keyboard::ScanRight: return 77; + case Keyboard::ScanLeft: return 75; + case Keyboard::ScanDown: return 80; + case Keyboard::ScanUp: return 72; + case Keyboard::ScanNumLock: return 69; + case Keyboard::ScanDivide: return 53; + //case Keyboard::ScanMultiply: return ??? ; + case Keyboard::ScanMinus: return 74; + case Keyboard::ScanPlus: return 78; + //case Keyboard::ScanPadEquals: return ???; + case Keyboard::ScanNumpadEnter: return MAKELONG(28, KF_EXTENDED); + case Keyboard::ScanDecimal: return MAKELONG(83, KF_EXTENDED); + + // Num pad keys except 5 have the extended bit (0x100) set + case Keyboard::ScanNumpad1: return MAKELONG(79, KF_EXTENDED); + case Keyboard::ScanNumpad2: return MAKELONG(80, KF_EXTENDED); + case Keyboard::ScanNumpad3: return MAKELONG(81, KF_EXTENDED); + case Keyboard::ScanNumpad4: return MAKELONG(75, KF_EXTENDED); + case Keyboard::ScanNumpad5: return 76; + case Keyboard::ScanNumpad6: return MAKELONG(77, KF_EXTENDED); + case Keyboard::ScanNumpad7: return MAKELONG(71, KF_EXTENDED); + case Keyboard::ScanNumpad8: return MAKELONG(72, KF_EXTENDED); + case Keyboard::ScanNumpad9: return MAKELONG(73, KF_EXTENDED); + case Keyboard::ScanNumpad0: return MAKELONG(82, KF_EXTENDED); + + //case Keyboard::ScanReverseSolidus: return ? ? ? ; + //case Keyboard::ScanApplication: return ? ? ? ; + //case Keyboard::ScanExecute: return ? ? ? ; + //case Keyboard::ScanHelp: return ? ? ? ; + //case Keyboard::ScanMenu: return ? ? ? ; + //case Keyboard::ScanSelect: return ? ? ? ; + //case Keyboard::ScanStop: return ? ? ? ; + //case Keyboard::ScanAgain: return ? ? ? ; + //case Keyboard::ScanUndo: return ? ? ? ; + //case Keyboard::ScanCut: return ? ? ? ; + //case Keyboard::ScanCopy: return ? ? ? ; + //case Keyboard::ScanPaste: return ? ? ? ; + //case Keyboard::ScanFind: return ? ? ? ; + //case Keyboard::ScanMute: return ? ? ? ; + //case Keyboard::ScanVolumeUp: return ? ? ? ; + //case Keyboard::ScanVolumeDown: return ? ? ? ; + case Keyboard::ScanLControl: return 29; + case Keyboard::ScanLShift: return 42; + case Keyboard::ScanLAlt: return 56; + //case Keyboard::ScanLSystem: return ? ? ? ; + case Keyboard::ScanRControl: return MAKELONG(29 ,KF_EXTENDED); + case Keyboard::ScanRShift: return 54; + case Keyboard::ScanRAlt: return 56; + //case Keyboard::ScanRSystem: return ? ? ? ; + + default: return 0; // Not sure what to return here? + } +} + } // namespace priv } // namespace sf diff --git a/src/SFML/Window/Win32/InputImpl.hpp b/src/SFML/Window/Win32/InputImpl.hpp index b145f38f..ba8f5b13 100644 --- a/src/SFML/Window/Win32/InputImpl.hpp +++ b/src/SFML/Window/Win32/InputImpl.hpp @@ -31,6 +31,7 @@ #include #include +#include namespace sf { @@ -69,7 +70,7 @@ public: static Keyboard::Scancode unlocalize(Keyboard::Key key); //////////////////////////////////////////////////////////// - /// \copydoc sf::Keyboard::localizedRepresentation + /// \copydoc sf::Keyboard::getDescription /// //////////////////////////////////////////////////////////// static String getDescription(Keyboard::Scancode code); @@ -176,6 +177,10 @@ public: /// //////////////////////////////////////////////////////////// static Vector2i getTouchPosition(unsigned int finger, const WindowBase& relativeTo); + + private: + + static LONG sfScanToWin(Keyboard::Scancode code); }; } // namespace priv diff --git a/src/SFML/Window/Win32/WindowImplWin32.cpp b/src/SFML/Window/Win32/WindowImplWin32.cpp old mode 100755 new mode 100644 index e9d1c18b..e6b63496 --- a/src/SFML/Window/Win32/WindowImplWin32.cpp +++ b/src/SFML/Window/Win32/WindowImplWin32.cpp @@ -557,6 +557,104 @@ void WindowImplWin32::grabCursor(bool grabbed) } } +//////////////////////////////////////////////////////////// +Keyboard::Scancode WindowImplWin32::toScancode(LPARAM flags) +{ + int code = ((flags & (0xFF << 16)) >> 16); + + // Windows scan codes + // Reference: https://msdn.microsoft.com/en-us/library/aa299374(v=vs.60).aspx + switch (code) + { + case 1: return Keyboard::ScanEscape; + case 2: return Keyboard::ScanNum1; + case 3: return Keyboard::ScanNum2; + case 4: return Keyboard::ScanNum3; + case 5: return Keyboard::ScanNum4; + case 6: return Keyboard::ScanNum5; + case 7: return Keyboard::ScanNum6; + case 8: return Keyboard::ScanNum7; + case 9: return Keyboard::ScanNum8; + case 10: return Keyboard::ScanNum9; + case 11: return Keyboard::ScanNum0; + case 12: return Keyboard::ScanHyphen; + case 13: return Keyboard::ScanEquals; + case 14: return Keyboard::ScanBackspace; + case 15: return Keyboard::ScanTab; + case 16: return Keyboard::ScanQ; + case 17: return Keyboard::ScanW; + case 18: return Keyboard::ScanE; + case 19: return Keyboard::ScanR; + case 20: return Keyboard::ScanT; + case 21: return Keyboard::ScanY; + case 22: return Keyboard::ScanU; + case 23: return Keyboard::ScanI; + case 24: return Keyboard::ScanO; + case 25: return Keyboard::ScanP; + case 26: return Keyboard::ScanLBracket; + case 27: return Keyboard::ScanRBracket; + case 28: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanEnter : Keyboard::ScanReturn; + case 29: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanRControl : Keyboard::ScanLControl; + case 30: return Keyboard::ScanA; + case 31: return Keyboard::ScanS; + case 32: return Keyboard::ScanD; + case 33: return Keyboard::ScanF; + case 34: return Keyboard::ScanG; + case 35: return Keyboard::ScanH; + case 36: return Keyboard::ScanJ; + case 37: return Keyboard::ScanK; + case 38: return Keyboard::ScanL; + case 39: return Keyboard::ScanSemicolon; + case 40: return Keyboard::ScanQuote; + case 41: return Keyboard::ScanBackslash; + case 42: return Keyboard::ScanLShift; + case 43: return Keyboard::ScanDash; + case 44: return Keyboard::ScanZ; + case 45: return Keyboard::ScanX; + case 46: return Keyboard::ScanC; + case 47: return Keyboard::ScanV; + case 48: return Keyboard::ScanB; + case 49: return Keyboard::ScanN; + case 50: return Keyboard::ScanM; + case 51: return Keyboard::ScanComma; + case 52: return Keyboard::ScanPeriod; + case 53: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDivide : Keyboard::ScanForwardSlash; + case 54: return Keyboard::ScanRShift; + case 55: return Keyboard::ScanPrintScreen; + case 56: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanRAlt : Keyboard::ScanLAlt; + case 57: return Keyboard::ScanSpace; + case 58: return Keyboard::ScanCapsLock; + case 59: return Keyboard::ScanF1; + case 60: return Keyboard::ScanF2; + case 61: return Keyboard::ScanF3; + case 62: return Keyboard::ScanF4; + case 63: return Keyboard::ScanF5; + case 64: return Keyboard::ScanF6; + case 65: return Keyboard::ScanF7; + case 66: return Keyboard::ScanF8; + case 67: return Keyboard::ScanF9; + case 68: return Keyboard::ScanF10; + case 87: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanUnknown : Keyboard::ScanF11; + case 88: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanUnknown : Keyboard::ScanF12; + case 69: return Keyboard::ScanNumLock; + case 70: return Keyboard::ScanScrollLock; + case 71: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanHome : Keyboard::ScanNumpad7; + case 72: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanUp : Keyboard::ScanNumpad8; + case 73: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanPageUp : Keyboard::ScanNumpad9; + case 74: return Keyboard::ScanMinus; + case 75: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanLeft : Keyboard::ScanNumpad4; + case 76: return Keyboard::ScanNumpad5; + case 77: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanRight : Keyboard::ScanNumpad6; + case 78: return Keyboard::ScanPlus; + case 79: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanEnd : Keyboard::ScanNumpad1; + case 80: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDown : Keyboard::ScanNumpad2; + case 81: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanPageDown : Keyboard::ScanNumpad3; + case 82: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanInsert : Keyboard::ScanNumpad0; + case 83: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDecimal : Keyboard::ScanNumpad4; + + default: return Keyboard::ScanUnknown; + } +} //////////////////////////////////////////////////////////// void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam) @@ -726,12 +824,13 @@ void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam) if (m_keyRepeatEnabled || ((HIWORD(lParam) & KF_REPEAT) == 0)) { Event event; - event.type = Event::KeyPressed; - event.key.alt = HIWORD(GetKeyState(VK_MENU)) != 0; - event.key.control = HIWORD(GetKeyState(VK_CONTROL)) != 0; - event.key.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0; - event.key.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN)); - event.key.code = virtualKeyCodeToSF(wParam, lParam); + event.type = Event::KeyPressed; + event.key.alt = HIWORD(GetKeyState(VK_MENU)) != 0; + event.key.control = HIWORD(GetKeyState(VK_CONTROL)) != 0; + event.key.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0; + event.key.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN)); + event.key.scancode = toScancode(lParam); + event.key.code = virtualKeyCodeToSF(wParam, lParam, event.key.scancode); pushEvent(event); } break; @@ -742,12 +841,13 @@ void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam) case WM_SYSKEYUP: { Event event; - event.type = Event::KeyReleased; - event.key.alt = HIWORD(GetKeyState(VK_MENU)) != 0; - event.key.control = HIWORD(GetKeyState(VK_CONTROL)) != 0; - event.key.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0; - event.key.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN)); - event.key.code = virtualKeyCodeToSF(wParam, lParam); + event.type = Event::KeyReleased; + event.key.alt = HIWORD(GetKeyState(VK_MENU)) != 0; + event.key.control = HIWORD(GetKeyState(VK_CONTROL)) != 0; + event.key.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0; + event.key.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN)); + event.key.scancode = toScancode(lParam); + event.key.code = virtualKeyCodeToSF(wParam, lParam, event.key.scancode); pushEvent(event); break; } @@ -998,7 +1098,7 @@ void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam) //////////////////////////////////////////////////////////// -Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags) +Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags, Keyboard::Scancode code) { switch (key) { @@ -1006,8 +1106,7 @@ Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags) case VK_SHIFT: { static UINT lShift = MapVirtualKeyW(VK_LSHIFT, MAPVK_VK_TO_VSC); - UINT scancode = static_cast((flags & (0xFF << 16)) >> 16); - return scancode == lShift ? Keyboard::LShift : Keyboard::RShift; + return code == lShift ? Keyboard::LShift : Keyboard::RShift; } // Check the "extended" flag to distinguish between left and right alt diff --git a/src/SFML/Window/Win32/WindowImplWin32.hpp b/src/SFML/Window/Win32/WindowImplWin32.hpp index ba2f662d..a43488b4 100755 --- a/src/SFML/Window/Win32/WindowImplWin32.hpp +++ b/src/SFML/Window/Win32/WindowImplWin32.hpp @@ -254,7 +254,17 @@ private: /// \return SFML key code corresponding to the key /// //////////////////////////////////////////////////////////// - static Keyboard::Key virtualKeyCodeToSF(WPARAM key, LPARAM flags); + static Keyboard::Key virtualKeyCodeToSF(WPARAM key, LPARAM flags, Keyboard::Scancode code); + + //////////////////////////////////////////////////////////// + /// \brief Convert win32 message flags to scancode + /// + /// \param lParam The message flags + /// + /// \return The scancode corresponding to the key + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode convertToScancode(LPARAM flags); //////////////////////////////////////////////////////////// /// \brief Function called whenever one of our windows receives a message @@ -269,6 +279,16 @@ private: //////////////////////////////////////////////////////////// static LRESULT CALLBACK globalOnEvent(HWND handle, UINT message, WPARAM wParam, LPARAM lParam); + //////////////////////////////////////////////////////////// + /// \brief Convert a Win32 scancode to an sfml scancode + /// + /// \param flags input flags + /// + /// \return SFML scancode corresponding to the key + /// + //////////////////////////////////////////////////////////// + static Keyboard::Scancode toScancode(LPARAM flags); + //////////////////////////////////////////////////////////// // Member data //////////////////////////////////////////////////////////// From 950d10c49f55f485a84f656b15f078cb2aff62c8 Mon Sep 17 00:00:00 2001 From: "jonathan.r.paton@googlemail.com" Date: Wed, 4 Oct 2017 15:21:18 +0100 Subject: [PATCH 09/36] Added and fixed some scancodes --- src/SFML/Window/Win32/InputImpl.cpp | 288 +++++++++++++++------- src/SFML/Window/Win32/InputImpl.hpp | 2 +- src/SFML/Window/Win32/WindowImplWin32.cpp | 18 +- src/SFML/Window/Win32/WindowImplWin32.hpp | 2 +- 4 files changed, 210 insertions(+), 100 deletions(-) diff --git a/src/SFML/Window/Win32/InputImpl.cpp b/src/SFML/Window/Win32/InputImpl.cpp index 07ccef37..4d624afd 100644 --- a/src/SFML/Window/Win32/InputImpl.cpp +++ b/src/SFML/Window/Win32/InputImpl.cpp @@ -45,7 +45,114 @@ namespace priv //////////////////////////////////////////////////////////// bool InputImpl::isKeyPressed(Keyboard::Key key) { - return isKeyPressed(unlocalize(key)); + int vkey = 0; + switch (key) + { + default: vkey = 0; break; + case Keyboard::A: vkey = 'A'; break; + case Keyboard::B: vkey = 'B'; break; + case Keyboard::C: vkey = 'C'; break; + case Keyboard::D: vkey = 'D'; break; + case Keyboard::E: vkey = 'E'; break; + case Keyboard::F: vkey = 'F'; break; + case Keyboard::G: vkey = 'G'; break; + case Keyboard::H: vkey = 'H'; break; + case Keyboard::I: vkey = 'I'; break; + case Keyboard::J: vkey = 'J'; break; + case Keyboard::K: vkey = 'K'; break; + case Keyboard::L: vkey = 'L'; break; + case Keyboard::M: vkey = 'M'; break; + case Keyboard::N: vkey = 'N'; break; + case Keyboard::O: vkey = 'O'; break; + case Keyboard::P: vkey = 'P'; break; + case Keyboard::Q: vkey = 'Q'; break; + case Keyboard::R: vkey = 'R'; break; + case Keyboard::S: vkey = 'S'; break; + case Keyboard::T: vkey = 'T'; break; + case Keyboard::U: vkey = 'U'; break; + case Keyboard::V: vkey = 'V'; break; + case Keyboard::W: vkey = 'W'; break; + case Keyboard::X: vkey = 'X'; break; + case Keyboard::Y: vkey = 'Y'; break; + case Keyboard::Z: vkey = 'Z'; break; + case Keyboard::Num0: vkey = '0'; break; + case Keyboard::Num1: vkey = '1'; break; + case Keyboard::Num2: vkey = '2'; break; + case Keyboard::Num3: vkey = '3'; break; + case Keyboard::Num4: vkey = '4'; break; + case Keyboard::Num5: vkey = '5'; break; + case Keyboard::Num6: vkey = '6'; break; + case Keyboard::Num7: vkey = '7'; break; + case Keyboard::Num8: vkey = '8'; break; + case Keyboard::Num9: vkey = '9'; break; + case Keyboard::Escape: vkey = VK_ESCAPE; break; + case Keyboard::LControl: vkey = VK_LCONTROL; break; + case Keyboard::LShift: vkey = VK_LSHIFT; break; + case Keyboard::LAlt: vkey = VK_LMENU; break; + case Keyboard::LSystem: vkey = VK_LWIN; break; + case Keyboard::RControl: vkey = VK_RCONTROL; break; + case Keyboard::RShift: vkey = VK_RSHIFT; break; + case Keyboard::RAlt: vkey = VK_RMENU; break; + case Keyboard::RSystem: vkey = VK_RWIN; break; + case Keyboard::Menu: vkey = VK_APPS; break; + case Keyboard::LBracket: vkey = VK_OEM_4; break; + case Keyboard::RBracket: vkey = VK_OEM_6; break; + case Keyboard::SemiColon: vkey = VK_OEM_1; break; + case Keyboard::Comma: vkey = VK_OEM_COMMA; break; + case Keyboard::Period: vkey = VK_OEM_PERIOD; break; + case Keyboard::Quote: vkey = VK_OEM_7; break; + case Keyboard::Slash: vkey = VK_OEM_2; break; + case Keyboard::BackSlash: vkey = VK_OEM_5; break; + case Keyboard::Tilde: vkey = VK_OEM_3; break; + case Keyboard::Equal: vkey = VK_OEM_PLUS; break; + case Keyboard::Dash: vkey = VK_OEM_MINUS; break; + case Keyboard::Space: vkey = VK_SPACE; break; + case Keyboard::Return: vkey = VK_RETURN; break; + case Keyboard::BackSpace: vkey = VK_BACK; break; + case Keyboard::Tab: vkey = VK_TAB; break; + case Keyboard::PageUp: vkey = VK_PRIOR; break; + case Keyboard::PageDown: vkey = VK_NEXT; break; + case Keyboard::End: vkey = VK_END; break; + case Keyboard::Home: vkey = VK_HOME; break; + case Keyboard::Insert: vkey = VK_INSERT; break; + case Keyboard::Delete: vkey = VK_DELETE; break; + case Keyboard::Add: vkey = VK_ADD; break; + case Keyboard::Subtract: vkey = VK_SUBTRACT; break; + case Keyboard::Multiply: vkey = VK_MULTIPLY; break; + case Keyboard::Divide: vkey = VK_DIVIDE; break; + case Keyboard::Left: vkey = VK_LEFT; break; + case Keyboard::Right: vkey = VK_RIGHT; break; + case Keyboard::Up: vkey = VK_UP; break; + case Keyboard::Down: vkey = VK_DOWN; break; + case Keyboard::Numpad0: vkey = VK_NUMPAD0; break; + case Keyboard::Numpad1: vkey = VK_NUMPAD1; break; + case Keyboard::Numpad2: vkey = VK_NUMPAD2; break; + case Keyboard::Numpad3: vkey = VK_NUMPAD3; break; + case Keyboard::Numpad4: vkey = VK_NUMPAD4; break; + case Keyboard::Numpad5: vkey = VK_NUMPAD5; break; + case Keyboard::Numpad6: vkey = VK_NUMPAD6; break; + case Keyboard::Numpad7: vkey = VK_NUMPAD7; break; + case Keyboard::Numpad8: vkey = VK_NUMPAD8; break; + case Keyboard::Numpad9: vkey = VK_NUMPAD9; break; + case Keyboard::F1: vkey = VK_F1; break; + case Keyboard::F2: vkey = VK_F2; break; + case Keyboard::F3: vkey = VK_F3; break; + case Keyboard::F4: vkey = VK_F4; break; + case Keyboard::F5: vkey = VK_F5; break; + case Keyboard::F6: vkey = VK_F6; break; + case Keyboard::F7: vkey = VK_F7; break; + case Keyboard::F8: vkey = VK_F8; break; + case Keyboard::F9: vkey = VK_F9; break; + case Keyboard::F10: vkey = VK_F10; break; + case Keyboard::F11: vkey = VK_F11; break; + case Keyboard::F12: vkey = VK_F12; break; + case Keyboard::F13: vkey = VK_F13; break; + case Keyboard::F14: vkey = VK_F14; break; + case Keyboard::F15: vkey = VK_F15; break; + case Keyboard::Pause: vkey = VK_PAUSE; break; + } + + return (GetAsyncKeyState(vkey) & 0x8000) != 0; } //////////////////////////////////////////////////////////// @@ -74,10 +181,10 @@ Keyboard::Scancode InputImpl::unlocalize(Keyboard::Key code) //////////////////////////////////////////////////////////// String InputImpl::getDescription(Keyboard::Scancode code) { - LONG lparam = sfScanToWin(code); + WORD winCode = sfScanToWin(code); const int bufSize(1024); WCHAR name[bufSize]; - int result = GetKeyNameText(lparam, name, bufSize); + int result = GetKeyNameText(winCode << 16, name, bufSize); if (result > 0) { return name; @@ -181,7 +288,7 @@ Vector2i InputImpl::getTouchPosition(unsigned int /*finger*/, const WindowBase& } //////////////////////////////////////////////////////////// -LONG InputImpl::sfScanToWin(Keyboard::Scancode code) +WORD InputImpl::sfScanToWin(Keyboard::Scancode code) { // Windows scan codes // Reference: https://msdn.microsoft.com/en-us/library/aa299374(v=vs.60).aspx @@ -225,99 +332,98 @@ LONG InputImpl::sfScanToWin(Keyboard::Scancode code) case Keyboard::ScanNum9: return 10; case Keyboard::ScanNum0: return 11; - case Keyboard::ScanEnter: return 28; - case Keyboard::ScanEscape: return 1; - case Keyboard::ScanBackspace: return 14; - case Keyboard::ScanTab: return 15; - case Keyboard::ScanSpace: return 57; - case Keyboard::ScanHyphen: return 12; - case Keyboard::ScanEquals: return 13; - case Keyboard::ScanLBracket: return 26; - case Keyboard::ScanRBracket: return 27; - case Keyboard::ScanBackslash: return 43; - case Keyboard::ScanDash: return 41; - case Keyboard::ScanSemicolon: return 39; - case Keyboard::ScanQuote: return 40; - //case Keyboard::ScanGraveAccent: return ? ? ? - case Keyboard::ScanComma: return 51; - case Keyboard::ScanPeriod: return 52; - case Keyboard::ScanSlash: return 53; + case Keyboard::ScanEnter: return 28; + case Keyboard::ScanEscape: return 1; + case Keyboard::ScanBackspace: return 14; + case Keyboard::ScanTab: return 15; + case Keyboard::ScanSpace: return 57; + case Keyboard::ScanHyphen: return 12; + case Keyboard::ScanEquals: return 13; + case Keyboard::ScanLBracket: return 26; + case Keyboard::ScanRBracket: return 27; + case Keyboard::ScanBackslash: return 43; + case Keyboard::ScanDash: return 41; + case Keyboard::ScanSemicolon: return 39; + case Keyboard::ScanQuote: return 40; + //case Keyboard::ScanGraveAccent: return ? ? ? + case Keyboard::ScanComma: return 51; + case Keyboard::ScanPeriod: return 52; + case Keyboard::ScanSlash: return 53; - case Keyboard::ScanF1: return 59; - case Keyboard::ScanF2: return 60; - case Keyboard::ScanF3: return 61; - case Keyboard::ScanF4: return 62; - case Keyboard::ScanF5: return 63; - case Keyboard::ScanF6: return 64; - case Keyboard::ScanF7: return 65; - case Keyboard::ScanF8: return 66; - case Keyboard::ScanF9: return 67; - case Keyboard::ScanF10: return 68; - case Keyboard::ScanF11: return MAKELONG(87, KF_EXTENDED); - case Keyboard::ScanF12: return MAKELONG(88, KF_EXTENDED); - //case Keyboard::ScanF13: return ??? - //case Keyboard::ScanF14: return ??? - //case Keyboard::ScanF15: return ??? + case Keyboard::ScanF1: return 59; + case Keyboard::ScanF2: return 60; + case Keyboard::ScanF3: return 61; + case Keyboard::ScanF4: return 62; + case Keyboard::ScanF5: return 63; + case Keyboard::ScanF6: return 64; + case Keyboard::ScanF7: return 65; + case Keyboard::ScanF8: return 66; + case Keyboard::ScanF9: return 67; + case Keyboard::ScanF10: return 68; + case Keyboard::ScanF11: return KF_EXTENDED | 87; + case Keyboard::ScanF12: return KF_EXTENDED | 88; + //case Keyboard::ScanF13: return ??? + //case Keyboard::ScanF14: return ??? + //case Keyboard::ScanF15: return ??? - case Keyboard::ScanCapsLock: return 58; - case Keyboard::ScanPrintScreen: return 55; - case Keyboard::ScanScrollLock: return 70; - //case Keyboard::ScanPause: return ???; - case Keyboard::ScanInsert: return 82; - case Keyboard::ScanHome: return 71; - case Keyboard::ScanPageUp: return 73; - case Keyboard::ScanDelete: return 83; - case Keyboard::ScanEnd: return 79; - case Keyboard::ScanPageDown: return 81; - case Keyboard::ScanRight: return 77; - case Keyboard::ScanLeft: return 75; - case Keyboard::ScanDown: return 80; - case Keyboard::ScanUp: return 72; - case Keyboard::ScanNumLock: return 69; - case Keyboard::ScanDivide: return 53; - //case Keyboard::ScanMultiply: return ??? ; - case Keyboard::ScanMinus: return 74; - case Keyboard::ScanPlus: return 78; + case Keyboard::ScanCapsLock: return 58; + case Keyboard::ScanPrintScreen: return 55 | KF_EXTENDED; + case Keyboard::ScanScrollLock: return 70; + case Keyboard::ScanPause: return 69; + case Keyboard::ScanInsert: return 82 | KF_EXTENDED; + case Keyboard::ScanHome: return 71 | KF_EXTENDED; + case Keyboard::ScanPageUp: return 73 | KF_EXTENDED; + case Keyboard::ScanDelete: return 83 | KF_EXTENDED; + case Keyboard::ScanEnd: return 79 | KF_EXTENDED; + case Keyboard::ScanPageDown: return 81 | KF_EXTENDED; + case Keyboard::ScanRight: return 77 | KF_EXTENDED; + case Keyboard::ScanLeft: return 75 | KF_EXTENDED; + case Keyboard::ScanDown: return 80 | KF_EXTENDED; + case Keyboard::ScanUp: return 72 | KF_EXTENDED; + case Keyboard::ScanNumLock: return 69 | KF_EXTENDED; + case Keyboard::ScanDivide: return 53; + case Keyboard::ScanMultiply: return 55; + case Keyboard::ScanMinus: return 74; + case Keyboard::ScanPlus: return 78; //case Keyboard::ScanPadEquals: return ???; - case Keyboard::ScanNumpadEnter: return MAKELONG(28, KF_EXTENDED); - case Keyboard::ScanDecimal: return MAKELONG(83, KF_EXTENDED); + case Keyboard::ScanNumpadEnter: return KF_EXTENDED | 28; + case Keyboard::ScanDecimal: return 83; - // Num pad keys except 5 have the extended bit (0x100) set - case Keyboard::ScanNumpad1: return MAKELONG(79, KF_EXTENDED); - case Keyboard::ScanNumpad2: return MAKELONG(80, KF_EXTENDED); - case Keyboard::ScanNumpad3: return MAKELONG(81, KF_EXTENDED); - case Keyboard::ScanNumpad4: return MAKELONG(75, KF_EXTENDED); + case Keyboard::ScanNumpad1: return 79; + case Keyboard::ScanNumpad2: return 80; + case Keyboard::ScanNumpad3: return 81 ; + case Keyboard::ScanNumpad4: return 75 ; case Keyboard::ScanNumpad5: return 76; - case Keyboard::ScanNumpad6: return MAKELONG(77, KF_EXTENDED); - case Keyboard::ScanNumpad7: return MAKELONG(71, KF_EXTENDED); - case Keyboard::ScanNumpad8: return MAKELONG(72, KF_EXTENDED); - case Keyboard::ScanNumpad9: return MAKELONG(73, KF_EXTENDED); - case Keyboard::ScanNumpad0: return MAKELONG(82, KF_EXTENDED); + case Keyboard::ScanNumpad6: return 77 ; + case Keyboard::ScanNumpad7: return 71 ; + case Keyboard::ScanNumpad8: return 72 ; + case Keyboard::ScanNumpad9: return 73 ; + case Keyboard::ScanNumpad0: return 82 ; - //case Keyboard::ScanReverseSolidus: return ? ? ? ; - //case Keyboard::ScanApplication: return ? ? ? ; - //case Keyboard::ScanExecute: return ? ? ? ; - //case Keyboard::ScanHelp: return ? ? ? ; - //case Keyboard::ScanMenu: return ? ? ? ; - //case Keyboard::ScanSelect: return ? ? ? ; - //case Keyboard::ScanStop: return ? ? ? ; - //case Keyboard::ScanAgain: return ? ? ? ; - //case Keyboard::ScanUndo: return ? ? ? ; - //case Keyboard::ScanCut: return ? ? ? ; - //case Keyboard::ScanCopy: return ? ? ? ; - //case Keyboard::ScanPaste: return ? ? ? ; - //case Keyboard::ScanFind: return ? ? ? ; - //case Keyboard::ScanMute: return ? ? ? ; - //case Keyboard::ScanVolumeUp: return ? ? ? ; - //case Keyboard::ScanVolumeDown: return ? ? ? ; - case Keyboard::ScanLControl: return 29; - case Keyboard::ScanLShift: return 42; - case Keyboard::ScanLAlt: return 56; - //case Keyboard::ScanLSystem: return ? ? ? ; - case Keyboard::ScanRControl: return MAKELONG(29 ,KF_EXTENDED); - case Keyboard::ScanRShift: return 54; - case Keyboard::ScanRAlt: return 56; - //case Keyboard::ScanRSystem: return ? ? ? ; + //case Keyboard::ScanReverseSolidus: return ? ? ? ; + //case Keyboard::ScanApplication: return ? ? ? ; + //case Keyboard::ScanExecute: return ? ? ? ; + //case Keyboard::ScanHelp: return ? ? ? ; + case Keyboard::ScanMenu: return 93 | KF_EXTENDED; + //case Keyboard::ScanSelect: return ? ? ? ; + //case Keyboard::ScanStop: return ? ? ? ; + //case Keyboard::ScanAgain: return ? ? ? ; + //case Keyboard::ScanUndo: return ? ? ? ; + //case Keyboard::ScanCut: return ? ? ? ; + //case Keyboard::ScanCopy: return ? ? ? ; + //case Keyboard::ScanPaste: return ? ? ? ; + //case Keyboard::ScanFind: return ? ? ? ; + //case Keyboard::ScanMute: return ? ? ? ; + //case Keyboard::ScanVolumeUp: return ? ? ? ; + //case Keyboard::ScanVolumeDown: return ? ? ? ; + case Keyboard::ScanLControl: return 29; + case Keyboard::ScanLShift: return 42; + case Keyboard::ScanLAlt: return 56; + case Keyboard::ScanLSystem: return 91 | KF_EXTENDED ; + case Keyboard::ScanRControl: return KF_EXTENDED | 29; + case Keyboard::ScanRShift: return 54; + case Keyboard::ScanRAlt: return 56; + //case Keyboard::ScanRSystem: return ? ? ? ; default: return 0; // Not sure what to return here? } diff --git a/src/SFML/Window/Win32/InputImpl.hpp b/src/SFML/Window/Win32/InputImpl.hpp index ba8f5b13..3386fe7f 100644 --- a/src/SFML/Window/Win32/InputImpl.hpp +++ b/src/SFML/Window/Win32/InputImpl.hpp @@ -180,7 +180,7 @@ public: private: - static LONG sfScanToWin(Keyboard::Scancode code); + static WORD sfScanToWin(Keyboard::Scancode code); }; } // namespace priv diff --git a/src/SFML/Window/Win32/WindowImplWin32.cpp b/src/SFML/Window/Win32/WindowImplWin32.cpp index e6b63496..45136e09 100644 --- a/src/SFML/Window/Win32/WindowImplWin32.cpp +++ b/src/SFML/Window/Win32/WindowImplWin32.cpp @@ -620,7 +620,7 @@ Keyboard::Scancode WindowImplWin32::toScancode(LPARAM flags) case 52: return Keyboard::ScanPeriod; case 53: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDivide : Keyboard::ScanForwardSlash; case 54: return Keyboard::ScanRShift; - case 55: return Keyboard::ScanPrintScreen; + case 55: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanPrintScreen : Keyboard::ScanMultiply; case 56: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanRAlt : Keyboard::ScanLAlt; case 57: return Keyboard::ScanSpace; case 58: return Keyboard::ScanCapsLock; @@ -636,7 +636,7 @@ Keyboard::Scancode WindowImplWin32::toScancode(LPARAM flags) case 68: return Keyboard::ScanF10; case 87: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanUnknown : Keyboard::ScanF11; case 88: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanUnknown : Keyboard::ScanF12; - case 69: return Keyboard::ScanNumLock; + case 69: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanNumLock : Keyboard::ScanPause; case 70: return Keyboard::ScanScrollLock; case 71: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanHome : Keyboard::ScanNumpad7; case 72: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanUp : Keyboard::ScanNumpad8; @@ -650,7 +650,10 @@ Keyboard::Scancode WindowImplWin32::toScancode(LPARAM flags) case 80: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDown : Keyboard::ScanNumpad2; case 81: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanPageDown : Keyboard::ScanNumpad3; case 82: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanInsert : Keyboard::ScanNumpad0; - case 83: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDecimal : Keyboard::ScanNumpad4; + case 83: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDelete : Keyboard::ScanDecimal; + + case 91: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanLSystem : Keyboard::ScanUnknown; + case 93: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanMenu : Keyboard::ScanUnknown; default: return Keyboard::ScanUnknown; } @@ -830,7 +833,7 @@ void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam) event.key.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0; event.key.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN)); event.key.scancode = toScancode(lParam); - event.key.code = virtualKeyCodeToSF(wParam, lParam, event.key.scancode); + event.key.code = virtualKeyCodeToSF(wParam, lParam); pushEvent(event); } break; @@ -847,7 +850,7 @@ void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam) event.key.shift = HIWORD(GetKeyState(VK_SHIFT)) != 0; event.key.system = HIWORD(GetKeyState(VK_LWIN)) || HIWORD(GetKeyState(VK_RWIN)); event.key.scancode = toScancode(lParam); - event.key.code = virtualKeyCodeToSF(wParam, lParam, event.key.scancode); + event.key.code = virtualKeyCodeToSF(wParam, lParam); pushEvent(event); break; } @@ -1098,7 +1101,7 @@ void WindowImplWin32::processEvent(UINT message, WPARAM wParam, LPARAM lParam) //////////////////////////////////////////////////////////// -Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags, Keyboard::Scancode code) +Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags) { switch (key) { @@ -1106,7 +1109,8 @@ Keyboard::Key WindowImplWin32::virtualKeyCodeToSF(WPARAM key, LPARAM flags, Keyb case VK_SHIFT: { static UINT lShift = MapVirtualKeyW(VK_LSHIFT, MAPVK_VK_TO_VSC); - return code == lShift ? Keyboard::LShift : Keyboard::RShift; + UINT scancode = static_cast((flags & (0xFF << 16)) >> 16); + return scancode == lShift ? Keyboard::LShift : Keyboard::RShift; } // Check the "extended" flag to distinguish between left and right alt diff --git a/src/SFML/Window/Win32/WindowImplWin32.hpp b/src/SFML/Window/Win32/WindowImplWin32.hpp index a43488b4..6742f953 100755 --- a/src/SFML/Window/Win32/WindowImplWin32.hpp +++ b/src/SFML/Window/Win32/WindowImplWin32.hpp @@ -254,7 +254,7 @@ private: /// \return SFML key code corresponding to the key /// //////////////////////////////////////////////////////////// - static Keyboard::Key virtualKeyCodeToSF(WPARAM key, LPARAM flags, Keyboard::Scancode code); + static Keyboard::Key virtualKeyCodeToSF(WPARAM key, LPARAM flags); //////////////////////////////////////////////////////////// /// \brief Convert win32 message flags to scancode From fdeb89a19163765d2234ff67cea35999fb663195 Mon Sep 17 00:00:00 2001 From: "jonathan.r.paton@googlemail.com" Date: Wed, 4 Oct 2017 15:26:52 +0100 Subject: [PATCH 10/36] Removed rogue declaration --- src/SFML/Window/Win32/WindowImplWin32.hpp | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/src/SFML/Window/Win32/WindowImplWin32.hpp b/src/SFML/Window/Win32/WindowImplWin32.hpp index 6742f953..a5ae5e08 100755 --- a/src/SFML/Window/Win32/WindowImplWin32.hpp +++ b/src/SFML/Window/Win32/WindowImplWin32.hpp @@ -256,16 +256,6 @@ private: //////////////////////////////////////////////////////////// static Keyboard::Key virtualKeyCodeToSF(WPARAM key, LPARAM flags); - //////////////////////////////////////////////////////////// - /// \brief Convert win32 message flags to scancode - /// - /// \param lParam The message flags - /// - /// \return The scancode corresponding to the key - /// - //////////////////////////////////////////////////////////// - static Keyboard::Scancode convertToScancode(LPARAM flags); - //////////////////////////////////////////////////////////// /// \brief Function called whenever one of our windows receives a message /// From f0066f2affb154b85b7dc19ff82da85570cdeab2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Wed, 22 Jan 2020 16:02:12 +0100 Subject: [PATCH 11/36] Resolve additional merge conflicts --- include/SFML/Window/Keyboard.hpp | 152 ---------------------- src/SFML/Window/Win32/WindowImplWin32.cpp | 4 +- 2 files changed, 2 insertions(+), 154 deletions(-) diff --git a/include/SFML/Window/Keyboard.hpp b/include/SFML/Window/Keyboard.hpp index 9d3a0241..6e6f8105 100644 --- a/include/SFML/Window/Keyboard.hpp +++ b/include/SFML/Window/Keyboard.hpp @@ -318,158 +318,6 @@ public: ScanCodeCount ///< Keep last -- the total number of scancodes }; - //////////////////////////////////////////////////////////// - /// \brief Scancodes - /// - /// The enumerators are bound to a physical key and do *not* depend - /// on 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. - /// - /// The scancodes are based on a subset of Table 12: Keyboard/Keypad Page - /// of Universal Serial Bus (USB): HID Usage Tables, v1.12. - /// - /// \todo When porting this for SFML 3, remove the `s` prefix and use - /// enum class. - /// - //////////////////////////////////////////////////////////// - enum Scancode - { - sUnknown = -1, ///< Represents any scancode not present in this enum - sA = 0, ///< Keyboard a and A key - sB, ///< Keyboard b and B key - sC, ///< Keyboard c and C key - sD, ///< Keyboard d and D key - sE, ///< Keyboard e and E key - sF, ///< Keyboard f and F key - sG, ///< Keyboard g and G key - sH, ///< Keyboard h and H key - sI, ///< Keyboard i and I key - sJ, ///< Keyboard j and J key - sK, ///< Keyboard k and K key - sL, ///< Keyboard l and L key - sM, ///< Keyboard m and M key - sN, ///< Keyboard n and N key - sO, ///< Keyboard o and O key - sP, ///< Keyboard p and P key - sQ, ///< Keyboard q and Q key - sR, ///< Keyboard r and R key - sS, ///< Keyboard s and S key - sT, ///< Keyboard t and T key - sU, ///< Keyboard u and U key - sV, ///< Keyboard v and V key - sW, ///< Keyboard w and W key - sX, ///< Keyboard x and X key - sY, ///< Keyboard y and Y key - sZ, ///< Keyboard z and Z key - sNum1, ///< Keyboard 1 and ! key - sNum2, ///< Keyboard 2 and @ key - sNum3, ///< Keyboard 3 and # key - sNum4, ///< Keyboard 4 and $ key - sNum5, ///< Keyboard 5 and % key - sNum6, ///< Keyboard 6 and ^ key - sNum7, ///< Keyboard 7 and & key - sNum8, ///< Keyboard 8 and * key - sNum9, ///< Keyboard 9 and ) key - sNum0, ///< Keyboard 0 and ) key - sEnter, ///< Keyboard Return (ENTER) key - sEscape, ///< Keyboard Escape key - sBackspace, ///< Keyboard Backspace key - // TODO above it's BackSpace, but is it correct? What do we use here? - sTab, ///< Keyboard Tab key - sSpace, ///< Keyboard Space key - sHyphen, ///< Keyboard - and _ key - sEquals, ///< Keyboard = and + - sLBracket, ///< Keyboard [ and { key - sRBracket, ///< Keyboard ] and } key - sBackslash, ///< Keyboard \ and | key - // TODO capitalisation - sDash, ///< Keyboard Non-US # and ~ - sSemicolon, ///< Keyboard ; and : key - // TODO capitalisation - sQuote, ///< Keyboard ' and " key - sGraveAccent, ///< Keyboard ` and ~ key - sComma, ///< Keyboard , and < key - sPeriod, ///< Keyboard . and > key - sForwardSlash, ///< Keyboard / and ? key - sF1, ///< Keyboard F1 key - sF2, ///< Keyboard F2 key - sF3, ///< Keyboard F3 key - sF4, ///< Keyboard F4 key - sF5, ///< Keyboard F5 key - sF6, ///< Keyboard F6 key - sF7, ///< Keyboard F7 key - sF8, ///< Keyboard F8 key - sF9, ///< Keyboard F9 key - sF10, ///< Keyboard F10 key - sF11, ///< Keyboard F11 key - sF12, ///< Keyboard F12 key - sF13, ///< Keyboard F13 key - sF14, ///< Keyboard F14 key - sF15, ///< Keyboard F15 key - sCapsLock, ///< Keyboard Caps Lock key - sPrintScreen, ///< Keyboard Print Screen key - sScrollLock, ///< Keyboard Scroll Lock key - sPause, ///< Keyboard Pause key - sInsert, ///< Keyboard Insert key - sHome, ///< Keyboard Home key - sPageUp, ///< Keyboard Page Up key - sDelete, ///< Keyboard Delete Forward key - sEnd, ///< Keyboard End key - sPageDown, ///< Keyboard Page Down key - sRight, ///< Keyboard Right Arrow key - sLeft, ///< Keyboard Left Arrow key - sDown, ///< Keyboard Down Arrow key - sUp, ///< Keyboard Up Arrow key - sNumLock, ///< Keypad Num Lock and Clear key - sDivide, ///< Keypad / key - sMultiply, ///< Keypad * key - sMinus, ///< Keypad - key - sPlus, ///< Keypad + key - sPadEquals, ///< keypad = key, probably Mac only - sReturn, ///< Keypad Enter (return) key - sDecimal, ///< Keypad . and Delete key - sNumpad1, ///< Keypad 1 and End key - sNumpad2, ///< Keypad 2 and Down Arrow key - sNumpad3, ///< Keypad 3 and Page Down key - sNumpad4, ///< Keypad 4 and Left Arrow key - sNumpad5, ///< Keypad 5 key - sNumpad6, ///< Keypad 6 and Right Arrow key - sNumpad7, ///< Keypad 7 and Home key - sNumpad8, ///< Keypad 8 and Up Arrow key - sNumpad9, ///< Keypad 9 and Page Up key - sNumpad0, ///< Keypad 0 and Insert key - sReverseSolidus, ///< Keyboard Non-US \ and | key - // FIXME what is this one? Might need better name. The doc says: - // - Typically near the Left-Shift key in AT-102 implementations. - // - Typical language mappings: Belg:<\> FrCa:«°» Dan:<\> Dutch:]|[ Fren:<> Ger:<|> Ital:<> LatAm:<> Nor:<> Span:<> Swed:<|> Swiss:<\> UK:\| Brazil: \|. - // What is the difference with "regular" \ and | key? - sApplication, ///< Keyboard Application key - sExecute, ///< Keyboard Execute key - sHelp, ///< Keyboard Help key - sMenu, ///< Keyboard Menu key - sSelect, ///< Keyboard Select key - sStop, ///< Keyboard Stop key - sAgain, ///< Keyboard Again key - sUndo, ///< Keyboard Undo key - sCut, ///< Keyboard Cut key - sCopy, ///< Keyboard Copy key - sPaste, ///< Keyboard Paste key - sFind, ///< Keyboard Find key - sMute, ///< Keyboard Mute key - sVolumeUp, ///< Keyboard Volume Up key - sVolumeDown, ///< Keyboard Volume Down key - sLControl, ///< Keyboard Left Control key - sLShift, ///< Keyboard Left Shift key - sLAlt, ///< Keyboard Left Alt key - sLSystem, ///< Keyboard Left System key - sRControl, ///< Keyboard Right Control key - sRShift, ///< Keyboard Right Shift key - sRAlt, ///< Keyboard Right Alt key - sRSystem, ///< Keyboard Right System key - - sCodeCount ///< Keep last -- the total number of scancodes - }; - //////////////////////////////////////////////////////////// /// \brief Check if a key is pressed /// diff --git a/src/SFML/Window/Win32/WindowImplWin32.cpp b/src/SFML/Window/Win32/WindowImplWin32.cpp index 45136e09..5214d77b 100644 --- a/src/SFML/Window/Win32/WindowImplWin32.cpp +++ b/src/SFML/Window/Win32/WindowImplWin32.cpp @@ -593,7 +593,7 @@ Keyboard::Scancode WindowImplWin32::toScancode(LPARAM flags) case 25: return Keyboard::ScanP; case 26: return Keyboard::ScanLBracket; case 27: return Keyboard::ScanRBracket; - case 28: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanEnter : Keyboard::ScanReturn; + case 28: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanEnter : Keyboard::ScanNumpadEnter; case 29: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanRControl : Keyboard::ScanLControl; case 30: return Keyboard::ScanA; case 31: return Keyboard::ScanS; @@ -618,7 +618,7 @@ Keyboard::Scancode WindowImplWin32::toScancode(LPARAM flags) case 50: return Keyboard::ScanM; case 51: return Keyboard::ScanComma; case 52: return Keyboard::ScanPeriod; - case 53: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDivide : Keyboard::ScanForwardSlash; + case 53: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanDivide : Keyboard::ScanSlash; case 54: return Keyboard::ScanRShift; case 55: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanPrintScreen : Keyboard::ScanMultiply; case 56: return (HIWORD(flags) & KF_EXTENDED) ? Keyboard::ScanRAlt : Keyboard::ScanLAlt; From 1d20edebc7b8608bc7feeae6580d03655cc2aa8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Hahlgan=C3=9F?= Date: Wed, 22 Jan 2020 20:26:25 +0100 Subject: [PATCH 12/36] SFMLConfigDependencies.cmake.in: Vorbis uppercase --- cmake/SFMLConfigDependencies.cmake.in | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/SFMLConfigDependencies.cmake.in b/cmake/SFMLConfigDependencies.cmake.in index 1028110f..459577cb 100644 --- a/cmake/SFMLConfigDependencies.cmake.in +++ b/cmake/SFMLConfigDependencies.cmake.in @@ -71,11 +71,11 @@ if(SFML_STATIC_LIBRARIES) if(FIND_SFML_AUDIO_COMPONENT_INDEX GREATER -1) sfml_bind_dependency(TARGET OpenAL FRIENDLY_NAME "OpenAL" SEARCH_NAMES "OpenAL" "openal" "openal32") if (NOT FIND_SFML_OS_IOS) - sfml_bind_dependency(TARGET Vorbis FRIENDLY_NAME "VorbisFile" SEARCH_NAMES "vorbisfile") - sfml_bind_dependency(TARGET Vorbis FRIENDLY_NAME "VorbisEnc" SEARCH_NAMES "vorbisenc") + sfml_bind_dependency(TARGET VORBIS FRIENDLY_NAME "VorbisFile" SEARCH_NAMES "vorbisfile") + sfml_bind_dependency(TARGET VORBIS FRIENDLY_NAME "VorbisEnc" SEARCH_NAMES "vorbisenc") endif() - sfml_bind_dependency(TARGET Vorbis FRIENDLY_NAME "Vorbis" SEARCH_NAMES "vorbis") - sfml_bind_dependency(TARGET Vorbis FRIENDLY_NAME "Ogg" SEARCH_NAMES "ogg") + sfml_bind_dependency(TARGET VORBIS FRIENDLY_NAME "Vorbis" SEARCH_NAMES "vorbis") + sfml_bind_dependency(TARGET VORBIS FRIENDLY_NAME "Ogg" SEARCH_NAMES "ogg") sfml_bind_dependency(TARGET FLAC FRIENDLY_NAME "FLAC" SEARCH_NAMES "FLAC") endif() From 632a015663487181ea817731779c2b225937eaa0 Mon Sep 17 00:00:00 2001 From: Michal Marszalek <1aam2am1@gmail.com> Date: Sat, 10 Mar 2018 19:20:04 +0100 Subject: [PATCH 13/36] Added readCurrentReadPosition in sf::Packet --- include/SFML/Network/Packet.hpp | 11 +++++++++++ src/SFML/Network/Packet.cpp | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/include/SFML/Network/Packet.hpp b/include/SFML/Network/Packet.hpp index 6d48e520..b4cf5d2e 100644 --- a/include/SFML/Network/Packet.hpp +++ b/include/SFML/Network/Packet.hpp @@ -72,10 +72,21 @@ public: /// \param sizeInBytes Number of bytes to append /// /// \see clear + /// \see readCurrentReadPosition /// //////////////////////////////////////////////////////////// void append(const void* data, std::size_t sizeInBytes); + //////////////////////////////////////////////////////////// + /// \brief Get a current reading position + /// + /// \return Current position + /// + /// \see append + /// + //////////////////////////////////////////////////////////// + std::size_t getReadPosition() const; + //////////////////////////////////////////////////////////// /// \brief Clear the packet /// diff --git a/src/SFML/Network/Packet.cpp b/src/SFML/Network/Packet.cpp index ac039412..2cb85bdb 100644 --- a/src/SFML/Network/Packet.cpp +++ b/src/SFML/Network/Packet.cpp @@ -63,6 +63,13 @@ void Packet::append(const void* data, std::size_t sizeInBytes) } +//////////////////////////////////////////////////////////// +std::size_t Packet::getReadPosition() const +{ + return m_readPos; +} + + //////////////////////////////////////////////////////////// void Packet::clear() { From 50e173e403ef8912e3d8ac3c7ab3e27e32243339 Mon Sep 17 00:00:00 2001 From: Jonny Date: Tue, 4 Feb 2020 23:37:28 +0000 Subject: [PATCH 14/36] Update documentation --- include/SFML/Network/Packet.hpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/include/SFML/Network/Packet.hpp b/include/SFML/Network/Packet.hpp index b4cf5d2e..9728276c 100644 --- a/include/SFML/Network/Packet.hpp +++ b/include/SFML/Network/Packet.hpp @@ -72,15 +72,17 @@ public: /// \param sizeInBytes Number of bytes to append /// /// \see clear - /// \see readCurrentReadPosition + /// \see getReadPosition /// //////////////////////////////////////////////////////////// void append(const void* data, std::size_t sizeInBytes); //////////////////////////////////////////////////////////// - /// \brief Get a current reading position + /// \brief Get the current reading position in the packet /// - /// \return Current position + /// The next read operation will read data from this position + /// + /// \return The byte offset of the current read position /// /// \see append /// From f57d4620abf5cc02a0ce8a7f93e88bb5aa66a745 Mon Sep 17 00:00:00 2001 From: Jonny Date: Thu, 14 May 2020 10:39:18 +0100 Subject: [PATCH 15/36] Update travis config for android SDK changes --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ebefd2c0..4ae82936 100644 --- a/.travis.yml +++ b/.travis.yml @@ -96,7 +96,6 @@ matrix: install: &androidInstall - echo y | sdkmanager "cmake;3.10.2.4988404" - - echo y | sdkmanager "lldb;3.1" - sudo ln -sf /usr/local/android-sdk/cmake/3.10.2.4988404/bin/cmake /usr/bin/cmake - wget https://dl.google.com/android/repository/android-ndk-r18b-linux-x86_64.zip - unzip -qq android-ndk-r18b-linux-x86_64.zip From f93372f98af72d68b7da1349bd3588a6e95c4bd0 Mon Sep 17 00:00:00 2001 From: Quentin Bazin Date: Mon, 11 May 2020 15:01:26 +0200 Subject: [PATCH 16/36] Added missing documentation about TcpListener::listen and Socket::AnyPort. --- include/SFML/Network/TcpListener.hpp | 4 ++++ include/SFML/Network/UdpSocket.hpp | 7 ++++--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/SFML/Network/TcpListener.hpp b/include/SFML/Network/TcpListener.hpp index 1f99f6d1..3cc4d2c7 100644 --- a/include/SFML/Network/TcpListener.hpp +++ b/include/SFML/Network/TcpListener.hpp @@ -74,6 +74,10 @@ public: /// function is called, it will stop listening on the old /// port before starting to listen on the new port. /// + /// When providing sf::Socket::AnyPort as port, the listener + /// will request an available port from the system. + /// The chosen port can be retrieved by calling getLocalPort(). + /// /// \param port Port to listen on for incoming connection attempts /// \param address Address of the interface to listen on /// diff --git a/include/SFML/Network/UdpSocket.hpp b/include/SFML/Network/UdpSocket.hpp index 826a156d..01645410 100644 --- a/include/SFML/Network/UdpSocket.hpp +++ b/include/SFML/Network/UdpSocket.hpp @@ -78,9 +78,10 @@ public: /// /// Binding the socket to a port is necessary for being /// able to receive data on that port. - /// You can use the special value Socket::AnyPort to tell the - /// system to automatically pick an available port, and then - /// call getLocalPort to retrieve the chosen port. + /// + /// When providing sf::Socket::AnyPort as port, the listener + /// will request an available port from the system. + /// The chosen port can be retrieved by calling getLocalPort(). /// /// Since the socket can only be bound to a single port at /// any given moment, if it is already bound when this From 43187455e407258cc4c304064777c59ceb0d13ca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=B1=E9=A2=A8=E8=B0=B7=E6=97=A9=E8=8B=97=20=28?= =?UTF-8?q?=E3=81=93=E3=81=A1=E3=82=84=E3=81=95=E3=81=AA=E3=81=88=29?= Date: Wed, 26 Feb 2020 18:55:09 +0800 Subject: [PATCH 17/36] Added Font::hasGlyph() --- include/SFML/Graphics/Font.hpp | 22 ++++++++++++++++++++++ src/SFML/Graphics/Font.cpp | 7 +++++++ 2 files changed, 29 insertions(+) diff --git a/include/SFML/Graphics/Font.hpp b/include/SFML/Graphics/Font.hpp index 49a9f863..2e57c9b7 100644 --- a/include/SFML/Graphics/Font.hpp +++ b/include/SFML/Graphics/Font.hpp @@ -166,6 +166,10 @@ public: /// might be available. If the glyph is not available at the /// requested size, an empty glyph is returned. /// + /// You may want to use \ref hasGlyph to determine if the + /// glyph exists before requesting it. If the glyph does not + /// exist, a font specific default is returned. + /// /// Be aware that using a negative value for the outline /// thickness will cause distorted rendering. /// @@ -179,6 +183,24 @@ public: //////////////////////////////////////////////////////////// const Glyph& getGlyph(Uint32 codePoint, unsigned int characterSize, bool bold, float outlineThickness = 0) const; + //////////////////////////////////////////////////////////// + /// \brief Determine if this font has a glyph representing the requested code point + /// + /// Most fonts only include a very limited selection of glyphs from + /// specific Unicode subsets, like Latin, Cyrillic, or Asian characters. + /// + /// While code points without representation will return a font specific + /// default character, it might be useful to verify whether specific + /// code points are included to determine whether a font is suited + /// to display text in a specific language. + /// + /// \param codePoint Unicode code point to check + /// + /// \return True if the codepoint has a glyph representation, false otherwise + /// + //////////////////////////////////////////////////////////// + bool hasGlyph(Uint32 codePoint) const; + //////////////////////////////////////////////////////////// /// \brief Get the kerning offset of two glyphs /// diff --git a/src/SFML/Graphics/Font.cpp b/src/SFML/Graphics/Font.cpp index 4576987c..e5616ffe 100644 --- a/src/SFML/Graphics/Font.cpp +++ b/src/SFML/Graphics/Font.cpp @@ -365,6 +365,13 @@ const Glyph& Font::getGlyph(Uint32 codePoint, unsigned int characterSize, bool b } +//////////////////////////////////////////////////////////// +bool Font::hasGlyph(Uint32 codePoint) const +{ + return FT_Get_Char_Index(static_cast(m_face), codePoint) != 0; +} + + //////////////////////////////////////////////////////////// float Font::getKerning(Uint32 first, Uint32 second, unsigned int characterSize) const { From 0337568846584fffcee38036880f9f48888c8b7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Tue, 26 May 2020 23:37:00 +0200 Subject: [PATCH 18/36] Remove link in documentation main page For locally generated documentation the link should not point to a PHP page. The easiest solution is to remove it, given that the same link is available in the navigation. --- doc/mainpage.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/mainpage.hpp b/doc/mainpage.hpp index 16f2c43a..8f85f0cd 100644 --- a/doc/mainpage.hpp +++ b/doc/mainpage.hpp @@ -3,7 +3,7 @@ /// /// \section welcome Welcome /// Welcome to the official SFML documentation. Here you will find a detailed -/// view of all the SFML classes and functions.
+/// view of all the SFML classes and functions.
/// If you are looking for tutorials, you can visit the official website /// at www.sfml-dev.org. /// From 95c98093e9e4924f7978cc83c0126e5bc0b5e7f2 Mon Sep 17 00:00:00 2001 From: scotth Date: Thu, 28 May 2020 21:06:18 +0930 Subject: [PATCH 19/36] Adjustable processing interval in SoundStream #1517 Resurrection of previous PR with updated documentation. Added setter to adjust processing interval in SoundStream for low-latency streams. --- include/SFML/Audio/SoundStream.hpp | 17 ++++++++++++++++- src/SFML/Audio/SoundStream.cpp | 10 ++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/include/SFML/Audio/SoundStream.hpp b/include/SFML/Audio/SoundStream.hpp index f1c7f1f5..6fbaea4d 100644 --- a/include/SFML/Audio/SoundStream.hpp +++ b/include/SFML/Audio/SoundStream.hpp @@ -251,6 +251,20 @@ protected: //////////////////////////////////////////////////////////// virtual Int64 onLoop(); + //////////////////////////////////////////////////////////// + /// \brief Set the processing interval + /// + /// The processing interval controls the period at which the + /// audio buffers are filled by calls to onGetData. A smaller + /// interval may be useful for low-latency streams. Note that + /// the given period is only a hint and the actual period may + /// vary. The default processing interval is 10 ms. + /// + /// \param interval Processing interval + /// + //////////////////////////////////////////////////////////// + void setProcessingInterval(Time interval); + private: //////////////////////////////////////////////////////////// @@ -315,8 +329,9 @@ private: unsigned int m_sampleRate; //!< Frequency (samples / second) Uint32 m_format; //!< Format of the internal sound buffers bool m_loop; //!< Loop flag (true to loop, false to play once) - Uint64 m_samplesProcessed; //!< Number of buffers processed since beginning of the stream + Uint64 m_samplesProcessed; //!< Number of samples processed since beginning of the stream Int64 m_bufferSeeks[BufferCount]; //!< If buffer is an "end buffer", holds next seek position, else NoLoop. For play offset calculation. + Time m_processingInterval; //!< Interval for checking and filling the internal sound buffers. }; } // namespace sf diff --git a/src/SFML/Audio/SoundStream.cpp b/src/SFML/Audio/SoundStream.cpp index 5b6fff02..d8f5f785 100644 --- a/src/SFML/Audio/SoundStream.cpp +++ b/src/SFML/Audio/SoundStream.cpp @@ -51,7 +51,8 @@ m_sampleRate (0), m_format (0), m_loop (false), m_samplesProcessed(0), -m_bufferSeeks () +m_bufferSeeks (), +m_processingInterval(milliseconds(10)) { } @@ -264,6 +265,11 @@ Int64 SoundStream::onLoop() return 0; } +//////////////////////////////////////////////////////////// +void SoundStream::setProcessingInterval(Time interval) +{ + m_processingInterval = interval; +} //////////////////////////////////////////////////////////// void SoundStream::streamData() @@ -384,7 +390,7 @@ void SoundStream::streamData() // Leave some time for the other threads if the stream is still playing if (SoundSource::getStatus() != Stopped) - sleep(milliseconds(10)); + sleep(m_processingInterval); } // Stop the playback From 3557c46ae65a32ac6fc49d81ec026d6a0787564d Mon Sep 17 00:00:00 2001 From: binary1248 Date: Sat, 4 Jan 2020 02:51:18 +0100 Subject: [PATCH 20/36] Add support for buffered DirectInput data to reduce polling load when it is supported. Only attempt setting a DirectInput device's axis mode if the device reports having axes and its axis mode is not already set to absolute. If the axis mode still can't be set to absolute, blacklist the device so that any future attempts will abort early. This should help when dealing with broken device drivers that report being game controllers and not fully supporting game controller functionality. --- src/SFML/Window/Win32/JoystickImpl.cpp | 417 ++++++++++++++++++++----- src/SFML/Window/Win32/JoystickImpl.hpp | 14 +- 2 files changed, 349 insertions(+), 82 deletions(-) diff --git a/src/SFML/Window/Win32/JoystickImpl.cpp b/src/SFML/Window/Win32/JoystickImpl.cpp index 2e925a57..9f8339d5 100644 --- a/src/SFML/Window/Win32/JoystickImpl.cpp +++ b/src/SFML/Window/Win32/JoystickImpl.cpp @@ -80,6 +80,17 @@ namespace typedef std::vector JoystickList; JoystickList joystickList; + + struct JoystickBlacklistEntry + { + unsigned int vendorId; + unsigned int productId; + }; + + typedef std::vector JoystickBlacklist; + JoystickBlacklist joystickBlacklist; + + const DWORD directInputEventBufferSize = 32; } @@ -330,7 +341,16 @@ Joystick::Identification JoystickImpl::getIdentification() const JoystickState JoystickImpl::update() { if (directInput) - return updateDInput(); + { + if (m_buffered) + { + return updateDInputBuffered(); + } + else + { + return updateDInputPolled(); + } + } JoystickState state; @@ -391,7 +411,7 @@ void JoystickImpl::initializeDInput() // Try to acquire a DirectInput 8.x interface HRESULT result = directInput8Create(GetModuleHandleW(NULL), 0x0800, guids::IID_IDirectInput8W, reinterpret_cast(&directInput), NULL); - if (result) + if (FAILED(result)) { // De-initialize everything directInput = NULL; @@ -460,7 +480,7 @@ void JoystickImpl::updateConnectionsDInput() ++i; } - if (result) + if (FAILED(result)) { err() << "Failed to enumerate DirectInput devices: " << result << std::endl; @@ -499,6 +519,8 @@ bool JoystickImpl::openDInput(unsigned int index) std::memset(&m_deviceCaps, 0, sizeof(DIDEVCAPS)); m_deviceCaps.dwSize = sizeof(DIDEVCAPS); + m_state = JoystickState(); + m_buffered = false; // Search for a joystick with the given index in the connected list for (std::vector::iterator i = joystickList.begin(); i != joystickList.end(); ++i) @@ -508,13 +530,54 @@ bool JoystickImpl::openDInput(unsigned int index) // Create device HRESULT result = directInput->CreateDevice(i->guid, &m_device, NULL); - if (result) + if (FAILED(result)) { err() << "Failed to create DirectInput device: " << result << std::endl; return false; } + // Get vendor and product id of the device + DIPROPDWORD property; + std::memset(&property, 0, sizeof(property)); + property.diph.dwSize = sizeof(property); + property.diph.dwHeaderSize = sizeof(property.diph); + property.diph.dwHow = DIPH_DEVICE; + + if (SUCCEEDED(m_device->GetProperty(DIPROP_VIDPID, &property.diph))) + { + m_identification.productId = HIWORD(property.dwData); + m_identification.vendorId = LOWORD(property.dwData); + + // Check if device is already blacklisted + if (m_identification.productId && m_identification.vendorId) + { + for (JoystickBlacklist::const_iterator iter = joystickBlacklist.begin(); iter != joystickBlacklist.end(); ++iter) + { + if ((m_identification.productId == iter->productId) && + (m_identification.vendorId == iter->vendorId)) + { + // Device is blacklisted + m_device->Release(); + m_device = NULL; + + return false; + } + } + } + } + + // Get friendly product name of the device + DIPROPSTRING stringProperty; + std::memset(&stringProperty, 0, sizeof(stringProperty)); + stringProperty.diph.dwSize = sizeof(stringProperty); + stringProperty.diph.dwHeaderSize = sizeof(stringProperty.diph); + stringProperty.diph.dwHow = DIPH_DEVICE; + stringProperty.diph.dwObj = 0; + + if (SUCCEEDED(m_device->GetProperty(DIPROP_PRODUCTNAME, &stringProperty.diph))) + m_identification.name = stringProperty.wsz; + static bool formatInitialized = false; static DIDATAFORMAT format; @@ -524,59 +587,80 @@ bool JoystickImpl::openDInput(unsigned int index) const DWORD povType = DIDFT_POV | DIDFT_OPTIONAL | DIDFT_ANYINSTANCE; const DWORD buttonType = DIDFT_BUTTON | DIDFT_OPTIONAL | DIDFT_ANYINSTANCE; - static DIOBJECTDATAFORMAT data[8 + 4 + sf::Joystick::ButtonCount]; + static DIOBJECTDATAFORMAT data[8 * 4 + 4 + sf::Joystick::ButtonCount]; - data[0].pguid = &guids::GUID_XAxis; - data[0].dwOfs = DIJOFS_X; + for (int i = 0; i < 4; ++i) + { + data[8 * i + 0].pguid = &guids::GUID_XAxis; + data[8 * i + 1].pguid = &guids::GUID_YAxis; + data[8 * i + 2].pguid = &guids::GUID_ZAxis; + data[8 * i + 3].pguid = &guids::GUID_RxAxis; + data[8 * i + 4].pguid = &guids::GUID_RyAxis; + data[8 * i + 5].pguid = &guids::GUID_RzAxis; + data[8 * i + 6].pguid = &guids::GUID_Slider; + data[8 * i + 7].pguid = &guids::GUID_Slider; + } - data[1].pguid = &guids::GUID_YAxis; - data[1].dwOfs = DIJOFS_Y; + data[ 0].dwOfs = DIJOFS_X; + data[ 1].dwOfs = DIJOFS_Y; + data[ 2].dwOfs = DIJOFS_Z; + data[ 3].dwOfs = DIJOFS_RX; + data[ 4].dwOfs = DIJOFS_RY; + data[ 5].dwOfs = DIJOFS_RZ; + data[ 6].dwOfs = DIJOFS_SLIDER(0); + data[ 7].dwOfs = DIJOFS_SLIDER(1); + data[ 8].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lVX); + data[ 9].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lVY); + data[10].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lVZ); + data[11].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lVRx); + data[12].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lVRy); + data[13].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lVRz); + data[14].dwOfs = FIELD_OFFSET(DIJOYSTATE2, rglVSlider[0]); + data[15].dwOfs = FIELD_OFFSET(DIJOYSTATE2, rglVSlider[1]); + data[16].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lAX); + data[17].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lAY); + data[18].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lAZ); + data[19].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lARx); + data[20].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lARy); + data[21].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lARz); + data[22].dwOfs = FIELD_OFFSET(DIJOYSTATE2, rglASlider[0]); + data[23].dwOfs = FIELD_OFFSET(DIJOYSTATE2, rglASlider[1]); + data[24].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lFX); + data[25].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lFY); + data[26].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lFZ); + data[27].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lFRx); + data[28].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lFRy); + data[29].dwOfs = FIELD_OFFSET(DIJOYSTATE2, lFRz); + data[30].dwOfs = FIELD_OFFSET(DIJOYSTATE2, rglFSlider[0]); + data[31].dwOfs = FIELD_OFFSET(DIJOYSTATE2, rglFSlider[1]); - data[2].pguid = &guids::GUID_ZAxis; - data[2].dwOfs = DIJOFS_Z; - - data[3].pguid = &guids::GUID_RxAxis; - data[3].dwOfs = DIJOFS_RX; - - data[4].pguid = &guids::GUID_RyAxis; - data[4].dwOfs = DIJOFS_RY; - - data[5].pguid = &guids::GUID_RzAxis; - data[5].dwOfs = DIJOFS_RZ; - - data[6].pguid = &guids::GUID_Slider; - data[6].dwOfs = DIJOFS_SLIDER(0); - - data[7].pguid = &guids::GUID_Slider; - data[7].dwOfs = DIJOFS_SLIDER(1); - - for (int i = 0; i < 8; ++i) + for (int i = 0; i < 8 * 4; ++i) { data[i].dwType = axisType; - data[i].dwFlags = DIDOI_ASPECTPOSITION; + data[i].dwFlags = 0; } for (int i = 0; i < 4; ++i) { - data[8 + i].pguid = &guids::GUID_POV; - data[8 + i].dwOfs = static_cast(DIJOFS_POV(i)); - data[8 + i].dwType = povType; - data[8 + i].dwFlags = 0; + data[8 * 4 + i].pguid = &guids::GUID_POV; + data[8 * 4 + i].dwOfs = static_cast(DIJOFS_POV(i)); + data[8 * 4 + i].dwType = povType; + data[8 * 4 + i].dwFlags = 0; } for (int i = 0; i < sf::Joystick::ButtonCount; ++i) { - data[8 + 4 + i].pguid = NULL; - data[8 + 4 + i].dwOfs = static_cast(DIJOFS_BUTTON(i)); - data[8 + 4 + i].dwType = buttonType; - data[8 + 4 + i].dwFlags = 0; + data[8 * 4 + 4 + i].pguid = NULL; + data[8 * 4 + 4 + i].dwOfs = static_cast(DIJOFS_BUTTON(i)); + data[8 * 4 + 4 + i].dwType = buttonType; + data[8 * 4 + 4 + i].dwFlags = 0; } format.dwSize = sizeof(DIDATAFORMAT); format.dwObjSize = sizeof(DIOBJECTDATAFORMAT); format.dwFlags = DIDFT_ABSAXIS; - format.dwDataSize = sizeof(DIJOYSTATE); - format.dwNumObjs = 8 + 4 + sf::Joystick::ButtonCount; + format.dwDataSize = sizeof(DIJOYSTATE2); + format.dwNumObjs = 8 * 4 + 4 + sf::Joystick::ButtonCount; format.rgodf = data; formatInitialized = true; @@ -585,7 +669,7 @@ bool JoystickImpl::openDInput(unsigned int index) // Set device data format result = m_device->SetDataFormat(&format); - if (result) + if (FAILED(result)) { err() << "Failed to set DirectInput device data format: " << result << std::endl; @@ -598,7 +682,7 @@ bool JoystickImpl::openDInput(unsigned int index) // Get device capabilities result = m_device->GetCapabilities(&m_deviceCaps); - if (result) + if (FAILED(result)) { err() << "Failed to get DirectInput device capabilities: " << result << std::endl; @@ -608,30 +692,10 @@ bool JoystickImpl::openDInput(unsigned int index) return false; } - // Set axis mode to absolute - DIPROPDWORD property; - std::memset(&property, 0, sizeof(property)); - property.diph.dwSize = sizeof(property); - property.diph.dwHeaderSize = sizeof(property.diph); - property.diph.dwHow = DIPH_DEVICE; - property.dwData = DIPROPAXISMODE_ABS; - - result = m_device->SetProperty(DIPROP_AXISMODE, &property.diph); - - if (result) - { - err() << "Failed to set DirectInput device axis mode: " << result << std::endl; - - m_device->Release(); - m_device = NULL; - - return false; - } - // Enumerate device objects (axes/povs/buttons) result = m_device->EnumObjects(&JoystickImpl::deviceObjectEnumerationCallback, this, DIDFT_AXIS | DIDFT_BUTTON | DIDFT_POV); - if (result) + if (FAILED(result)) { err() << "Failed to enumerate DirectInput device objects: " << result << std::endl; @@ -641,29 +705,116 @@ bool JoystickImpl::openDInput(unsigned int index) return false; } - // Get friendly product name of the device - DIPROPSTRING stringProperty; - std::memset(&stringProperty, 0, sizeof(stringProperty)); - stringProperty.diph.dwSize = sizeof(stringProperty); - stringProperty.diph.dwHeaderSize = sizeof(stringProperty.diph); - stringProperty.diph.dwHow = DIPH_DEVICE; - stringProperty.diph.dwObj = 0; - - if (!m_device->GetProperty(DIPROP_PRODUCTNAME, &stringProperty.diph)) + // Set device's axis mode to absolute if the device reports having at least one axis + for (int i = 0; i < Joystick::AxisCount; ++i) { - m_identification.name = stringProperty.wsz; + if (m_axes[i] != -1) + { + std::memset(&property, 0, sizeof(property)); + property.diph.dwSize = sizeof(property); + property.diph.dwHeaderSize = sizeof(property.diph); + property.diph.dwHow = DIPH_DEVICE; + property.diph.dwObj = 0; + + result = m_device->GetProperty(DIPROP_AXISMODE, &property.diph); + + if (FAILED(result)) + { + err() << "Failed to get DirectInput device axis mode for device \"" + << m_identification.name.toAnsiString() << "\": " << result << std::endl; + + m_device->Release(); + m_device = NULL; + + return false; + } + + // If the axis mode is already set to absolute we don't need to set it again ourselves + if (property.dwData == DIPROPAXISMODE_ABS) + break; + + std::memset(&property, 0, sizeof(property)); + property.diph.dwSize = sizeof(property); + property.diph.dwHeaderSize = sizeof(property.diph); + property.diph.dwHow = DIPH_DEVICE; + property.dwData = DIPROPAXISMODE_ABS; + + m_device->SetProperty(DIPROP_AXISMODE, &property.diph); + + // Check if the axis mode has been set to absolute + std::memset(&property, 0, sizeof(property)); + property.diph.dwSize = sizeof(property); + property.diph.dwHeaderSize = sizeof(property.diph); + property.diph.dwHow = DIPH_DEVICE; + property.diph.dwObj = 0; + + result = m_device->GetProperty(DIPROP_AXISMODE, &property.diph); + + if (FAILED(result)) + { + err() << "Failed to verify DirectInput device axis mode for device \"" + << m_identification.name.toAnsiString() << "\": " << result << std::endl; + + m_device->Release(); + m_device = NULL; + + return false; + } + + // If the axis mode hasn't been set to absolute fail here and blacklist the device + if (property.dwData != DIPROPAXISMODE_ABS) + { + if (m_identification.vendorId && m_identification.productId) + { + JoystickBlacklistEntry entry; + + entry.vendorId = m_identification.vendorId; + entry.productId = m_identification.productId; + + joystickBlacklist.push_back(entry); + + // Pre-C++11 shrink_to_fit() + JoystickBlacklist(joystickBlacklist.begin(), joystickBlacklist.end()).swap(joystickBlacklist); + } + + m_device->Release(); + m_device = NULL; + + return false; + } + + break; + } } - // Get vendor and produce id of the device + // Try to enable buffering by setting the buffer size std::memset(&property, 0, sizeof(property)); property.diph.dwSize = sizeof(property); property.diph.dwHeaderSize = sizeof(property.diph); property.diph.dwHow = DIPH_DEVICE; + property.dwData = directInputEventBufferSize; - if (!m_device->GetProperty(DIPROP_VIDPID, &property.diph)) + result = m_device->SetProperty(DIPROP_BUFFERSIZE, &property.diph); + + if (result == DI_OK) { - m_identification.productId = HIWORD(property.dwData); - m_identification.vendorId = LOWORD(property.dwData); + // Buffering supported + m_buffered = true; + } + else if (result == DI_POLLEDDEVICE) + { + // Only polling supported + m_buffered = false; + } + else + { + err() << "Failed to set DirectInput device buffer size for device \"" + << m_identification.name.toAnsiString() << "\": " << result << std::endl; + + m_device->Release(); + m_device = NULL; + + return false; } return true; @@ -709,7 +860,113 @@ JoystickCaps JoystickImpl::getCapabilitiesDInput() const //////////////////////////////////////////////////////////// -JoystickState JoystickImpl::updateDInput() +JoystickState JoystickImpl::updateDInputBuffered() +{ + // If we don't make it to the end of this function, mark the device as disconnected + m_state.connected = false; + + if (!m_device) + return m_state; + + DIDEVICEOBJECTDATA events[directInputEventBufferSize]; + DWORD eventCount = directInputEventBufferSize; + + // Try to get the device data + HRESULT result = m_device->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), events, &eventCount, 0); + + // If we have not acquired or have lost the device, attempt to (re-)acquire it and get the device data again + if ((result == DIERR_NOTACQUIRED) || (result == DIERR_INPUTLOST)) + { + m_device->Acquire(); + result = m_device->GetDeviceData(sizeof(DIDEVICEOBJECTDATA), events, &eventCount, 0); + } + + // If we still can't get the device data, assume it has been disconnected + if ((result == DIERR_NOTACQUIRED) || (result == DIERR_INPUTLOST)) + { + m_device->Release(); + m_device = NULL; + + return m_state; + } + + if (FAILED(result)) + { + err() << "Failed to get DirectInput device data: " << result << std::endl; + + return m_state; + } + + // Iterate through all buffered events + for (DWORD i = 0; i < eventCount; ++i) + { + bool eventHandled = false; + + // Get the current state of each axis + for (int j = 0; j < Joystick::AxisCount; ++j) + { + if (m_axes[j] == events[i].dwOfs) + { + if (j == Joystick::PovX) + { + unsigned short value = LOWORD(events[i].dwData); + + if (value != 0xFFFF) + { + float angle = (static_cast(value)) * 3.141592654f / DI_DEGREES / 180.f; + + m_state.axes[j] = std::sin(angle) * 100.f; + } + else + { + m_state.axes[j] = 0; + } + } + else if (j == Joystick::PovY) + { + unsigned short value = LOWORD(events[i].dwData); + + if (value != 0xFFFF) + { + float angle = (static_cast(value)) * 3.141592654f / DI_DEGREES / 180.f; + + m_state.axes[j] = std::cos(angle) * 100.f; + } + else + { + m_state.axes[j] = 0.f; + } + } + else + { + m_state.axes[j] = (static_cast(static_cast(events[i].dwData)) + 0.5f) * 100.f / 32767.5f; + } + + eventHandled = true; + + break; + } + } + + if (eventHandled) + continue; + + // Get the current state of each button + for (int j = 0; j < Joystick::ButtonCount; ++j) + { + if (m_buttons[j] == events[i].dwOfs) + m_state.buttons[j] = (events[i].dwData != 0); + } + } + + m_state.connected = true; + + return m_state; +} + + +//////////////////////////////////////////////////////////// +JoystickState JoystickImpl::updateDInputPolled() { JoystickState state; @@ -718,7 +975,7 @@ JoystickState JoystickImpl::updateDInput() // Poll the device m_device->Poll(); - DIJOYSTATE joystate; + DIJOYSTATE2 joystate; // Try to get the device state HRESULT result = m_device->GetDeviceState(sizeof(joystate), &joystate); @@ -740,7 +997,7 @@ JoystickState JoystickImpl::updateDInput() return state; } - if (result) + if (FAILED(result)) { err() << "Failed to get DirectInput device state: " << result << std::endl; @@ -878,7 +1135,7 @@ BOOL CALLBACK JoystickImpl::deviceObjectEnumerationCallback(const DIDEVICEOBJECT HRESULT result = joystick.m_device->SetProperty(DIPROP_RANGE, &propertyRange.diph); - if (result) + if (result != DI_OK) err() << "Failed to set DirectInput device axis property range: " << result << std::endl; return DIENUM_CONTINUE; diff --git a/src/SFML/Window/Win32/JoystickImpl.hpp b/src/SFML/Window/Win32/JoystickImpl.hpp index 66175058..ffff8c33 100644 --- a/src/SFML/Window/Win32/JoystickImpl.hpp +++ b/src/SFML/Window/Win32/JoystickImpl.hpp @@ -186,12 +186,20 @@ public: JoystickCaps getCapabilitiesDInput() const; //////////////////////////////////////////////////////////// - /// \brief Update the joystick and get its new state (DInput) + /// \brief Update the joystick and get its new state (DInput, Buffered) /// /// \return Joystick state /// //////////////////////////////////////////////////////////// - JoystickState updateDInput(); + JoystickState updateDInputBuffered(); + + //////////////////////////////////////////////////////////// + /// \brief Update the joystick and get its new state (DInput, Polled) + /// + /// \return Joystick state + /// + //////////////////////////////////////////////////////////// + JoystickState updateDInputPolled(); private: @@ -227,6 +235,8 @@ private: int m_axes[Joystick::AxisCount]; //!< Offsets to the bytes containing the axes states, -1 if not available int m_buttons[Joystick::ButtonCount]; //!< Offsets to the bytes containing the button states, -1 if not available Joystick::Identification m_identification; //!< Joystick identification + JoystickState m_state; //!< Buffered joystick state + bool m_buffered; //!< true if the device uses buffering, false if the device uses polling }; } // namespace priv From 241b542ca30751e9283230288b4d704fe3e80981 Mon Sep 17 00:00:00 2001 From: Bruno Van de Velde Date: Sat, 18 Jul 2020 10:13:49 +0200 Subject: [PATCH 21/36] Added XFlush call to WindowImplX11::setMouseCursor --- src/SFML/Window/Unix/WindowImplX11.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/SFML/Window/Unix/WindowImplX11.cpp b/src/SFML/Window/Unix/WindowImplX11.cpp index fa0cfc43..1b2e78b9 100644 --- a/src/SFML/Window/Unix/WindowImplX11.cpp +++ b/src/SFML/Window/Unix/WindowImplX11.cpp @@ -1112,6 +1112,7 @@ void WindowImplX11::setMouseCursor(const CursorImpl& cursor) { m_lastCursor = cursor.m_cursor; XDefineCursor(m_display, m_window, m_lastCursor); + XFlush(m_display); } From 5eea8032dbc0d7f6030a3104e886975bf96f6c9e Mon Sep 17 00:00:00 2001 From: mcz <57645227+czateusz@users.noreply.github.com> Date: Mon, 31 Aug 2020 20:48:35 +0200 Subject: [PATCH 22/36] replace dead link in Config.hpp file replace dead link with working link containing information about predefined macros --- include/SFML/Config.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/SFML/Config.hpp b/include/SFML/Config.hpp index 70b4a92d..c4e2f497 100644 --- a/include/SFML/Config.hpp +++ b/include/SFML/Config.hpp @@ -36,7 +36,7 @@ //////////////////////////////////////////////////////////// // Identify the operating system -// see http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system +// see https://sourceforge.net/p/predef/wiki/Home/ //////////////////////////////////////////////////////////// #if defined(_WIN32) From d4ebba3aafa00e74a39872325281799637413825 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Sat, 12 Sep 2020 13:24:18 +0200 Subject: [PATCH 23/36] Add Visual Studio 2019 builds to Travis --- .travis.yml | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4ae82936..5d6d646b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,7 +14,7 @@ addons: before_script: - mkdir build && cd build -- cmake .. $CMAKE_FLAGS -DCMAKE_INSTALL_PREFIX=../install -DSFML_BUILD_EXAMPLES=TRUE +- cmake .. $CMAKE_FLAGS -DCMAKE_INSTALL_PREFIX=../install -DSFML_BUILD_EXAMPLES=TRUE -DCMAKE_VERBOSE_MAKEFILE=ON script: - cmake --build . --target install @@ -74,16 +74,38 @@ matrix: env: - CMAKE_FLAGS="-GXcode -DSFML_BUILD_TEST_SUITE=TRUE -DCMAKE_TOOLCHAIN_FILE=../cmake/toolchains/iOS.toolchain.cmake -DIOS_PLATFORM=SIMULATOR" - - name: "Visual studio 15 2017 Dynamic" + - name: "Visual Studio 15 2017 Dynamic" os: windows env: - CMAKE_FLAGS="-DSFML_BUILD_TEST_SUITE=FALSE" - - name: "Visual studio 15 2017 Static" + - name: "Visual Studio 15 2017 Static" os: windows env: - CMAKE_FLAGS="-DBUILD_SHARED_LIBS=FALSE -DSFML_BUILD_TEST_SUITE=TRUE" + - name: "Visual Studio 16 2019 Dynamic" + os: windows + env: + - CMAKE_FLAGS="-DSFML_BUILD_TEST_SUITE=FALSE" + - MSBUILD_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin" + - VS160COMNTOOLS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools" + - PATH=$MSBUILD_PATH:$PATH + install: + - choco install visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64" + - choco install visualstudio2019-workload-nativedesktop + + - name: "Visual Studio 16 2019 Static" + os: windows + env: + - CMAKE_FLAGS="-DBUILD_SHARED_LIBS=FALSE -DSFML_BUILD_TEST_SUITE=TRUE" + - MSBUILD_PATH="C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin" + - VS160COMNTOOLS="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools" + - PATH=$MSBUILD_PATH:$PATH + install: + - choco install visualstudio2019buildtools --package-parameters "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64" + - choco install visualstudio2019-workload-nativedesktop + - name: "Android armeabi-v7a" language: android android: &androidComponents From 9b596cc8d9240b240c391abb8c784fddbec4e0df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20D=C3=BCrrenberger?= Date: Sat, 12 Sep 2020 15:27:45 +0200 Subject: [PATCH 24/36] Update the copyright year to 2020 --- examples/cocoa/CocoaAppDelegate.h | 2 +- examples/cocoa/CocoaAppDelegate.mm | 2 +- examples/cocoa/NSString+stdstring.h | 2 +- examples/cocoa/NSString+stdstring.mm | 2 +- examples/cocoa/main.m | 2 +- examples/cocoa/resources/Cocoa-Info.plist | 2 +- include/SFML/Audio.hpp | 2 +- include/SFML/Audio/AlResource.hpp | 2 +- include/SFML/Audio/Export.hpp | 2 +- include/SFML/Audio/InputSoundFile.hpp | 2 +- include/SFML/Audio/Listener.hpp | 2 +- include/SFML/Audio/Music.hpp | 2 +- include/SFML/Audio/OutputSoundFile.hpp | 2 +- include/SFML/Audio/Sound.hpp | 2 +- include/SFML/Audio/SoundBuffer.hpp | 2 +- include/SFML/Audio/SoundBufferRecorder.hpp | 2 +- include/SFML/Audio/SoundFileFactory.hpp | 2 +- include/SFML/Audio/SoundFileFactory.inl | 2 +- include/SFML/Audio/SoundFileReader.hpp | 2 +- include/SFML/Audio/SoundFileWriter.hpp | 2 +- include/SFML/Audio/SoundRecorder.hpp | 2 +- include/SFML/Audio/SoundSource.hpp | 2 +- include/SFML/Audio/SoundStream.hpp | 2 +- include/SFML/Config.hpp | 2 +- include/SFML/GpuPreference.hpp | 2 +- include/SFML/Graphics.hpp | 2 +- include/SFML/Graphics/BlendMode.hpp | 2 +- include/SFML/Graphics/CircleShape.hpp | 2 +- include/SFML/Graphics/Color.hpp | 2 +- include/SFML/Graphics/ConvexShape.hpp | 2 +- include/SFML/Graphics/Drawable.hpp | 2 +- include/SFML/Graphics/Export.hpp | 2 +- include/SFML/Graphics/Font.hpp | 2 +- include/SFML/Graphics/Glsl.hpp | 2 +- include/SFML/Graphics/Glsl.inl | 2 +- include/SFML/Graphics/Glyph.hpp | 2 +- include/SFML/Graphics/Image.hpp | 2 +- include/SFML/Graphics/PrimitiveType.hpp | 2 +- include/SFML/Graphics/Rect.hpp | 2 +- include/SFML/Graphics/Rect.inl | 2 +- include/SFML/Graphics/RectangleShape.hpp | 2 +- include/SFML/Graphics/RenderStates.hpp | 2 +- include/SFML/Graphics/RenderTarget.hpp | 2 +- include/SFML/Graphics/RenderTexture.hpp | 2 +- include/SFML/Graphics/RenderWindow.hpp | 2 +- include/SFML/Graphics/Shader.hpp | 2 +- include/SFML/Graphics/Shape.hpp | 2 +- include/SFML/Graphics/Sprite.hpp | 2 +- include/SFML/Graphics/Text.hpp | 2 +- include/SFML/Graphics/Texture.hpp | 2 +- include/SFML/Graphics/Transform.hpp | 2 +- include/SFML/Graphics/Transformable.hpp | 2 +- include/SFML/Graphics/Vertex.hpp | 2 +- include/SFML/Graphics/VertexArray.hpp | 2 +- include/SFML/Graphics/VertexBuffer.hpp | 2 +- include/SFML/Graphics/View.hpp | 2 +- include/SFML/Main.hpp | 2 +- include/SFML/Network.hpp | 2 +- include/SFML/Network/Export.hpp | 2 +- include/SFML/Network/Ftp.hpp | 2 +- include/SFML/Network/Http.hpp | 2 +- include/SFML/Network/IpAddress.hpp | 2 +- include/SFML/Network/Packet.hpp | 2 +- include/SFML/Network/Socket.hpp | 2 +- include/SFML/Network/SocketHandle.hpp | 2 +- include/SFML/Network/SocketSelector.hpp | 2 +- include/SFML/Network/TcpListener.hpp | 2 +- include/SFML/Network/TcpSocket.hpp | 2 +- include/SFML/Network/UdpSocket.hpp | 2 +- include/SFML/OpenGL.hpp | 2 +- include/SFML/System.hpp | 2 +- include/SFML/System/Clock.hpp | 2 +- include/SFML/System/Err.hpp | 2 +- include/SFML/System/Export.hpp | 2 +- include/SFML/System/FileInputStream.hpp | 2 +- include/SFML/System/InputStream.hpp | 2 +- include/SFML/System/Lock.hpp | 2 +- include/SFML/System/MemoryInputStream.hpp | 2 +- include/SFML/System/Mutex.hpp | 2 +- include/SFML/System/NativeActivity.hpp | 2 +- include/SFML/System/NonCopyable.hpp | 2 +- include/SFML/System/Sleep.hpp | 2 +- include/SFML/System/String.hpp | 2 +- include/SFML/System/String.inl | 2 +- include/SFML/System/Thread.hpp | 2 +- include/SFML/System/Thread.inl | 2 +- include/SFML/System/ThreadLocal.hpp | 2 +- include/SFML/System/ThreadLocalPtr.hpp | 2 +- include/SFML/System/ThreadLocalPtr.inl | 2 +- include/SFML/System/Time.hpp | 2 +- include/SFML/System/Utf.hpp | 2 +- include/SFML/System/Utf.inl | 2 +- include/SFML/System/Vector2.hpp | 2 +- include/SFML/System/Vector2.inl | 2 +- include/SFML/System/Vector3.hpp | 2 +- include/SFML/System/Vector3.inl | 2 +- include/SFML/Window.hpp | 2 +- include/SFML/Window/Clipboard.hpp | 2 +- include/SFML/Window/Context.hpp | 2 +- include/SFML/Window/ContextSettings.hpp | 2 +- include/SFML/Window/Cursor.hpp | 2 +- include/SFML/Window/Event.hpp | 2 +- include/SFML/Window/Export.hpp | 2 +- include/SFML/Window/GlResource.hpp | 2 +- include/SFML/Window/Joystick.hpp | 2 +- include/SFML/Window/Keyboard.hpp | 2 +- include/SFML/Window/Mouse.hpp | 2 +- include/SFML/Window/Sensor.hpp | 2 +- include/SFML/Window/Touch.hpp | 2 +- include/SFML/Window/VideoMode.hpp | 2 +- include/SFML/Window/Vulkan.hpp | 2 +- include/SFML/Window/Window.hpp | 2 +- include/SFML/Window/WindowBase.hpp | 2 +- include/SFML/Window/WindowHandle.hpp | 2 +- include/SFML/Window/WindowStyle.hpp | 2 +- license.md | 2 +- src/SFML/Audio/ALCheck.cpp | 2 +- src/SFML/Audio/ALCheck.hpp | 2 +- src/SFML/Audio/AlResource.cpp | 2 +- src/SFML/Audio/AudioDevice.cpp | 2 +- src/SFML/Audio/AudioDevice.hpp | 2 +- src/SFML/Audio/InputSoundFile.cpp | 2 +- src/SFML/Audio/Listener.cpp | 2 +- src/SFML/Audio/Music.cpp | 2 +- src/SFML/Audio/OutputSoundFile.cpp | 2 +- src/SFML/Audio/Sound.cpp | 2 +- src/SFML/Audio/SoundBuffer.cpp | 2 +- src/SFML/Audio/SoundBufferRecorder.cpp | 2 +- src/SFML/Audio/SoundFileFactory.cpp | 2 +- src/SFML/Audio/SoundFileReaderFlac.cpp | 2 +- src/SFML/Audio/SoundFileReaderFlac.hpp | 2 +- src/SFML/Audio/SoundFileReaderOgg.cpp | 2 +- src/SFML/Audio/SoundFileReaderOgg.hpp | 2 +- src/SFML/Audio/SoundFileReaderWav.cpp | 2 +- src/SFML/Audio/SoundFileReaderWav.hpp | 2 +- src/SFML/Audio/SoundFileWriterFlac.cpp | 2 +- src/SFML/Audio/SoundFileWriterFlac.hpp | 2 +- src/SFML/Audio/SoundFileWriterOgg.cpp | 2 +- src/SFML/Audio/SoundFileWriterOgg.hpp | 2 +- src/SFML/Audio/SoundFileWriterWav.cpp | 2 +- src/SFML/Audio/SoundFileWriterWav.hpp | 2 +- src/SFML/Audio/SoundRecorder.cpp | 2 +- src/SFML/Audio/SoundSource.cpp | 2 +- src/SFML/Audio/SoundStream.cpp | 2 +- src/SFML/Graphics/BlendMode.cpp | 2 +- src/SFML/Graphics/CircleShape.cpp | 2 +- src/SFML/Graphics/Color.cpp | 2 +- src/SFML/Graphics/ConvexShape.cpp | 2 +- src/SFML/Graphics/Font.cpp | 2 +- src/SFML/Graphics/GLCheck.cpp | 2 +- src/SFML/Graphics/GLCheck.hpp | 2 +- src/SFML/Graphics/GLExtensions.cpp | 2 +- src/SFML/Graphics/GLExtensions.hpp | 2 +- src/SFML/Graphics/Glsl.cpp | 2 +- src/SFML/Graphics/Image.cpp | 2 +- src/SFML/Graphics/ImageLoader.cpp | 2 +- src/SFML/Graphics/ImageLoader.hpp | 2 +- src/SFML/Graphics/RectangleShape.cpp | 2 +- src/SFML/Graphics/RenderStates.cpp | 2 +- src/SFML/Graphics/RenderTarget.cpp | 2 +- src/SFML/Graphics/RenderTexture.cpp | 2 +- src/SFML/Graphics/RenderTextureImpl.cpp | 2 +- src/SFML/Graphics/RenderTextureImpl.hpp | 2 +- src/SFML/Graphics/RenderTextureImplDefault.cpp | 2 +- src/SFML/Graphics/RenderTextureImplDefault.hpp | 2 +- src/SFML/Graphics/RenderTextureImplFBO.cpp | 2 +- src/SFML/Graphics/RenderTextureImplFBO.hpp | 2 +- src/SFML/Graphics/RenderWindow.cpp | 2 +- src/SFML/Graphics/Shader.cpp | 2 +- src/SFML/Graphics/Shape.cpp | 2 +- src/SFML/Graphics/Sprite.cpp | 2 +- src/SFML/Graphics/Text.cpp | 2 +- src/SFML/Graphics/Texture.cpp | 2 +- src/SFML/Graphics/TextureSaver.cpp | 2 +- src/SFML/Graphics/TextureSaver.hpp | 2 +- src/SFML/Graphics/Transform.cpp | 2 +- src/SFML/Graphics/Transformable.cpp | 2 +- src/SFML/Graphics/Vertex.cpp | 2 +- src/SFML/Graphics/VertexArray.cpp | 2 +- src/SFML/Graphics/VertexBuffer.cpp | 2 +- src/SFML/Graphics/View.cpp | 2 +- src/SFML/Main/MainAndroid.cpp | 2 +- src/SFML/Main/MainWin32.cpp | 2 +- src/SFML/Main/MainiOS.mm | 2 +- src/SFML/Network/Ftp.cpp | 2 +- src/SFML/Network/Http.cpp | 2 +- src/SFML/Network/IpAddress.cpp | 2 +- src/SFML/Network/Packet.cpp | 2 +- src/SFML/Network/Socket.cpp | 2 +- src/SFML/Network/SocketImpl.hpp | 2 +- src/SFML/Network/SocketSelector.cpp | 2 +- src/SFML/Network/TcpListener.cpp | 2 +- src/SFML/Network/TcpSocket.cpp | 2 +- src/SFML/Network/UdpSocket.cpp | 2 +- src/SFML/Network/Unix/SocketImpl.cpp | 2 +- src/SFML/Network/Unix/SocketImpl.hpp | 2 +- src/SFML/Network/Win32/SocketImpl.cpp | 2 +- src/SFML/Network/Win32/SocketImpl.hpp | 2 +- src/SFML/System/Android/Activity.cpp | 2 +- src/SFML/System/Android/NativeActivity.cpp | 2 +- src/SFML/System/Clock.cpp | 2 +- src/SFML/System/Err.cpp | 2 +- src/SFML/System/FileInputStream.cpp | 2 +- src/SFML/System/Lock.cpp | 2 +- src/SFML/System/MemoryInputStream.cpp | 2 +- src/SFML/System/Mutex.cpp | 2 +- src/SFML/System/Sleep.cpp | 2 +- src/SFML/System/String.cpp | 2 +- src/SFML/System/Thread.cpp | 2 +- src/SFML/System/ThreadLocal.cpp | 2 +- src/SFML/System/Time.cpp | 2 +- src/SFML/System/Unix/ClockImpl.cpp | 2 +- src/SFML/System/Unix/ClockImpl.hpp | 2 +- src/SFML/System/Unix/MutexImpl.cpp | 2 +- src/SFML/System/Unix/MutexImpl.hpp | 2 +- src/SFML/System/Unix/SleepImpl.cpp | 2 +- src/SFML/System/Unix/SleepImpl.hpp | 2 +- src/SFML/System/Unix/ThreadImpl.cpp | 2 +- src/SFML/System/Unix/ThreadImpl.hpp | 2 +- src/SFML/System/Unix/ThreadLocalImpl.cpp | 2 +- src/SFML/System/Unix/ThreadLocalImpl.hpp | 2 +- src/SFML/System/Win32/ClockImpl.cpp | 2 +- src/SFML/System/Win32/ClockImpl.hpp | 2 +- src/SFML/System/Win32/MutexImpl.cpp | 2 +- src/SFML/System/Win32/MutexImpl.hpp | 2 +- src/SFML/System/Win32/SleepImpl.cpp | 2 +- src/SFML/System/Win32/SleepImpl.hpp | 2 +- src/SFML/System/Win32/ThreadImpl.cpp | 2 +- src/SFML/System/Win32/ThreadImpl.hpp | 2 +- src/SFML/System/Win32/ThreadLocalImpl.cpp | 2 +- src/SFML/System/Win32/ThreadLocalImpl.hpp | 2 +- src/SFML/Window/Android/ClipboardImpl.cpp | 2 +- src/SFML/Window/Android/ClipboardImpl.hpp | 2 +- src/SFML/Window/Android/CursorImpl.cpp | 2 +- src/SFML/Window/Android/CursorImpl.hpp | 2 +- src/SFML/Window/Android/SensorImpl.cpp | 2 +- src/SFML/Window/Android/SensorImpl.hpp | 2 +- src/SFML/Window/Clipboard.cpp | 2 +- src/SFML/Window/ClipboardImpl.hpp | 2 +- src/SFML/Window/Context.cpp | 2 +- src/SFML/Window/Cursor.cpp | 2 +- src/SFML/Window/CursorImpl.hpp | 2 +- src/SFML/Window/FreeBSD/JoystickImpl.cpp | 2 +- src/SFML/Window/FreeBSD/JoystickImpl.hpp | 2 +- src/SFML/Window/GlContext.cpp | 2 +- src/SFML/Window/GlContext.hpp | 2 +- src/SFML/Window/GlResource.cpp | 2 +- src/SFML/Window/InputImpl.hpp | 2 +- src/SFML/Window/Joystick.cpp | 2 +- src/SFML/Window/JoystickImpl.hpp | 2 +- src/SFML/Window/JoystickManager.cpp | 2 +- src/SFML/Window/JoystickManager.hpp | 2 +- src/SFML/Window/Keyboard.cpp | 2 +- src/SFML/Window/Mouse.cpp | 2 +- src/SFML/Window/OSX/AutoreleasePoolWrapper.h | 2 +- src/SFML/Window/OSX/AutoreleasePoolWrapper.mm | 2 +- src/SFML/Window/OSX/ClipboardImpl.hpp | 2 +- src/SFML/Window/OSX/ClipboardImpl.mm | 2 +- src/SFML/Window/OSX/CursorImpl.hpp | 2 +- src/SFML/Window/OSX/CursorImpl.mm | 2 +- src/SFML/Window/OSX/HIDInputManager.hpp | 2 +- src/SFML/Window/OSX/HIDInputManager.mm | 2 +- src/SFML/Window/OSX/HIDJoystickManager.cpp | 2 +- src/SFML/Window/OSX/HIDJoystickManager.hpp | 2 +- src/SFML/Window/OSX/InputImpl.hpp | 2 +- src/SFML/Window/OSX/InputImpl.mm | 2 +- src/SFML/Window/OSX/JoystickImpl.cpp | 2 +- src/SFML/Window/OSX/JoystickImpl.hpp | 2 +- src/SFML/Window/OSX/NSImage+raw.h | 2 +- src/SFML/Window/OSX/NSImage+raw.mm | 2 +- src/SFML/Window/OSX/SFApplication.h | 2 +- src/SFML/Window/OSX/SFApplication.m | 2 +- src/SFML/Window/OSX/SFApplicationDelegate.h | 2 +- src/SFML/Window/OSX/SFApplicationDelegate.m | 2 +- src/SFML/Window/OSX/SFContext.hpp | 2 +- src/SFML/Window/OSX/SFContext.mm | 2 +- src/SFML/Window/OSX/SFKeyboardModifiersHelper.h | 2 +- src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm | 2 +- src/SFML/Window/OSX/SFOpenGLView+keyboard.mm | 2 +- src/SFML/Window/OSX/SFOpenGLView+keyboard_priv.h | 2 +- src/SFML/Window/OSX/SFOpenGLView+mouse.mm | 2 +- src/SFML/Window/OSX/SFOpenGLView+mouse_priv.h | 2 +- src/SFML/Window/OSX/SFOpenGLView.h | 2 +- src/SFML/Window/OSX/SFOpenGLView.mm | 2 +- src/SFML/Window/OSX/SFSilentResponder.h | 2 +- src/SFML/Window/OSX/SFSilentResponder.m | 2 +- src/SFML/Window/OSX/SFViewController.h | 2 +- src/SFML/Window/OSX/SFViewController.mm | 2 +- src/SFML/Window/OSX/SFWindow.h | 2 +- src/SFML/Window/OSX/SFWindow.m | 2 +- src/SFML/Window/OSX/SFWindowController.h | 2 +- src/SFML/Window/OSX/SFWindowController.mm | 2 +- src/SFML/Window/OSX/Scaling.h | 2 +- src/SFML/Window/OSX/SensorImpl.cpp | 2 +- src/SFML/Window/OSX/SensorImpl.hpp | 2 +- src/SFML/Window/OSX/VideoModeImpl.cpp | 2 +- src/SFML/Window/OSX/WindowImplCocoa.hpp | 2 +- src/SFML/Window/OSX/WindowImplCocoa.mm | 2 +- src/SFML/Window/OSX/WindowImplDelegateProtocol.h | 2 +- src/SFML/Window/OSX/cg_sf_conversion.hpp | 2 +- src/SFML/Window/OSX/cg_sf_conversion.mm | 2 +- src/SFML/Window/OSX/cpp_objc_conversion.h | 2 +- src/SFML/Window/OSX/cpp_objc_conversion.mm | 2 +- src/SFML/Window/Sensor.cpp | 2 +- src/SFML/Window/SensorImpl.hpp | 2 +- src/SFML/Window/SensorManager.cpp | 2 +- src/SFML/Window/SensorManager.hpp | 2 +- src/SFML/Window/Touch.cpp | 2 +- src/SFML/Window/Unix/ClipboardImpl.cpp | 2 +- src/SFML/Window/Unix/ClipboardImpl.hpp | 2 +- src/SFML/Window/Unix/CursorImpl.cpp | 2 +- src/SFML/Window/Unix/CursorImpl.hpp | 2 +- src/SFML/Window/Unix/Display.cpp | 2 +- src/SFML/Window/Unix/Display.hpp | 2 +- src/SFML/Window/Unix/GlxContext.cpp | 2 +- src/SFML/Window/Unix/GlxContext.hpp | 2 +- src/SFML/Window/Unix/InputImpl.cpp | 2 +- src/SFML/Window/Unix/InputImpl.hpp | 2 +- src/SFML/Window/Unix/JoystickImpl.cpp | 2 +- src/SFML/Window/Unix/JoystickImpl.hpp | 2 +- src/SFML/Window/Unix/SensorImpl.cpp | 2 +- src/SFML/Window/Unix/SensorImpl.hpp | 2 +- src/SFML/Window/Unix/VideoModeImpl.cpp | 2 +- src/SFML/Window/Unix/VulkanImplX11.cpp | 2 +- src/SFML/Window/Unix/VulkanImplX11.hpp | 2 +- src/SFML/Window/Unix/WindowImplX11.cpp | 2 +- src/SFML/Window/Unix/WindowImplX11.hpp | 2 +- src/SFML/Window/VideoMode.cpp | 2 +- src/SFML/Window/VideoModeImpl.hpp | 2 +- src/SFML/Window/Vulkan.cpp | 2 +- src/SFML/Window/Win32/ClipboardImpl.cpp | 2 +- src/SFML/Window/Win32/ClipboardImpl.hpp | 2 +- src/SFML/Window/Win32/CursorImpl.cpp | 2 +- src/SFML/Window/Win32/CursorImpl.hpp | 2 +- src/SFML/Window/Win32/InputImpl.cpp | 2 +- src/SFML/Window/Win32/InputImpl.hpp | 2 +- src/SFML/Window/Win32/JoystickImpl.cpp | 2 +- src/SFML/Window/Win32/JoystickImpl.hpp | 2 +- src/SFML/Window/Win32/SensorImpl.cpp | 2 +- src/SFML/Window/Win32/SensorImpl.hpp | 2 +- src/SFML/Window/Win32/VideoModeImpl.cpp | 2 +- src/SFML/Window/Win32/VulkanImplWin32.cpp | 2 +- src/SFML/Window/Win32/VulkanImplWin32.hpp | 2 +- src/SFML/Window/Win32/WglContext.cpp | 2 +- src/SFML/Window/Win32/WglContext.hpp | 2 +- src/SFML/Window/Win32/WindowImplWin32.cpp | 2 +- src/SFML/Window/Win32/WindowImplWin32.hpp | 2 +- src/SFML/Window/Window.cpp | 2 +- src/SFML/Window/WindowBase.cpp | 2 +- src/SFML/Window/WindowImpl.cpp | 2 +- src/SFML/Window/WindowImpl.hpp | 2 +- src/SFML/Window/iOS/ClipboardImpl.hpp | 2 +- src/SFML/Window/iOS/ClipboardImpl.mm | 2 +- src/SFML/Window/iOS/CursorImpl.cpp | 2 +- src/SFML/Window/iOS/CursorImpl.hpp | 2 +- src/SFML/Window/iOS/EaglContext.hpp | 2 +- src/SFML/Window/iOS/EaglContext.mm | 2 +- src/SFML/Window/iOS/InputImpl.hpp | 2 +- src/SFML/Window/iOS/InputImpl.mm | 2 +- src/SFML/Window/iOS/JoystickImpl.hpp | 2 +- src/SFML/Window/iOS/JoystickImpl.mm | 2 +- src/SFML/Window/iOS/ObjCType.hpp | 2 +- src/SFML/Window/iOS/SFAppDelegate.hpp | 2 +- src/SFML/Window/iOS/SFAppDelegate.mm | 2 +- src/SFML/Window/iOS/SFMain.hpp | 2 +- src/SFML/Window/iOS/SFMain.mm | 2 +- src/SFML/Window/iOS/SFView.hpp | 2 +- src/SFML/Window/iOS/SFView.mm | 2 +- src/SFML/Window/iOS/SFViewController.hpp | 2 +- src/SFML/Window/iOS/SFViewController.mm | 2 +- src/SFML/Window/iOS/SensorImpl.hpp | 2 +- src/SFML/Window/iOS/SensorImpl.mm | 2 +- src/SFML/Window/iOS/VideoModeImpl.mm | 2 +- src/SFML/Window/iOS/WindowImplUIKit.hpp | 2 +- src/SFML/Window/iOS/WindowImplUIKit.mm | 2 +- tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.hpp | 2 +- tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.mm | 2 +- .../templates/SFML/SFML App.xctemplate/TemplateInfo.plist.in | 2 +- .../templates/SFML/SFML Base.xctemplate/TemplateInfo.plist | 2 +- .../templates/SFML/SFML Bundle.xctemplate/TemplateInfo.plist | 2 +- .../xcode/templates/SFML/SFML CLT.xctemplate/TemplateInfo.plist | 2 +- .../SFML/SFML Compiler.xctemplate/TemplateInfo.plist.in | 2 +- .../templates/SFML/SFML Linker.xctemplate/TemplateInfo.plist | 2 +- 383 files changed, 383 insertions(+), 383 deletions(-) diff --git a/examples/cocoa/CocoaAppDelegate.h b/examples/cocoa/CocoaAppDelegate.h index 1a21572f..389e94b7 100644 --- a/examples/cocoa/CocoaAppDelegate.h +++ b/examples/cocoa/CocoaAppDelegate.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/examples/cocoa/CocoaAppDelegate.mm b/examples/cocoa/CocoaAppDelegate.mm index d264000c..bfb0dff1 100644 --- a/examples/cocoa/CocoaAppDelegate.mm +++ b/examples/cocoa/CocoaAppDelegate.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/examples/cocoa/NSString+stdstring.h b/examples/cocoa/NSString+stdstring.h index fa3df095..4d1d2f5a 100644 --- a/examples/cocoa/NSString+stdstring.h +++ b/examples/cocoa/NSString+stdstring.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/examples/cocoa/NSString+stdstring.mm b/examples/cocoa/NSString+stdstring.mm index 4958ae7d..59d147d0 100644 --- a/examples/cocoa/NSString+stdstring.mm +++ b/examples/cocoa/NSString+stdstring.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/examples/cocoa/main.m b/examples/cocoa/main.m index 209a86bf..03da8ce5 100644 --- a/examples/cocoa/main.m +++ b/examples/cocoa/main.m @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/examples/cocoa/resources/Cocoa-Info.plist b/examples/cocoa/resources/Cocoa-Info.plist index 7a7da9b9..1a937c30 100644 --- a/examples/cocoa/resources/Cocoa-Info.plist +++ b/examples/cocoa/resources/Cocoa-Info.plist @@ -25,7 +25,7 @@ LSMinimumSystemVersion 10.6 NSHumanReadableCopyright - Copyright © 2007-2019 Marco Antognini and Laurent Gomila. Shared under zlib/libpng License. + Copyright © 2007-2020 Marco Antognini and Laurent Gomila. Shared under zlib/libpng License. NSMainNibFile MainMenu NSPrincipalClass diff --git a/include/SFML/Audio.hpp b/include/SFML/Audio.hpp index f0b5b30a..68fe1a69 100644 --- a/include/SFML/Audio.hpp +++ b/include/SFML/Audio.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/AlResource.hpp b/include/SFML/Audio/AlResource.hpp index 9f0f4dcd..f670c139 100644 --- a/include/SFML/Audio/AlResource.hpp +++ b/include/SFML/Audio/AlResource.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/Export.hpp b/include/SFML/Audio/Export.hpp index bba990d9..c21ffb6e 100644 --- a/include/SFML/Audio/Export.hpp +++ b/include/SFML/Audio/Export.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/InputSoundFile.hpp b/include/SFML/Audio/InputSoundFile.hpp index f4000d4c..4c9eb951 100644 --- a/include/SFML/Audio/InputSoundFile.hpp +++ b/include/SFML/Audio/InputSoundFile.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/Listener.hpp b/include/SFML/Audio/Listener.hpp index f14beda2..569eb912 100644 --- a/include/SFML/Audio/Listener.hpp +++ b/include/SFML/Audio/Listener.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/Music.hpp b/include/SFML/Audio/Music.hpp index 732eb42b..bbe84c89 100644 --- a/include/SFML/Audio/Music.hpp +++ b/include/SFML/Audio/Music.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/OutputSoundFile.hpp b/include/SFML/Audio/OutputSoundFile.hpp index c8f06260..6247ef0e 100644 --- a/include/SFML/Audio/OutputSoundFile.hpp +++ b/include/SFML/Audio/OutputSoundFile.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/Sound.hpp b/include/SFML/Audio/Sound.hpp index a4a49835..909f4c16 100644 --- a/include/SFML/Audio/Sound.hpp +++ b/include/SFML/Audio/Sound.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundBuffer.hpp b/include/SFML/Audio/SoundBuffer.hpp index 8b965b6d..8b8391a5 100644 --- a/include/SFML/Audio/SoundBuffer.hpp +++ b/include/SFML/Audio/SoundBuffer.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundBufferRecorder.hpp b/include/SFML/Audio/SoundBufferRecorder.hpp index e14c4880..9e100d15 100644 --- a/include/SFML/Audio/SoundBufferRecorder.hpp +++ b/include/SFML/Audio/SoundBufferRecorder.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundFileFactory.hpp b/include/SFML/Audio/SoundFileFactory.hpp index b7d7c877..cae1f692 100644 --- a/include/SFML/Audio/SoundFileFactory.hpp +++ b/include/SFML/Audio/SoundFileFactory.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundFileFactory.inl b/include/SFML/Audio/SoundFileFactory.inl index e9794153..bbfa91f1 100644 --- a/include/SFML/Audio/SoundFileFactory.inl +++ b/include/SFML/Audio/SoundFileFactory.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundFileReader.hpp b/include/SFML/Audio/SoundFileReader.hpp index 04fd5ff6..61dd998f 100644 --- a/include/SFML/Audio/SoundFileReader.hpp +++ b/include/SFML/Audio/SoundFileReader.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundFileWriter.hpp b/include/SFML/Audio/SoundFileWriter.hpp index 5e7ae016..ff90bab2 100644 --- a/include/SFML/Audio/SoundFileWriter.hpp +++ b/include/SFML/Audio/SoundFileWriter.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundRecorder.hpp b/include/SFML/Audio/SoundRecorder.hpp index ccbdca12..53cf73ad 100644 --- a/include/SFML/Audio/SoundRecorder.hpp +++ b/include/SFML/Audio/SoundRecorder.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundSource.hpp b/include/SFML/Audio/SoundSource.hpp index 02a3f5d5..ce795d67 100644 --- a/include/SFML/Audio/SoundSource.hpp +++ b/include/SFML/Audio/SoundSource.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Audio/SoundStream.hpp b/include/SFML/Audio/SoundStream.hpp index 6fbaea4d..31c6b9f3 100644 --- a/include/SFML/Audio/SoundStream.hpp +++ b/include/SFML/Audio/SoundStream.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Config.hpp b/include/SFML/Config.hpp index c4e2f497..3f282f2a 100644 --- a/include/SFML/Config.hpp +++ b/include/SFML/Config.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/GpuPreference.hpp b/include/SFML/GpuPreference.hpp index a05c5a1d..d0cd9adf 100644 --- a/include/SFML/GpuPreference.hpp +++ b/include/SFML/GpuPreference.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics.hpp b/include/SFML/Graphics.hpp index d0e0c8ff..191c83fc 100644 --- a/include/SFML/Graphics.hpp +++ b/include/SFML/Graphics.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/BlendMode.hpp b/include/SFML/Graphics/BlendMode.hpp index c2613cba..4f8462b8 100644 --- a/include/SFML/Graphics/BlendMode.hpp +++ b/include/SFML/Graphics/BlendMode.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/CircleShape.hpp b/include/SFML/Graphics/CircleShape.hpp index eba29c58..6f01c8d1 100644 --- a/include/SFML/Graphics/CircleShape.hpp +++ b/include/SFML/Graphics/CircleShape.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Color.hpp b/include/SFML/Graphics/Color.hpp index 6771da13..6152b8c4 100644 --- a/include/SFML/Graphics/Color.hpp +++ b/include/SFML/Graphics/Color.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/ConvexShape.hpp b/include/SFML/Graphics/ConvexShape.hpp index 28b6f22b..45925651 100644 --- a/include/SFML/Graphics/ConvexShape.hpp +++ b/include/SFML/Graphics/ConvexShape.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Drawable.hpp b/include/SFML/Graphics/Drawable.hpp index f03e5e0e..612a8203 100644 --- a/include/SFML/Graphics/Drawable.hpp +++ b/include/SFML/Graphics/Drawable.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Export.hpp b/include/SFML/Graphics/Export.hpp index 1d9d6083..88e4358b 100644 --- a/include/SFML/Graphics/Export.hpp +++ b/include/SFML/Graphics/Export.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Font.hpp b/include/SFML/Graphics/Font.hpp index 2e57c9b7..11ed5d87 100644 --- a/include/SFML/Graphics/Font.hpp +++ b/include/SFML/Graphics/Font.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Glsl.hpp b/include/SFML/Graphics/Glsl.hpp index c395344e..6ea8694f 100644 --- a/include/SFML/Graphics/Glsl.hpp +++ b/include/SFML/Graphics/Glsl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Glsl.inl b/include/SFML/Graphics/Glsl.inl index 610b41b0..4a839fdc 100644 --- a/include/SFML/Graphics/Glsl.inl +++ b/include/SFML/Graphics/Glsl.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Glyph.hpp b/include/SFML/Graphics/Glyph.hpp index f0b4deb1..9ee00175 100644 --- a/include/SFML/Graphics/Glyph.hpp +++ b/include/SFML/Graphics/Glyph.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Image.hpp b/include/SFML/Graphics/Image.hpp index 570d4f11..f2a7518b 100644 --- a/include/SFML/Graphics/Image.hpp +++ b/include/SFML/Graphics/Image.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/PrimitiveType.hpp b/include/SFML/Graphics/PrimitiveType.hpp index 74e3c416..08b675e3 100644 --- a/include/SFML/Graphics/PrimitiveType.hpp +++ b/include/SFML/Graphics/PrimitiveType.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Rect.hpp b/include/SFML/Graphics/Rect.hpp index 0342e5f3..d6cba3dd 100644 --- a/include/SFML/Graphics/Rect.hpp +++ b/include/SFML/Graphics/Rect.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Rect.inl b/include/SFML/Graphics/Rect.inl index 1aa073dc..d996c604 100644 --- a/include/SFML/Graphics/Rect.inl +++ b/include/SFML/Graphics/Rect.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/RectangleShape.hpp b/include/SFML/Graphics/RectangleShape.hpp index f2151768..b3375794 100644 --- a/include/SFML/Graphics/RectangleShape.hpp +++ b/include/SFML/Graphics/RectangleShape.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/RenderStates.hpp b/include/SFML/Graphics/RenderStates.hpp index 08ff6324..ed6c9131 100644 --- a/include/SFML/Graphics/RenderStates.hpp +++ b/include/SFML/Graphics/RenderStates.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/RenderTarget.hpp b/include/SFML/Graphics/RenderTarget.hpp index 29f411c3..58bb8c33 100644 --- a/include/SFML/Graphics/RenderTarget.hpp +++ b/include/SFML/Graphics/RenderTarget.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/RenderTexture.hpp b/include/SFML/Graphics/RenderTexture.hpp index 7d5f612f..0931ee7b 100644 --- a/include/SFML/Graphics/RenderTexture.hpp +++ b/include/SFML/Graphics/RenderTexture.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/RenderWindow.hpp b/include/SFML/Graphics/RenderWindow.hpp index 969cbf12..bf32e356 100644 --- a/include/SFML/Graphics/RenderWindow.hpp +++ b/include/SFML/Graphics/RenderWindow.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Shader.hpp b/include/SFML/Graphics/Shader.hpp index 60fb7777..9ac485a4 100644 --- a/include/SFML/Graphics/Shader.hpp +++ b/include/SFML/Graphics/Shader.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Shape.hpp b/include/SFML/Graphics/Shape.hpp index 087ef94e..44893cb5 100644 --- a/include/SFML/Graphics/Shape.hpp +++ b/include/SFML/Graphics/Shape.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Sprite.hpp b/include/SFML/Graphics/Sprite.hpp index 56bea3e5..9581192e 100644 --- a/include/SFML/Graphics/Sprite.hpp +++ b/include/SFML/Graphics/Sprite.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Text.hpp b/include/SFML/Graphics/Text.hpp index 25c6b462..8b1a093f 100644 --- a/include/SFML/Graphics/Text.hpp +++ b/include/SFML/Graphics/Text.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Texture.hpp b/include/SFML/Graphics/Texture.hpp index 66035b45..0fbb0f9c 100644 --- a/include/SFML/Graphics/Texture.hpp +++ b/include/SFML/Graphics/Texture.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Transform.hpp b/include/SFML/Graphics/Transform.hpp index e26c01cd..d46aeebb 100644 --- a/include/SFML/Graphics/Transform.hpp +++ b/include/SFML/Graphics/Transform.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Transformable.hpp b/include/SFML/Graphics/Transformable.hpp index 7d653f1e..c1560e2a 100644 --- a/include/SFML/Graphics/Transformable.hpp +++ b/include/SFML/Graphics/Transformable.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/Vertex.hpp b/include/SFML/Graphics/Vertex.hpp index 16d0512b..6755479e 100644 --- a/include/SFML/Graphics/Vertex.hpp +++ b/include/SFML/Graphics/Vertex.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/VertexArray.hpp b/include/SFML/Graphics/VertexArray.hpp index 1cf8e7f9..1645f65f 100644 --- a/include/SFML/Graphics/VertexArray.hpp +++ b/include/SFML/Graphics/VertexArray.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/VertexBuffer.hpp b/include/SFML/Graphics/VertexBuffer.hpp index 76dfe761..7daaf014 100644 --- a/include/SFML/Graphics/VertexBuffer.hpp +++ b/include/SFML/Graphics/VertexBuffer.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Graphics/View.hpp b/include/SFML/Graphics/View.hpp index 0c1691a7..6712c944 100644 --- a/include/SFML/Graphics/View.hpp +++ b/include/SFML/Graphics/View.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Main.hpp b/include/SFML/Main.hpp index 9cc93623..27e3296e 100644 --- a/include/SFML/Main.hpp +++ b/include/SFML/Main.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network.hpp b/include/SFML/Network.hpp index fc2c626b..f3f98c30 100644 --- a/include/SFML/Network.hpp +++ b/include/SFML/Network.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/Export.hpp b/include/SFML/Network/Export.hpp index b3c52218..516a9d08 100644 --- a/include/SFML/Network/Export.hpp +++ b/include/SFML/Network/Export.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/Ftp.hpp b/include/SFML/Network/Ftp.hpp index 3cac70f9..ddc3a9c8 100644 --- a/include/SFML/Network/Ftp.hpp +++ b/include/SFML/Network/Ftp.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/Http.hpp b/include/SFML/Network/Http.hpp index 067f2f4a..61754729 100644 --- a/include/SFML/Network/Http.hpp +++ b/include/SFML/Network/Http.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/IpAddress.hpp b/include/SFML/Network/IpAddress.hpp index 4ed5ea0d..b497b245 100644 --- a/include/SFML/Network/IpAddress.hpp +++ b/include/SFML/Network/IpAddress.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/Packet.hpp b/include/SFML/Network/Packet.hpp index 9728276c..db9a797e 100644 --- a/include/SFML/Network/Packet.hpp +++ b/include/SFML/Network/Packet.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/Socket.hpp b/include/SFML/Network/Socket.hpp index d5f7319e..9ebb930b 100644 --- a/include/SFML/Network/Socket.hpp +++ b/include/SFML/Network/Socket.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/SocketHandle.hpp b/include/SFML/Network/SocketHandle.hpp index 1dd13095..688ea0bf 100644 --- a/include/SFML/Network/SocketHandle.hpp +++ b/include/SFML/Network/SocketHandle.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/SocketSelector.hpp b/include/SFML/Network/SocketSelector.hpp index d8e2b965..332f0724 100644 --- a/include/SFML/Network/SocketSelector.hpp +++ b/include/SFML/Network/SocketSelector.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/TcpListener.hpp b/include/SFML/Network/TcpListener.hpp index 3cc4d2c7..d0bdad40 100644 --- a/include/SFML/Network/TcpListener.hpp +++ b/include/SFML/Network/TcpListener.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/TcpSocket.hpp b/include/SFML/Network/TcpSocket.hpp index 52b84e1c..5778068a 100644 --- a/include/SFML/Network/TcpSocket.hpp +++ b/include/SFML/Network/TcpSocket.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Network/UdpSocket.hpp b/include/SFML/Network/UdpSocket.hpp index 01645410..14176f8e 100644 --- a/include/SFML/Network/UdpSocket.hpp +++ b/include/SFML/Network/UdpSocket.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/OpenGL.hpp b/include/SFML/OpenGL.hpp index cc48a483..45a3ac3d 100644 --- a/include/SFML/OpenGL.hpp +++ b/include/SFML/OpenGL.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System.hpp b/include/SFML/System.hpp index 37dff6bb..3c82226b 100644 --- a/include/SFML/System.hpp +++ b/include/SFML/System.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Clock.hpp b/include/SFML/System/Clock.hpp index 6e40c001..21503477 100644 --- a/include/SFML/System/Clock.hpp +++ b/include/SFML/System/Clock.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Err.hpp b/include/SFML/System/Err.hpp index 37bf1388..9ad1b29c 100644 --- a/include/SFML/System/Err.hpp +++ b/include/SFML/System/Err.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Export.hpp b/include/SFML/System/Export.hpp index 39dfd20b..b9691eec 100644 --- a/include/SFML/System/Export.hpp +++ b/include/SFML/System/Export.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/FileInputStream.hpp b/include/SFML/System/FileInputStream.hpp index bc051c44..d46be628 100644 --- a/include/SFML/System/FileInputStream.hpp +++ b/include/SFML/System/FileInputStream.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/InputStream.hpp b/include/SFML/System/InputStream.hpp index a4cb52ee..28022eca 100644 --- a/include/SFML/System/InputStream.hpp +++ b/include/SFML/System/InputStream.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Lock.hpp b/include/SFML/System/Lock.hpp index e4d33a88..8667d144 100644 --- a/include/SFML/System/Lock.hpp +++ b/include/SFML/System/Lock.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/MemoryInputStream.hpp b/include/SFML/System/MemoryInputStream.hpp index e97df71f..15cf38d9 100644 --- a/include/SFML/System/MemoryInputStream.hpp +++ b/include/SFML/System/MemoryInputStream.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Mutex.hpp b/include/SFML/System/Mutex.hpp index c7b1f9e3..34610c30 100644 --- a/include/SFML/System/Mutex.hpp +++ b/include/SFML/System/Mutex.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/NativeActivity.hpp b/include/SFML/System/NativeActivity.hpp index 6f5437eb..25609b5c 100644 --- a/include/SFML/System/NativeActivity.hpp +++ b/include/SFML/System/NativeActivity.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/NonCopyable.hpp b/include/SFML/System/NonCopyable.hpp index 1115ce2c..c5b42c8c 100644 --- a/include/SFML/System/NonCopyable.hpp +++ b/include/SFML/System/NonCopyable.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Sleep.hpp b/include/SFML/System/Sleep.hpp index aa3bc3a7..98668651 100644 --- a/include/SFML/System/Sleep.hpp +++ b/include/SFML/System/Sleep.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/String.hpp b/include/SFML/System/String.hpp index 46a87e42..970105dc 100644 --- a/include/SFML/System/String.hpp +++ b/include/SFML/System/String.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/String.inl b/include/SFML/System/String.inl index 85915d82..0f3a890b 100644 --- a/include/SFML/System/String.inl +++ b/include/SFML/System/String.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Thread.hpp b/include/SFML/System/Thread.hpp index 16701b7b..ead09e84 100644 --- a/include/SFML/System/Thread.hpp +++ b/include/SFML/System/Thread.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Thread.inl b/include/SFML/System/Thread.inl index 1d40c54d..55976e86 100644 --- a/include/SFML/System/Thread.inl +++ b/include/SFML/System/Thread.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/ThreadLocal.hpp b/include/SFML/System/ThreadLocal.hpp index 1eb442b5..065f29c2 100644 --- a/include/SFML/System/ThreadLocal.hpp +++ b/include/SFML/System/ThreadLocal.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/ThreadLocalPtr.hpp b/include/SFML/System/ThreadLocalPtr.hpp index 549ffb0d..a6ecd9de 100644 --- a/include/SFML/System/ThreadLocalPtr.hpp +++ b/include/SFML/System/ThreadLocalPtr.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/ThreadLocalPtr.inl b/include/SFML/System/ThreadLocalPtr.inl index 14e453e9..f76c77f8 100644 --- a/include/SFML/System/ThreadLocalPtr.inl +++ b/include/SFML/System/ThreadLocalPtr.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Time.hpp b/include/SFML/System/Time.hpp index 4541afbc..1478730c 100644 --- a/include/SFML/System/Time.hpp +++ b/include/SFML/System/Time.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Utf.hpp b/include/SFML/System/Utf.hpp index 1452d3d5..af567531 100644 --- a/include/SFML/System/Utf.hpp +++ b/include/SFML/System/Utf.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Utf.inl b/include/SFML/System/Utf.inl index 1fed3a00..d1ea73de 100644 --- a/include/SFML/System/Utf.inl +++ b/include/SFML/System/Utf.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Vector2.hpp b/include/SFML/System/Vector2.hpp index 3335944c..429e649f 100644 --- a/include/SFML/System/Vector2.hpp +++ b/include/SFML/System/Vector2.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Vector2.inl b/include/SFML/System/Vector2.inl index 2faee862..848395b3 100644 --- a/include/SFML/System/Vector2.inl +++ b/include/SFML/System/Vector2.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Vector3.hpp b/include/SFML/System/Vector3.hpp index 4aced322..08220c9f 100644 --- a/include/SFML/System/Vector3.hpp +++ b/include/SFML/System/Vector3.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/System/Vector3.inl b/include/SFML/System/Vector3.inl index f139dcde..852c6dbb 100644 --- a/include/SFML/System/Vector3.inl +++ b/include/SFML/System/Vector3.inl @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window.hpp b/include/SFML/Window.hpp index da70c3ce..e3667b01 100644 --- a/include/SFML/Window.hpp +++ b/include/SFML/Window.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Clipboard.hpp b/include/SFML/Window/Clipboard.hpp index b7c1cd06..68a37973 100644 --- a/include/SFML/Window/Clipboard.hpp +++ b/include/SFML/Window/Clipboard.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Context.hpp b/include/SFML/Window/Context.hpp index 01590834..7ef9b9a1 100644 --- a/include/SFML/Window/Context.hpp +++ b/include/SFML/Window/Context.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/ContextSettings.hpp b/include/SFML/Window/ContextSettings.hpp index 1acd60e9..d2d84385 100644 --- a/include/SFML/Window/ContextSettings.hpp +++ b/include/SFML/Window/ContextSettings.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Cursor.hpp b/include/SFML/Window/Cursor.hpp index f13840f6..c5d90d95 100644 --- a/include/SFML/Window/Cursor.hpp +++ b/include/SFML/Window/Cursor.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Event.hpp b/include/SFML/Window/Event.hpp index 53b37d95..2b7c8dcb 100644 --- a/include/SFML/Window/Event.hpp +++ b/include/SFML/Window/Event.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Export.hpp b/include/SFML/Window/Export.hpp index 5b198410..11f27b36 100644 --- a/include/SFML/Window/Export.hpp +++ b/include/SFML/Window/Export.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/GlResource.hpp b/include/SFML/Window/GlResource.hpp index 3d007fc5..223707e8 100644 --- a/include/SFML/Window/GlResource.hpp +++ b/include/SFML/Window/GlResource.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Joystick.hpp b/include/SFML/Window/Joystick.hpp index ad61587e..dd5454c3 100644 --- a/include/SFML/Window/Joystick.hpp +++ b/include/SFML/Window/Joystick.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Keyboard.hpp b/include/SFML/Window/Keyboard.hpp index 92ea8df8..0bbcd8ab 100644 --- a/include/SFML/Window/Keyboard.hpp +++ b/include/SFML/Window/Keyboard.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Mouse.hpp b/include/SFML/Window/Mouse.hpp index 7506282d..d2b7fefa 100644 --- a/include/SFML/Window/Mouse.hpp +++ b/include/SFML/Window/Mouse.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Sensor.hpp b/include/SFML/Window/Sensor.hpp index 2bce8676..337bc7f4 100644 --- a/include/SFML/Window/Sensor.hpp +++ b/include/SFML/Window/Sensor.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Touch.hpp b/include/SFML/Window/Touch.hpp index fa64f390..bc9f72e1 100644 --- a/include/SFML/Window/Touch.hpp +++ b/include/SFML/Window/Touch.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/VideoMode.hpp b/include/SFML/Window/VideoMode.hpp index 24c4ec61..d95ea49a 100644 --- a/include/SFML/Window/VideoMode.hpp +++ b/include/SFML/Window/VideoMode.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Vulkan.hpp b/include/SFML/Window/Vulkan.hpp index cd501a12..00ee911a 100644 --- a/include/SFML/Window/Vulkan.hpp +++ b/include/SFML/Window/Vulkan.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/Window.hpp b/include/SFML/Window/Window.hpp index f89fc353..bcbe8725 100644 --- a/include/SFML/Window/Window.hpp +++ b/include/SFML/Window/Window.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/WindowBase.hpp b/include/SFML/Window/WindowBase.hpp index b3073cbf..d1d4ff98 100644 --- a/include/SFML/Window/WindowBase.hpp +++ b/include/SFML/Window/WindowBase.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/WindowHandle.hpp b/include/SFML/Window/WindowHandle.hpp index c05d50be..624ca737 100644 --- a/include/SFML/Window/WindowHandle.hpp +++ b/include/SFML/Window/WindowHandle.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/include/SFML/Window/WindowStyle.hpp b/include/SFML/Window/WindowStyle.hpp index 5edf76ce..ab611d29 100644 --- a/include/SFML/Window/WindowStyle.hpp +++ b/include/SFML/Window/WindowStyle.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/license.md b/license.md index 9f6db1a9..1ae961a7 100644 --- a/license.md +++ b/license.md @@ -1,6 +1,6 @@ # SFML -SFML - Copyright (C) 2007-2019 Laurent Gomila - laurent@sfml-dev.org +SFML - Copyright (C) 2007-2020 Laurent Gomila - laurent@sfml-dev.org This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/ALCheck.cpp b/src/SFML/Audio/ALCheck.cpp index 8514cc98..a7873a0a 100644 --- a/src/SFML/Audio/ALCheck.cpp +++ b/src/SFML/Audio/ALCheck.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/ALCheck.hpp b/src/SFML/Audio/ALCheck.hpp index 963d271a..95259fb7 100644 --- a/src/SFML/Audio/ALCheck.hpp +++ b/src/SFML/Audio/ALCheck.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/AlResource.cpp b/src/SFML/Audio/AlResource.cpp index f59d36b4..42a4945f 100644 --- a/src/SFML/Audio/AlResource.cpp +++ b/src/SFML/Audio/AlResource.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/AudioDevice.cpp b/src/SFML/Audio/AudioDevice.cpp index e4ebc4b9..b9246dfd 100644 --- a/src/SFML/Audio/AudioDevice.cpp +++ b/src/SFML/Audio/AudioDevice.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/AudioDevice.hpp b/src/SFML/Audio/AudioDevice.hpp index af940217..a8bac26e 100644 --- a/src/SFML/Audio/AudioDevice.hpp +++ b/src/SFML/Audio/AudioDevice.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/InputSoundFile.cpp b/src/SFML/Audio/InputSoundFile.cpp index 6d9da57c..cb8bed04 100644 --- a/src/SFML/Audio/InputSoundFile.cpp +++ b/src/SFML/Audio/InputSoundFile.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/Listener.cpp b/src/SFML/Audio/Listener.cpp index bbbece5e..477f0931 100644 --- a/src/SFML/Audio/Listener.cpp +++ b/src/SFML/Audio/Listener.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/Music.cpp b/src/SFML/Audio/Music.cpp index b8829d02..d711eff1 100644 --- a/src/SFML/Audio/Music.cpp +++ b/src/SFML/Audio/Music.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/OutputSoundFile.cpp b/src/SFML/Audio/OutputSoundFile.cpp index c6584352..ddaafcf0 100644 --- a/src/SFML/Audio/OutputSoundFile.cpp +++ b/src/SFML/Audio/OutputSoundFile.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/Sound.cpp b/src/SFML/Audio/Sound.cpp index 36e65849..505e9588 100644 --- a/src/SFML/Audio/Sound.cpp +++ b/src/SFML/Audio/Sound.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundBuffer.cpp b/src/SFML/Audio/SoundBuffer.cpp index dfd137ff..3c23920e 100644 --- a/src/SFML/Audio/SoundBuffer.cpp +++ b/src/SFML/Audio/SoundBuffer.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundBufferRecorder.cpp b/src/SFML/Audio/SoundBufferRecorder.cpp index 12694354..2d8b63c7 100644 --- a/src/SFML/Audio/SoundBufferRecorder.cpp +++ b/src/SFML/Audio/SoundBufferRecorder.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileFactory.cpp b/src/SFML/Audio/SoundFileFactory.cpp index a0caf7a1..2f7ddfc2 100644 --- a/src/SFML/Audio/SoundFileFactory.cpp +++ b/src/SFML/Audio/SoundFileFactory.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileReaderFlac.cpp b/src/SFML/Audio/SoundFileReaderFlac.cpp index c9a8cb97..88600e30 100644 --- a/src/SFML/Audio/SoundFileReaderFlac.cpp +++ b/src/SFML/Audio/SoundFileReaderFlac.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileReaderFlac.hpp b/src/SFML/Audio/SoundFileReaderFlac.hpp index 23ec12db..53cf0c4f 100644 --- a/src/SFML/Audio/SoundFileReaderFlac.hpp +++ b/src/SFML/Audio/SoundFileReaderFlac.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileReaderOgg.cpp b/src/SFML/Audio/SoundFileReaderOgg.cpp index 0621cad0..5585ab38 100644 --- a/src/SFML/Audio/SoundFileReaderOgg.cpp +++ b/src/SFML/Audio/SoundFileReaderOgg.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileReaderOgg.hpp b/src/SFML/Audio/SoundFileReaderOgg.hpp index 67b03f47..7942bec6 100644 --- a/src/SFML/Audio/SoundFileReaderOgg.hpp +++ b/src/SFML/Audio/SoundFileReaderOgg.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileReaderWav.cpp b/src/SFML/Audio/SoundFileReaderWav.cpp index e498dd55..df9dab94 100644 --- a/src/SFML/Audio/SoundFileReaderWav.cpp +++ b/src/SFML/Audio/SoundFileReaderWav.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileReaderWav.hpp b/src/SFML/Audio/SoundFileReaderWav.hpp index f2f89479..04e3a10d 100644 --- a/src/SFML/Audio/SoundFileReaderWav.hpp +++ b/src/SFML/Audio/SoundFileReaderWav.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileWriterFlac.cpp b/src/SFML/Audio/SoundFileWriterFlac.cpp index f30c2fec..ddd3c20a 100644 --- a/src/SFML/Audio/SoundFileWriterFlac.cpp +++ b/src/SFML/Audio/SoundFileWriterFlac.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileWriterFlac.hpp b/src/SFML/Audio/SoundFileWriterFlac.hpp index 7eef2e4a..d54975e9 100644 --- a/src/SFML/Audio/SoundFileWriterFlac.hpp +++ b/src/SFML/Audio/SoundFileWriterFlac.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileWriterOgg.cpp b/src/SFML/Audio/SoundFileWriterOgg.cpp index 9791ef36..c56847e5 100644 --- a/src/SFML/Audio/SoundFileWriterOgg.cpp +++ b/src/SFML/Audio/SoundFileWriterOgg.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileWriterOgg.hpp b/src/SFML/Audio/SoundFileWriterOgg.hpp index 19bb6cca..7a482d1c 100644 --- a/src/SFML/Audio/SoundFileWriterOgg.hpp +++ b/src/SFML/Audio/SoundFileWriterOgg.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileWriterWav.cpp b/src/SFML/Audio/SoundFileWriterWav.cpp index 3353d236..4f82d5ef 100644 --- a/src/SFML/Audio/SoundFileWriterWav.cpp +++ b/src/SFML/Audio/SoundFileWriterWav.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundFileWriterWav.hpp b/src/SFML/Audio/SoundFileWriterWav.hpp index f1b07e7e..58d16845 100644 --- a/src/SFML/Audio/SoundFileWriterWav.hpp +++ b/src/SFML/Audio/SoundFileWriterWav.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundRecorder.cpp b/src/SFML/Audio/SoundRecorder.cpp index 8b0b6901..1066b452 100644 --- a/src/SFML/Audio/SoundRecorder.cpp +++ b/src/SFML/Audio/SoundRecorder.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundSource.cpp b/src/SFML/Audio/SoundSource.cpp index f4bc4b20..7bc6b3a0 100644 --- a/src/SFML/Audio/SoundSource.cpp +++ b/src/SFML/Audio/SoundSource.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Audio/SoundStream.cpp b/src/SFML/Audio/SoundStream.cpp index d8f5f785..b4172a2b 100644 --- a/src/SFML/Audio/SoundStream.cpp +++ b/src/SFML/Audio/SoundStream.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/BlendMode.cpp b/src/SFML/Graphics/BlendMode.cpp index 7f0901af..7897247f 100644 --- a/src/SFML/Graphics/BlendMode.cpp +++ b/src/SFML/Graphics/BlendMode.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/CircleShape.cpp b/src/SFML/Graphics/CircleShape.cpp index 730353fc..8c70f626 100644 --- a/src/SFML/Graphics/CircleShape.cpp +++ b/src/SFML/Graphics/CircleShape.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Color.cpp b/src/SFML/Graphics/Color.cpp index 02b8581f..b0bb6876 100644 --- a/src/SFML/Graphics/Color.cpp +++ b/src/SFML/Graphics/Color.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/ConvexShape.cpp b/src/SFML/Graphics/ConvexShape.cpp index 9346e3d9..fa5da832 100644 --- a/src/SFML/Graphics/ConvexShape.cpp +++ b/src/SFML/Graphics/ConvexShape.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Font.cpp b/src/SFML/Graphics/Font.cpp index e5616ffe..76c4d2e3 100644 --- a/src/SFML/Graphics/Font.cpp +++ b/src/SFML/Graphics/Font.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/GLCheck.cpp b/src/SFML/Graphics/GLCheck.cpp index 5bb140c1..e908eaae 100644 --- a/src/SFML/Graphics/GLCheck.cpp +++ b/src/SFML/Graphics/GLCheck.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/GLCheck.hpp b/src/SFML/Graphics/GLCheck.hpp index 19ab3b1e..c1bcaea3 100644 --- a/src/SFML/Graphics/GLCheck.hpp +++ b/src/SFML/Graphics/GLCheck.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/GLExtensions.cpp b/src/SFML/Graphics/GLExtensions.cpp index 60d25847..109fe3a9 100644 --- a/src/SFML/Graphics/GLExtensions.cpp +++ b/src/SFML/Graphics/GLExtensions.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/GLExtensions.hpp b/src/SFML/Graphics/GLExtensions.hpp index 829155fa..ec0391d4 100644 --- a/src/SFML/Graphics/GLExtensions.hpp +++ b/src/SFML/Graphics/GLExtensions.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Glsl.cpp b/src/SFML/Graphics/Glsl.cpp index 3a1e5593..557dc9bd 100644 --- a/src/SFML/Graphics/Glsl.cpp +++ b/src/SFML/Graphics/Glsl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Image.cpp b/src/SFML/Graphics/Image.cpp index 1ef43269..bb791d66 100644 --- a/src/SFML/Graphics/Image.cpp +++ b/src/SFML/Graphics/Image.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/ImageLoader.cpp b/src/SFML/Graphics/ImageLoader.cpp index 3c26e49c..d0e7ac9e 100644 --- a/src/SFML/Graphics/ImageLoader.cpp +++ b/src/SFML/Graphics/ImageLoader.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/ImageLoader.hpp b/src/SFML/Graphics/ImageLoader.hpp index ce437b43..c178cb7a 100644 --- a/src/SFML/Graphics/ImageLoader.hpp +++ b/src/SFML/Graphics/ImageLoader.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RectangleShape.cpp b/src/SFML/Graphics/RectangleShape.cpp index 58777fd5..66569ba8 100644 --- a/src/SFML/Graphics/RectangleShape.cpp +++ b/src/SFML/Graphics/RectangleShape.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderStates.cpp b/src/SFML/Graphics/RenderStates.cpp index adaceb34..fff6f08e 100644 --- a/src/SFML/Graphics/RenderStates.cpp +++ b/src/SFML/Graphics/RenderStates.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTarget.cpp b/src/SFML/Graphics/RenderTarget.cpp index a9c0ecac..5b0dbd3a 100644 --- a/src/SFML/Graphics/RenderTarget.cpp +++ b/src/SFML/Graphics/RenderTarget.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTexture.cpp b/src/SFML/Graphics/RenderTexture.cpp index bd0566a0..9daad7af 100644 --- a/src/SFML/Graphics/RenderTexture.cpp +++ b/src/SFML/Graphics/RenderTexture.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTextureImpl.cpp b/src/SFML/Graphics/RenderTextureImpl.cpp index 63d55f0b..e766dd9f 100644 --- a/src/SFML/Graphics/RenderTextureImpl.cpp +++ b/src/SFML/Graphics/RenderTextureImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTextureImpl.hpp b/src/SFML/Graphics/RenderTextureImpl.hpp index 5ed3733c..22b1c54e 100644 --- a/src/SFML/Graphics/RenderTextureImpl.hpp +++ b/src/SFML/Graphics/RenderTextureImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTextureImplDefault.cpp b/src/SFML/Graphics/RenderTextureImplDefault.cpp index dabc938e..a0cac97f 100644 --- a/src/SFML/Graphics/RenderTextureImplDefault.cpp +++ b/src/SFML/Graphics/RenderTextureImplDefault.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTextureImplDefault.hpp b/src/SFML/Graphics/RenderTextureImplDefault.hpp index f7ab219e..97e3b299 100644 --- a/src/SFML/Graphics/RenderTextureImplDefault.hpp +++ b/src/SFML/Graphics/RenderTextureImplDefault.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTextureImplFBO.cpp b/src/SFML/Graphics/RenderTextureImplFBO.cpp index c2afc8b0..45eb2a9c 100644 --- a/src/SFML/Graphics/RenderTextureImplFBO.cpp +++ b/src/SFML/Graphics/RenderTextureImplFBO.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderTextureImplFBO.hpp b/src/SFML/Graphics/RenderTextureImplFBO.hpp index 8cddd109..7fcf6eff 100644 --- a/src/SFML/Graphics/RenderTextureImplFBO.hpp +++ b/src/SFML/Graphics/RenderTextureImplFBO.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/RenderWindow.cpp b/src/SFML/Graphics/RenderWindow.cpp index 38ec2a7c..d26a5f37 100644 --- a/src/SFML/Graphics/RenderWindow.cpp +++ b/src/SFML/Graphics/RenderWindow.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Shader.cpp b/src/SFML/Graphics/Shader.cpp index 9d0cfba4..cbfc4d20 100644 --- a/src/SFML/Graphics/Shader.cpp +++ b/src/SFML/Graphics/Shader.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Shape.cpp b/src/SFML/Graphics/Shape.cpp index d0245d5d..57670307 100644 --- a/src/SFML/Graphics/Shape.cpp +++ b/src/SFML/Graphics/Shape.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Sprite.cpp b/src/SFML/Graphics/Sprite.cpp index 1fdfc5d5..f32dc486 100644 --- a/src/SFML/Graphics/Sprite.cpp +++ b/src/SFML/Graphics/Sprite.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Text.cpp b/src/SFML/Graphics/Text.cpp index 7cb4f889..2ba7d466 100644 --- a/src/SFML/Graphics/Text.cpp +++ b/src/SFML/Graphics/Text.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Texture.cpp b/src/SFML/Graphics/Texture.cpp index a139115d..ef731a65 100644 --- a/src/SFML/Graphics/Texture.cpp +++ b/src/SFML/Graphics/Texture.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/TextureSaver.cpp b/src/SFML/Graphics/TextureSaver.cpp index 1a71c089..7ffbc0bb 100644 --- a/src/SFML/Graphics/TextureSaver.cpp +++ b/src/SFML/Graphics/TextureSaver.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/TextureSaver.hpp b/src/SFML/Graphics/TextureSaver.hpp index 68109456..560c2fce 100644 --- a/src/SFML/Graphics/TextureSaver.hpp +++ b/src/SFML/Graphics/TextureSaver.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Transform.cpp b/src/SFML/Graphics/Transform.cpp index 68d3e3be..9a6706ce 100644 --- a/src/SFML/Graphics/Transform.cpp +++ b/src/SFML/Graphics/Transform.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Transformable.cpp b/src/SFML/Graphics/Transformable.cpp index a47b2ee0..6a8f0735 100644 --- a/src/SFML/Graphics/Transformable.cpp +++ b/src/SFML/Graphics/Transformable.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/Vertex.cpp b/src/SFML/Graphics/Vertex.cpp index e389b68a..801af444 100644 --- a/src/SFML/Graphics/Vertex.cpp +++ b/src/SFML/Graphics/Vertex.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/VertexArray.cpp b/src/SFML/Graphics/VertexArray.cpp index accf7e79..9be9d7d9 100644 --- a/src/SFML/Graphics/VertexArray.cpp +++ b/src/SFML/Graphics/VertexArray.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/VertexBuffer.cpp b/src/SFML/Graphics/VertexBuffer.cpp index 4d5497c8..2b3166a2 100644 --- a/src/SFML/Graphics/VertexBuffer.cpp +++ b/src/SFML/Graphics/VertexBuffer.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Graphics/View.cpp b/src/SFML/Graphics/View.cpp index 4d1fb2f3..048f3136 100644 --- a/src/SFML/Graphics/View.cpp +++ b/src/SFML/Graphics/View.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Main/MainAndroid.cpp b/src/SFML/Main/MainAndroid.cpp index 38fd99b8..daf6dac1 100644 --- a/src/SFML/Main/MainAndroid.cpp +++ b/src/SFML/Main/MainAndroid.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Main/MainWin32.cpp b/src/SFML/Main/MainWin32.cpp index a8aa19d4..6a382024 100644 --- a/src/SFML/Main/MainWin32.cpp +++ b/src/SFML/Main/MainWin32.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // Copyright (C) 2013 Jonathan De Wachter (dewachter.jonathan@gmail.com) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Main/MainiOS.mm b/src/SFML/Main/MainiOS.mm index 901248a1..534db334 100644 --- a/src/SFML/Main/MainiOS.mm +++ b/src/SFML/Main/MainiOS.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.prg) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.prg) // Copyright (C) 2013 Jonathan De Wachter (dewachter.jonathan@gmail.com) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Network/Ftp.cpp b/src/SFML/Network/Ftp.cpp index 4eb13bcb..6b5ebce8 100644 --- a/src/SFML/Network/Ftp.cpp +++ b/src/SFML/Network/Ftp.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/Http.cpp b/src/SFML/Network/Http.cpp index 251b8125..40a5167f 100644 --- a/src/SFML/Network/Http.cpp +++ b/src/SFML/Network/Http.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/IpAddress.cpp b/src/SFML/Network/IpAddress.cpp index 8cc145f6..067c7ae5 100644 --- a/src/SFML/Network/IpAddress.cpp +++ b/src/SFML/Network/IpAddress.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/Packet.cpp b/src/SFML/Network/Packet.cpp index 2cb85bdb..951c4bdb 100644 --- a/src/SFML/Network/Packet.cpp +++ b/src/SFML/Network/Packet.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/Socket.cpp b/src/SFML/Network/Socket.cpp index 7a92a473..622f9d4b 100644 --- a/src/SFML/Network/Socket.cpp +++ b/src/SFML/Network/Socket.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/SocketImpl.hpp b/src/SFML/Network/SocketImpl.hpp index 1f6803da..c958099c 100644 --- a/src/SFML/Network/SocketImpl.hpp +++ b/src/SFML/Network/SocketImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/SocketSelector.cpp b/src/SFML/Network/SocketSelector.cpp index c180736a..465e0a72 100644 --- a/src/SFML/Network/SocketSelector.cpp +++ b/src/SFML/Network/SocketSelector.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/TcpListener.cpp b/src/SFML/Network/TcpListener.cpp index 8a79b99b..38749d56 100644 --- a/src/SFML/Network/TcpListener.cpp +++ b/src/SFML/Network/TcpListener.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/TcpSocket.cpp b/src/SFML/Network/TcpSocket.cpp index 7a8e9183..8333b952 100644 --- a/src/SFML/Network/TcpSocket.cpp +++ b/src/SFML/Network/TcpSocket.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/UdpSocket.cpp b/src/SFML/Network/UdpSocket.cpp index 373b6842..3e193914 100644 --- a/src/SFML/Network/UdpSocket.cpp +++ b/src/SFML/Network/UdpSocket.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/Unix/SocketImpl.cpp b/src/SFML/Network/Unix/SocketImpl.cpp index e565a482..5f59171b 100644 --- a/src/SFML/Network/Unix/SocketImpl.cpp +++ b/src/SFML/Network/Unix/SocketImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/Unix/SocketImpl.hpp b/src/SFML/Network/Unix/SocketImpl.hpp index 9b816baa..3de92334 100644 --- a/src/SFML/Network/Unix/SocketImpl.hpp +++ b/src/SFML/Network/Unix/SocketImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/Win32/SocketImpl.cpp b/src/SFML/Network/Win32/SocketImpl.cpp index 9bff3d7a..b369e182 100644 --- a/src/SFML/Network/Win32/SocketImpl.cpp +++ b/src/SFML/Network/Win32/SocketImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Network/Win32/SocketImpl.hpp b/src/SFML/Network/Win32/SocketImpl.hpp index 7fdfa52e..82557546 100644 --- a/src/SFML/Network/Win32/SocketImpl.hpp +++ b/src/SFML/Network/Win32/SocketImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Android/Activity.cpp b/src/SFML/System/Android/Activity.cpp index b52921aa..11dfaeb1 100644 --- a/src/SFML/System/Android/Activity.cpp +++ b/src/SFML/System/Android/Activity.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // Copyright (C) 2013 Jonathan De Wachter (dewachter.jonathan@gmail.com) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/System/Android/NativeActivity.cpp b/src/SFML/System/Android/NativeActivity.cpp index 39a2fbce..ee01eedc 100644 --- a/src/SFML/System/Android/NativeActivity.cpp +++ b/src/SFML/System/Android/NativeActivity.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Clock.cpp b/src/SFML/System/Clock.cpp index dc3a2544..8e4aca01 100644 --- a/src/SFML/System/Clock.cpp +++ b/src/SFML/System/Clock.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Err.cpp b/src/SFML/System/Err.cpp index 0a593e3a..1e8a8465 100644 --- a/src/SFML/System/Err.cpp +++ b/src/SFML/System/Err.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/FileInputStream.cpp b/src/SFML/System/FileInputStream.cpp index 41c91176..bab93f52 100644 --- a/src/SFML/System/FileInputStream.cpp +++ b/src/SFML/System/FileInputStream.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Lock.cpp b/src/SFML/System/Lock.cpp index 0fbb404d..b4084b00 100644 --- a/src/SFML/System/Lock.cpp +++ b/src/SFML/System/Lock.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/MemoryInputStream.cpp b/src/SFML/System/MemoryInputStream.cpp index d6334acd..6b849a97 100644 --- a/src/SFML/System/MemoryInputStream.cpp +++ b/src/SFML/System/MemoryInputStream.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Mutex.cpp b/src/SFML/System/Mutex.cpp index 2f6726f3..21a86e45 100644 --- a/src/SFML/System/Mutex.cpp +++ b/src/SFML/System/Mutex.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Sleep.cpp b/src/SFML/System/Sleep.cpp index fc036c48..3d1beca3 100644 --- a/src/SFML/System/Sleep.cpp +++ b/src/SFML/System/Sleep.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/String.cpp b/src/SFML/System/String.cpp index c33cb948..92d8ec21 100644 --- a/src/SFML/System/String.cpp +++ b/src/SFML/System/String.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Thread.cpp b/src/SFML/System/Thread.cpp index bd250a90..6576f104 100644 --- a/src/SFML/System/Thread.cpp +++ b/src/SFML/System/Thread.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/ThreadLocal.cpp b/src/SFML/System/ThreadLocal.cpp index 812a99b7..5917cf33 100644 --- a/src/SFML/System/ThreadLocal.cpp +++ b/src/SFML/System/ThreadLocal.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Time.cpp b/src/SFML/System/Time.cpp index 09abf45f..b7963e7c 100644 --- a/src/SFML/System/Time.cpp +++ b/src/SFML/System/Time.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/ClockImpl.cpp b/src/SFML/System/Unix/ClockImpl.cpp index 2a70fbd7..5a6e4682 100644 --- a/src/SFML/System/Unix/ClockImpl.cpp +++ b/src/SFML/System/Unix/ClockImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/ClockImpl.hpp b/src/SFML/System/Unix/ClockImpl.hpp index 942ee9c4..c966b3e8 100644 --- a/src/SFML/System/Unix/ClockImpl.hpp +++ b/src/SFML/System/Unix/ClockImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/MutexImpl.cpp b/src/SFML/System/Unix/MutexImpl.cpp index b9c46749..8c000598 100644 --- a/src/SFML/System/Unix/MutexImpl.cpp +++ b/src/SFML/System/Unix/MutexImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/MutexImpl.hpp b/src/SFML/System/Unix/MutexImpl.hpp index dead79d0..83c4f42c 100644 --- a/src/SFML/System/Unix/MutexImpl.hpp +++ b/src/SFML/System/Unix/MutexImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/SleepImpl.cpp b/src/SFML/System/Unix/SleepImpl.cpp index 1da9b8db..6aabaf41 100644 --- a/src/SFML/System/Unix/SleepImpl.cpp +++ b/src/SFML/System/Unix/SleepImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/SleepImpl.hpp b/src/SFML/System/Unix/SleepImpl.hpp index 0fb634e9..57843cc1 100644 --- a/src/SFML/System/Unix/SleepImpl.hpp +++ b/src/SFML/System/Unix/SleepImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/ThreadImpl.cpp b/src/SFML/System/Unix/ThreadImpl.cpp index d8d4d9ad..aaf906e1 100644 --- a/src/SFML/System/Unix/ThreadImpl.cpp +++ b/src/SFML/System/Unix/ThreadImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/ThreadImpl.hpp b/src/SFML/System/Unix/ThreadImpl.hpp index e538514d..4906326d 100644 --- a/src/SFML/System/Unix/ThreadImpl.hpp +++ b/src/SFML/System/Unix/ThreadImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/ThreadLocalImpl.cpp b/src/SFML/System/Unix/ThreadLocalImpl.cpp index 45d08fb4..33c6889e 100644 --- a/src/SFML/System/Unix/ThreadLocalImpl.cpp +++ b/src/SFML/System/Unix/ThreadLocalImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Unix/ThreadLocalImpl.hpp b/src/SFML/System/Unix/ThreadLocalImpl.hpp index db71e0b9..a1d5e713 100644 --- a/src/SFML/System/Unix/ThreadLocalImpl.hpp +++ b/src/SFML/System/Unix/ThreadLocalImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/ClockImpl.cpp b/src/SFML/System/Win32/ClockImpl.cpp index 603426d8..37ecc9ca 100644 --- a/src/SFML/System/Win32/ClockImpl.cpp +++ b/src/SFML/System/Win32/ClockImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/ClockImpl.hpp b/src/SFML/System/Win32/ClockImpl.hpp index cbca5c24..0af60834 100644 --- a/src/SFML/System/Win32/ClockImpl.hpp +++ b/src/SFML/System/Win32/ClockImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/MutexImpl.cpp b/src/SFML/System/Win32/MutexImpl.cpp index 7d562a38..3c3452ea 100644 --- a/src/SFML/System/Win32/MutexImpl.cpp +++ b/src/SFML/System/Win32/MutexImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/MutexImpl.hpp b/src/SFML/System/Win32/MutexImpl.hpp index 1a36a6d5..2947e3b1 100644 --- a/src/SFML/System/Win32/MutexImpl.hpp +++ b/src/SFML/System/Win32/MutexImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/SleepImpl.cpp b/src/SFML/System/Win32/SleepImpl.cpp index 172a8a88..f61353e4 100644 --- a/src/SFML/System/Win32/SleepImpl.cpp +++ b/src/SFML/System/Win32/SleepImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/SleepImpl.hpp b/src/SFML/System/Win32/SleepImpl.hpp index 37005ab7..5c356414 100644 --- a/src/SFML/System/Win32/SleepImpl.hpp +++ b/src/SFML/System/Win32/SleepImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/ThreadImpl.cpp b/src/SFML/System/Win32/ThreadImpl.cpp index e1c84993..94bc7f8a 100644 --- a/src/SFML/System/Win32/ThreadImpl.cpp +++ b/src/SFML/System/Win32/ThreadImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/ThreadImpl.hpp b/src/SFML/System/Win32/ThreadImpl.hpp index f4dc9534..afdfc9f3 100644 --- a/src/SFML/System/Win32/ThreadImpl.hpp +++ b/src/SFML/System/Win32/ThreadImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/ThreadLocalImpl.cpp b/src/SFML/System/Win32/ThreadLocalImpl.cpp index eef6106a..49d95e00 100644 --- a/src/SFML/System/Win32/ThreadLocalImpl.cpp +++ b/src/SFML/System/Win32/ThreadLocalImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/System/Win32/ThreadLocalImpl.hpp b/src/SFML/System/Win32/ThreadLocalImpl.hpp index d87db142..3a2b0238 100644 --- a/src/SFML/System/Win32/ThreadLocalImpl.hpp +++ b/src/SFML/System/Win32/ThreadLocalImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Android/ClipboardImpl.cpp b/src/SFML/Window/Android/ClipboardImpl.cpp index c7d3728e..ef9af6c4 100644 --- a/src/SFML/Window/Android/ClipboardImpl.cpp +++ b/src/SFML/Window/Android/ClipboardImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Android/ClipboardImpl.hpp b/src/SFML/Window/Android/ClipboardImpl.hpp index c243999c..22dda649 100644 --- a/src/SFML/Window/Android/ClipboardImpl.hpp +++ b/src/SFML/Window/Android/ClipboardImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Android/CursorImpl.cpp b/src/SFML/Window/Android/CursorImpl.cpp index faf0b631..3913b295 100644 --- a/src/SFML/Window/Android/CursorImpl.cpp +++ b/src/SFML/Window/Android/CursorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Android/CursorImpl.hpp b/src/SFML/Window/Android/CursorImpl.hpp index 096902d5..57cffbd4 100644 --- a/src/SFML/Window/Android/CursorImpl.hpp +++ b/src/SFML/Window/Android/CursorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Android/SensorImpl.cpp b/src/SFML/Window/Android/SensorImpl.cpp index 9497d9d6..ed89e4d7 100644 --- a/src/SFML/Window/Android/SensorImpl.cpp +++ b/src/SFML/Window/Android/SensorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Android/SensorImpl.hpp b/src/SFML/Window/Android/SensorImpl.hpp index ce6865ee..bdfdfcc3 100644 --- a/src/SFML/Window/Android/SensorImpl.hpp +++ b/src/SFML/Window/Android/SensorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Clipboard.cpp b/src/SFML/Window/Clipboard.cpp index 230789e3..78284446 100644 --- a/src/SFML/Window/Clipboard.cpp +++ b/src/SFML/Window/Clipboard.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/ClipboardImpl.hpp b/src/SFML/Window/ClipboardImpl.hpp index 7efd448f..d0d2c324 100644 --- a/src/SFML/Window/ClipboardImpl.hpp +++ b/src/SFML/Window/ClipboardImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Context.cpp b/src/SFML/Window/Context.cpp index 2b174aa0..76cd0c59 100644 --- a/src/SFML/Window/Context.cpp +++ b/src/SFML/Window/Context.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Cursor.cpp b/src/SFML/Window/Cursor.cpp index 91b08686..b7be0acd 100644 --- a/src/SFML/Window/Cursor.cpp +++ b/src/SFML/Window/Cursor.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/CursorImpl.hpp b/src/SFML/Window/CursorImpl.hpp index afb22ddb..bf507b2c 100644 --- a/src/SFML/Window/CursorImpl.hpp +++ b/src/SFML/Window/CursorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/FreeBSD/JoystickImpl.cpp b/src/SFML/Window/FreeBSD/JoystickImpl.cpp index 9e5677b6..472ae2af 100644 --- a/src/SFML/Window/FreeBSD/JoystickImpl.cpp +++ b/src/SFML/Window/FreeBSD/JoystickImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // 2013-2013 David Demelier (demelier.david@gmail.com) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/FreeBSD/JoystickImpl.hpp b/src/SFML/Window/FreeBSD/JoystickImpl.hpp index f16672cd..3a24df78 100644 --- a/src/SFML/Window/FreeBSD/JoystickImpl.hpp +++ b/src/SFML/Window/FreeBSD/JoystickImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/GlContext.cpp b/src/SFML/Window/GlContext.cpp index 32ef89d3..00d4a200 100644 --- a/src/SFML/Window/GlContext.cpp +++ b/src/SFML/Window/GlContext.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/GlContext.hpp b/src/SFML/Window/GlContext.hpp index fb76a029..1f447622 100644 --- a/src/SFML/Window/GlContext.hpp +++ b/src/SFML/Window/GlContext.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/GlResource.cpp b/src/SFML/Window/GlResource.cpp index 64c7f602..538fa3bf 100644 --- a/src/SFML/Window/GlResource.cpp +++ b/src/SFML/Window/GlResource.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/InputImpl.hpp b/src/SFML/Window/InputImpl.hpp index 61982965..4294bdb4 100644 --- a/src/SFML/Window/InputImpl.hpp +++ b/src/SFML/Window/InputImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Joystick.cpp b/src/SFML/Window/Joystick.cpp index 13faa2cd..29fb4dd2 100644 --- a/src/SFML/Window/Joystick.cpp +++ b/src/SFML/Window/Joystick.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/JoystickImpl.hpp b/src/SFML/Window/JoystickImpl.hpp index d469ff0c..e6835526 100644 --- a/src/SFML/Window/JoystickImpl.hpp +++ b/src/SFML/Window/JoystickImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/JoystickManager.cpp b/src/SFML/Window/JoystickManager.cpp index 0741fdf7..12eaa590 100644 --- a/src/SFML/Window/JoystickManager.cpp +++ b/src/SFML/Window/JoystickManager.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/JoystickManager.hpp b/src/SFML/Window/JoystickManager.hpp index 10ba6a20..7289af76 100644 --- a/src/SFML/Window/JoystickManager.hpp +++ b/src/SFML/Window/JoystickManager.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Keyboard.cpp b/src/SFML/Window/Keyboard.cpp index d37e3f87..4cf43202 100644 --- a/src/SFML/Window/Keyboard.cpp +++ b/src/SFML/Window/Keyboard.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Mouse.cpp b/src/SFML/Window/Mouse.cpp index a64bb9a7..2009413e 100644 --- a/src/SFML/Window/Mouse.cpp +++ b/src/SFML/Window/Mouse.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/OSX/AutoreleasePoolWrapper.h b/src/SFML/Window/OSX/AutoreleasePoolWrapper.h index bf3125eb..04097fe8 100644 --- a/src/SFML/Window/OSX/AutoreleasePoolWrapper.h +++ b/src/SFML/Window/OSX/AutoreleasePoolWrapper.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/AutoreleasePoolWrapper.mm b/src/SFML/Window/OSX/AutoreleasePoolWrapper.mm index b8f5c1a4..3ec0a09f 100644 --- a/src/SFML/Window/OSX/AutoreleasePoolWrapper.mm +++ b/src/SFML/Window/OSX/AutoreleasePoolWrapper.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/ClipboardImpl.hpp b/src/SFML/Window/OSX/ClipboardImpl.hpp index a59de40d..28adae1a 100644 --- a/src/SFML/Window/OSX/ClipboardImpl.hpp +++ b/src/SFML/Window/OSX/ClipboardImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/OSX/ClipboardImpl.mm b/src/SFML/Window/OSX/ClipboardImpl.mm index 6f051b5b..5a8438c7 100644 --- a/src/SFML/Window/OSX/ClipboardImpl.mm +++ b/src/SFML/Window/OSX/ClipboardImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/OSX/CursorImpl.hpp b/src/SFML/Window/OSX/CursorImpl.hpp index f12b94b0..f0bd1850 100644 --- a/src/SFML/Window/OSX/CursorImpl.hpp +++ b/src/SFML/Window/OSX/CursorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/CursorImpl.mm b/src/SFML/Window/OSX/CursorImpl.mm index 1ca93607..a3539137 100644 --- a/src/SFML/Window/OSX/CursorImpl.mm +++ b/src/SFML/Window/OSX/CursorImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/HIDInputManager.hpp b/src/SFML/Window/OSX/HIDInputManager.hpp index 3e143c8a..e6f8c493 100644 --- a/src/SFML/Window/OSX/HIDInputManager.hpp +++ b/src/SFML/Window/OSX/HIDInputManager.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/HIDInputManager.mm b/src/SFML/Window/OSX/HIDInputManager.mm index 7fd40ecb..3c44eab6 100644 --- a/src/SFML/Window/OSX/HIDInputManager.mm +++ b/src/SFML/Window/OSX/HIDInputManager.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/HIDJoystickManager.cpp b/src/SFML/Window/OSX/HIDJoystickManager.cpp index 0a7cb7c8..d1727bf0 100644 --- a/src/SFML/Window/OSX/HIDJoystickManager.cpp +++ b/src/SFML/Window/OSX/HIDJoystickManager.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/HIDJoystickManager.hpp b/src/SFML/Window/OSX/HIDJoystickManager.hpp index 32e79c80..f87c7a32 100644 --- a/src/SFML/Window/OSX/HIDJoystickManager.hpp +++ b/src/SFML/Window/OSX/HIDJoystickManager.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/InputImpl.hpp b/src/SFML/Window/OSX/InputImpl.hpp index 30943407..202b2a73 100644 --- a/src/SFML/Window/OSX/InputImpl.hpp +++ b/src/SFML/Window/OSX/InputImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/InputImpl.mm b/src/SFML/Window/OSX/InputImpl.mm index 0397237a..b3c7d11c 100644 --- a/src/SFML/Window/OSX/InputImpl.mm +++ b/src/SFML/Window/OSX/InputImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/JoystickImpl.cpp b/src/SFML/Window/OSX/JoystickImpl.cpp index 333cf462..4f4ee114 100644 --- a/src/SFML/Window/OSX/JoystickImpl.cpp +++ b/src/SFML/Window/OSX/JoystickImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/JoystickImpl.hpp b/src/SFML/Window/OSX/JoystickImpl.hpp index cdcd741d..96304094 100644 --- a/src/SFML/Window/OSX/JoystickImpl.hpp +++ b/src/SFML/Window/OSX/JoystickImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/NSImage+raw.h b/src/SFML/Window/OSX/NSImage+raw.h index 4530c136..f65363d9 100644 --- a/src/SFML/Window/OSX/NSImage+raw.h +++ b/src/SFML/Window/OSX/NSImage+raw.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/NSImage+raw.mm b/src/SFML/Window/OSX/NSImage+raw.mm index 03bd6d9e..ac0e7771 100644 --- a/src/SFML/Window/OSX/NSImage+raw.mm +++ b/src/SFML/Window/OSX/NSImage+raw.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFApplication.h b/src/SFML/Window/OSX/SFApplication.h index b2a97531..3ee0e8fe 100644 --- a/src/SFML/Window/OSX/SFApplication.h +++ b/src/SFML/Window/OSX/SFApplication.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFApplication.m b/src/SFML/Window/OSX/SFApplication.m index a438c7a1..311ec24b 100644 --- a/src/SFML/Window/OSX/SFApplication.m +++ b/src/SFML/Window/OSX/SFApplication.m @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFApplicationDelegate.h b/src/SFML/Window/OSX/SFApplicationDelegate.h index 9f39e923..9ebbedcc 100644 --- a/src/SFML/Window/OSX/SFApplicationDelegate.h +++ b/src/SFML/Window/OSX/SFApplicationDelegate.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFApplicationDelegate.m b/src/SFML/Window/OSX/SFApplicationDelegate.m index a6fff904..381e4126 100644 --- a/src/SFML/Window/OSX/SFApplicationDelegate.m +++ b/src/SFML/Window/OSX/SFApplicationDelegate.m @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFContext.hpp b/src/SFML/Window/OSX/SFContext.hpp index 87473a58..2fedc803 100644 --- a/src/SFML/Window/OSX/SFContext.hpp +++ b/src/SFML/Window/OSX/SFContext.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFContext.mm b/src/SFML/Window/OSX/SFContext.mm index 4bd3c3eb..02ffe36d 100644 --- a/src/SFML/Window/OSX/SFContext.mm +++ b/src/SFML/Window/OSX/SFContext.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h index ea2d5a17..b2cf0b1c 100644 --- a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h +++ b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm index 105e9110..fd6dfe37 100644 --- a/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm +++ b/src/SFML/Window/OSX/SFKeyboardModifiersHelper.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm b/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm index eb3e1231..e9a6fac6 100644 --- a/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm +++ b/src/SFML/Window/OSX/SFOpenGLView+keyboard.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFOpenGLView+keyboard_priv.h b/src/SFML/Window/OSX/SFOpenGLView+keyboard_priv.h index 8496affa..31e6a659 100644 --- a/src/SFML/Window/OSX/SFOpenGLView+keyboard_priv.h +++ b/src/SFML/Window/OSX/SFOpenGLView+keyboard_priv.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFOpenGLView+mouse.mm b/src/SFML/Window/OSX/SFOpenGLView+mouse.mm index 99acef0b..b812dd2f 100644 --- a/src/SFML/Window/OSX/SFOpenGLView+mouse.mm +++ b/src/SFML/Window/OSX/SFOpenGLView+mouse.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFOpenGLView+mouse_priv.h b/src/SFML/Window/OSX/SFOpenGLView+mouse_priv.h index fb64368a..05eba4df 100644 --- a/src/SFML/Window/OSX/SFOpenGLView+mouse_priv.h +++ b/src/SFML/Window/OSX/SFOpenGLView+mouse_priv.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFOpenGLView.h b/src/SFML/Window/OSX/SFOpenGLView.h index b2a66896..641eab28 100644 --- a/src/SFML/Window/OSX/SFOpenGLView.h +++ b/src/SFML/Window/OSX/SFOpenGLView.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFOpenGLView.mm b/src/SFML/Window/OSX/SFOpenGLView.mm index 85d5cd8d..b6eb0d2f 100644 --- a/src/SFML/Window/OSX/SFOpenGLView.mm +++ b/src/SFML/Window/OSX/SFOpenGLView.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFSilentResponder.h b/src/SFML/Window/OSX/SFSilentResponder.h index de0471c7..da94d129 100644 --- a/src/SFML/Window/OSX/SFSilentResponder.h +++ b/src/SFML/Window/OSX/SFSilentResponder.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFSilentResponder.m b/src/SFML/Window/OSX/SFSilentResponder.m index 55c0fb84..8aa63ab1 100644 --- a/src/SFML/Window/OSX/SFSilentResponder.m +++ b/src/SFML/Window/OSX/SFSilentResponder.m @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFViewController.h b/src/SFML/Window/OSX/SFViewController.h index f0e59f47..cc5108a9 100644 --- a/src/SFML/Window/OSX/SFViewController.h +++ b/src/SFML/Window/OSX/SFViewController.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFViewController.mm b/src/SFML/Window/OSX/SFViewController.mm index c8266be0..8d5cb34a 100644 --- a/src/SFML/Window/OSX/SFViewController.mm +++ b/src/SFML/Window/OSX/SFViewController.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFWindow.h b/src/SFML/Window/OSX/SFWindow.h index 9e9a9e38..58875a6e 100644 --- a/src/SFML/Window/OSX/SFWindow.h +++ b/src/SFML/Window/OSX/SFWindow.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFWindow.m b/src/SFML/Window/OSX/SFWindow.m index 77bc637f..ae348dce 100644 --- a/src/SFML/Window/OSX/SFWindow.m +++ b/src/SFML/Window/OSX/SFWindow.m @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFWindowController.h b/src/SFML/Window/OSX/SFWindowController.h index 62e346a4..cba2b304 100644 --- a/src/SFML/Window/OSX/SFWindowController.h +++ b/src/SFML/Window/OSX/SFWindowController.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SFWindowController.mm b/src/SFML/Window/OSX/SFWindowController.mm index 190af4df..bc368c73 100644 --- a/src/SFML/Window/OSX/SFWindowController.mm +++ b/src/SFML/Window/OSX/SFWindowController.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/Scaling.h b/src/SFML/Window/OSX/Scaling.h index a71f62d9..f44c77e0 100644 --- a/src/SFML/Window/OSX/Scaling.h +++ b/src/SFML/Window/OSX/Scaling.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/SensorImpl.cpp b/src/SFML/Window/OSX/SensorImpl.cpp index a0c83977..e91d5cdf 100644 --- a/src/SFML/Window/OSX/SensorImpl.cpp +++ b/src/SFML/Window/OSX/SensorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/OSX/SensorImpl.hpp b/src/SFML/Window/OSX/SensorImpl.hpp index 3da61189..c7555279 100644 --- a/src/SFML/Window/OSX/SensorImpl.hpp +++ b/src/SFML/Window/OSX/SensorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/OSX/VideoModeImpl.cpp b/src/SFML/Window/OSX/VideoModeImpl.cpp index 4370926e..741c4bd2 100644 --- a/src/SFML/Window/OSX/VideoModeImpl.cpp +++ b/src/SFML/Window/OSX/VideoModeImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/WindowImplCocoa.hpp b/src/SFML/Window/OSX/WindowImplCocoa.hpp index 0035fe94..efa0f667 100644 --- a/src/SFML/Window/OSX/WindowImplCocoa.hpp +++ b/src/SFML/Window/OSX/WindowImplCocoa.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/WindowImplCocoa.mm b/src/SFML/Window/OSX/WindowImplCocoa.mm index eaa67bfe..e68f42e6 100644 --- a/src/SFML/Window/OSX/WindowImplCocoa.mm +++ b/src/SFML/Window/OSX/WindowImplCocoa.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/WindowImplDelegateProtocol.h b/src/SFML/Window/OSX/WindowImplDelegateProtocol.h index 29d8410c..925c9e51 100644 --- a/src/SFML/Window/OSX/WindowImplDelegateProtocol.h +++ b/src/SFML/Window/OSX/WindowImplDelegateProtocol.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/cg_sf_conversion.hpp b/src/SFML/Window/OSX/cg_sf_conversion.hpp index 099e0c5a..41c3835c 100644 --- a/src/SFML/Window/OSX/cg_sf_conversion.hpp +++ b/src/SFML/Window/OSX/cg_sf_conversion.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/cg_sf_conversion.mm b/src/SFML/Window/OSX/cg_sf_conversion.mm index dfc8f394..06d0fe51 100644 --- a/src/SFML/Window/OSX/cg_sf_conversion.mm +++ b/src/SFML/Window/OSX/cg_sf_conversion.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/cpp_objc_conversion.h b/src/SFML/Window/OSX/cpp_objc_conversion.h index 572829f6..9ecd9df0 100644 --- a/src/SFML/Window/OSX/cpp_objc_conversion.h +++ b/src/SFML/Window/OSX/cpp_objc_conversion.h @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/OSX/cpp_objc_conversion.mm b/src/SFML/Window/OSX/cpp_objc_conversion.mm index d3534069..d9422701 100644 --- a/src/SFML/Window/OSX/cpp_objc_conversion.mm +++ b/src/SFML/Window/OSX/cpp_objc_conversion.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/src/SFML/Window/Sensor.cpp b/src/SFML/Window/Sensor.cpp index 3caf78fc..316b8d5f 100644 --- a/src/SFML/Window/Sensor.cpp +++ b/src/SFML/Window/Sensor.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/SensorImpl.hpp b/src/SFML/Window/SensorImpl.hpp index bc42532a..cd50911a 100644 --- a/src/SFML/Window/SensorImpl.hpp +++ b/src/SFML/Window/SensorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/SensorManager.cpp b/src/SFML/Window/SensorManager.cpp index 1c14e0e7..73304bee 100644 --- a/src/SFML/Window/SensorManager.cpp +++ b/src/SFML/Window/SensorManager.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/SensorManager.hpp b/src/SFML/Window/SensorManager.hpp index 85c433a7..41b31729 100644 --- a/src/SFML/Window/SensorManager.hpp +++ b/src/SFML/Window/SensorManager.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Touch.cpp b/src/SFML/Window/Touch.cpp index bac6a93e..67c60da1 100644 --- a/src/SFML/Window/Touch.cpp +++ b/src/SFML/Window/Touch.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/ClipboardImpl.cpp b/src/SFML/Window/Unix/ClipboardImpl.cpp index a01ca932..32ea47e8 100644 --- a/src/SFML/Window/Unix/ClipboardImpl.cpp +++ b/src/SFML/Window/Unix/ClipboardImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/ClipboardImpl.hpp b/src/SFML/Window/Unix/ClipboardImpl.hpp index ab9e1548..a61593bc 100644 --- a/src/SFML/Window/Unix/ClipboardImpl.hpp +++ b/src/SFML/Window/Unix/ClipboardImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/CursorImpl.cpp b/src/SFML/Window/Unix/CursorImpl.cpp index 2b566b7f..d088e482 100644 --- a/src/SFML/Window/Unix/CursorImpl.cpp +++ b/src/SFML/Window/Unix/CursorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/CursorImpl.hpp b/src/SFML/Window/Unix/CursorImpl.hpp index 6740f220..ca39b782 100644 --- a/src/SFML/Window/Unix/CursorImpl.hpp +++ b/src/SFML/Window/Unix/CursorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/Display.cpp b/src/SFML/Window/Unix/Display.cpp index f9157e97..3ebbf365 100644 --- a/src/SFML/Window/Unix/Display.cpp +++ b/src/SFML/Window/Unix/Display.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/Display.hpp b/src/SFML/Window/Unix/Display.hpp index c8a6687c..3a7c4035 100644 --- a/src/SFML/Window/Unix/Display.hpp +++ b/src/SFML/Window/Unix/Display.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/GlxContext.cpp b/src/SFML/Window/Unix/GlxContext.cpp index 0cc1b953..d6525eb5 100644 --- a/src/SFML/Window/Unix/GlxContext.cpp +++ b/src/SFML/Window/Unix/GlxContext.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/GlxContext.hpp b/src/SFML/Window/Unix/GlxContext.hpp index d8a80a0e..f5e4b879 100644 --- a/src/SFML/Window/Unix/GlxContext.hpp +++ b/src/SFML/Window/Unix/GlxContext.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/InputImpl.cpp b/src/SFML/Window/Unix/InputImpl.cpp index 3818805e..3f3b6d72 100644 --- a/src/SFML/Window/Unix/InputImpl.cpp +++ b/src/SFML/Window/Unix/InputImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/InputImpl.hpp b/src/SFML/Window/Unix/InputImpl.hpp index 741a92e5..99d1c718 100644 --- a/src/SFML/Window/Unix/InputImpl.hpp +++ b/src/SFML/Window/Unix/InputImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/JoystickImpl.cpp b/src/SFML/Window/Unix/JoystickImpl.cpp index a6fe1afc..483a0545 100644 --- a/src/SFML/Window/Unix/JoystickImpl.cpp +++ b/src/SFML/Window/Unix/JoystickImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/JoystickImpl.hpp b/src/SFML/Window/Unix/JoystickImpl.hpp index 946b9fd3..7f905271 100644 --- a/src/SFML/Window/Unix/JoystickImpl.hpp +++ b/src/SFML/Window/Unix/JoystickImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/SensorImpl.cpp b/src/SFML/Window/Unix/SensorImpl.cpp index a0c83977..e91d5cdf 100644 --- a/src/SFML/Window/Unix/SensorImpl.cpp +++ b/src/SFML/Window/Unix/SensorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/SensorImpl.hpp b/src/SFML/Window/Unix/SensorImpl.hpp index 67a9277b..4ef84573 100644 --- a/src/SFML/Window/Unix/SensorImpl.hpp +++ b/src/SFML/Window/Unix/SensorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/VideoModeImpl.cpp b/src/SFML/Window/Unix/VideoModeImpl.cpp index 9107e9c5..6cc04657 100644 --- a/src/SFML/Window/Unix/VideoModeImpl.cpp +++ b/src/SFML/Window/Unix/VideoModeImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/VulkanImplX11.cpp b/src/SFML/Window/Unix/VulkanImplX11.cpp index 5b57e298..1ec6e341 100644 --- a/src/SFML/Window/Unix/VulkanImplX11.cpp +++ b/src/SFML/Window/Unix/VulkanImplX11.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/VulkanImplX11.hpp b/src/SFML/Window/Unix/VulkanImplX11.hpp index 1c86c76d..ded47e92 100644 --- a/src/SFML/Window/Unix/VulkanImplX11.hpp +++ b/src/SFML/Window/Unix/VulkanImplX11.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/WindowImplX11.cpp b/src/SFML/Window/Unix/WindowImplX11.cpp index 1b2e78b9..726eef4f 100644 --- a/src/SFML/Window/Unix/WindowImplX11.cpp +++ b/src/SFML/Window/Unix/WindowImplX11.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Unix/WindowImplX11.hpp b/src/SFML/Window/Unix/WindowImplX11.hpp index 2a107ab7..0237dd36 100644 --- a/src/SFML/Window/Unix/WindowImplX11.hpp +++ b/src/SFML/Window/Unix/WindowImplX11.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/VideoMode.cpp b/src/SFML/Window/VideoMode.cpp index d1f9e46e..a8ca72cc 100644 --- a/src/SFML/Window/VideoMode.cpp +++ b/src/SFML/Window/VideoMode.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/VideoModeImpl.hpp b/src/SFML/Window/VideoModeImpl.hpp index d5dbed2a..3be196d6 100644 --- a/src/SFML/Window/VideoModeImpl.hpp +++ b/src/SFML/Window/VideoModeImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Vulkan.cpp b/src/SFML/Window/Vulkan.cpp index f7b2be15..1a13beeb 100644 --- a/src/SFML/Window/Vulkan.cpp +++ b/src/SFML/Window/Vulkan.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/ClipboardImpl.cpp b/src/SFML/Window/Win32/ClipboardImpl.cpp index 17c02f13..8b88e1f3 100644 --- a/src/SFML/Window/Win32/ClipboardImpl.cpp +++ b/src/SFML/Window/Win32/ClipboardImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/ClipboardImpl.hpp b/src/SFML/Window/Win32/ClipboardImpl.hpp index 6d627509..43b1202a 100644 --- a/src/SFML/Window/Win32/ClipboardImpl.hpp +++ b/src/SFML/Window/Win32/ClipboardImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/CursorImpl.cpp b/src/SFML/Window/Win32/CursorImpl.cpp index 9d275b7a..cfe36f59 100755 --- a/src/SFML/Window/Win32/CursorImpl.cpp +++ b/src/SFML/Window/Win32/CursorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/CursorImpl.hpp b/src/SFML/Window/Win32/CursorImpl.hpp index 18dd3952..945a2680 100755 --- a/src/SFML/Window/Win32/CursorImpl.hpp +++ b/src/SFML/Window/Win32/CursorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/InputImpl.cpp b/src/SFML/Window/Win32/InputImpl.cpp index 5f4e993c..4ad03682 100644 --- a/src/SFML/Window/Win32/InputImpl.cpp +++ b/src/SFML/Window/Win32/InputImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/InputImpl.hpp b/src/SFML/Window/Win32/InputImpl.hpp index 87e21209..483062a0 100644 --- a/src/SFML/Window/Win32/InputImpl.hpp +++ b/src/SFML/Window/Win32/InputImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/JoystickImpl.cpp b/src/SFML/Window/Win32/JoystickImpl.cpp index 9f8339d5..49f85da3 100644 --- a/src/SFML/Window/Win32/JoystickImpl.cpp +++ b/src/SFML/Window/Win32/JoystickImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/JoystickImpl.hpp b/src/SFML/Window/Win32/JoystickImpl.hpp index ffff8c33..0ed1d819 100644 --- a/src/SFML/Window/Win32/JoystickImpl.hpp +++ b/src/SFML/Window/Win32/JoystickImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/SensorImpl.cpp b/src/SFML/Window/Win32/SensorImpl.cpp index a0c83977..e91d5cdf 100644 --- a/src/SFML/Window/Win32/SensorImpl.cpp +++ b/src/SFML/Window/Win32/SensorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/SensorImpl.hpp b/src/SFML/Window/Win32/SensorImpl.hpp index 1c50fa63..91265745 100644 --- a/src/SFML/Window/Win32/SensorImpl.hpp +++ b/src/SFML/Window/Win32/SensorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/VideoModeImpl.cpp b/src/SFML/Window/Win32/VideoModeImpl.cpp index 1f77be3f..3e305d01 100644 --- a/src/SFML/Window/Win32/VideoModeImpl.cpp +++ b/src/SFML/Window/Win32/VideoModeImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/VulkanImplWin32.cpp b/src/SFML/Window/Win32/VulkanImplWin32.cpp index 6b68e9d2..a843b0b3 100644 --- a/src/SFML/Window/Win32/VulkanImplWin32.cpp +++ b/src/SFML/Window/Win32/VulkanImplWin32.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/VulkanImplWin32.hpp b/src/SFML/Window/Win32/VulkanImplWin32.hpp index 11bf9a37..f3de5e66 100644 --- a/src/SFML/Window/Win32/VulkanImplWin32.hpp +++ b/src/SFML/Window/Win32/VulkanImplWin32.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/WglContext.cpp b/src/SFML/Window/Win32/WglContext.cpp index 6252be02..62ca37fe 100644 --- a/src/SFML/Window/Win32/WglContext.cpp +++ b/src/SFML/Window/Win32/WglContext.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/WglContext.hpp b/src/SFML/Window/Win32/WglContext.hpp index 47fb9328..184e06df 100644 --- a/src/SFML/Window/Win32/WglContext.hpp +++ b/src/SFML/Window/Win32/WglContext.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/WindowImplWin32.cpp b/src/SFML/Window/Win32/WindowImplWin32.cpp index e9d1c18b..ed56f026 100755 --- a/src/SFML/Window/Win32/WindowImplWin32.cpp +++ b/src/SFML/Window/Win32/WindowImplWin32.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Win32/WindowImplWin32.hpp b/src/SFML/Window/Win32/WindowImplWin32.hpp index ba2f662d..c58d77d7 100755 --- a/src/SFML/Window/Win32/WindowImplWin32.hpp +++ b/src/SFML/Window/Win32/WindowImplWin32.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/Window.cpp b/src/SFML/Window/Window.cpp index 2ece6701..415b136c 100644 --- a/src/SFML/Window/Window.cpp +++ b/src/SFML/Window/Window.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/WindowBase.cpp b/src/SFML/Window/WindowBase.cpp index cfb6446e..5c18eefe 100644 --- a/src/SFML/Window/WindowBase.cpp +++ b/src/SFML/Window/WindowBase.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/WindowImpl.cpp b/src/SFML/Window/WindowImpl.cpp index cb5d026b..afbfddf8 100644 --- a/src/SFML/Window/WindowImpl.cpp +++ b/src/SFML/Window/WindowImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/WindowImpl.hpp b/src/SFML/Window/WindowImpl.hpp index abcf8ba6..f8d079c0 100644 --- a/src/SFML/Window/WindowImpl.hpp +++ b/src/SFML/Window/WindowImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/ClipboardImpl.hpp b/src/SFML/Window/iOS/ClipboardImpl.hpp index 2e26069d..ff555ac5 100644 --- a/src/SFML/Window/iOS/ClipboardImpl.hpp +++ b/src/SFML/Window/iOS/ClipboardImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/ClipboardImpl.mm b/src/SFML/Window/iOS/ClipboardImpl.mm index d241b508..48d95df5 100644 --- a/src/SFML/Window/iOS/ClipboardImpl.mm +++ b/src/SFML/Window/iOS/ClipboardImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/CursorImpl.cpp b/src/SFML/Window/iOS/CursorImpl.cpp index d83fb64a..8a511a6c 100644 --- a/src/SFML/Window/iOS/CursorImpl.cpp +++ b/src/SFML/Window/iOS/CursorImpl.cpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/CursorImpl.hpp b/src/SFML/Window/iOS/CursorImpl.hpp index f64191dd..c7cb02dd 100644 --- a/src/SFML/Window/iOS/CursorImpl.hpp +++ b/src/SFML/Window/iOS/CursorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/EaglContext.hpp b/src/SFML/Window/iOS/EaglContext.hpp index cef0c2ef..9c01c909 100644 --- a/src/SFML/Window/iOS/EaglContext.hpp +++ b/src/SFML/Window/iOS/EaglContext.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/EaglContext.mm b/src/SFML/Window/iOS/EaglContext.mm index 4d4da2d0..71514248 100644 --- a/src/SFML/Window/iOS/EaglContext.mm +++ b/src/SFML/Window/iOS/EaglContext.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/InputImpl.hpp b/src/SFML/Window/iOS/InputImpl.hpp index 6bde166a..c17c40b3 100644 --- a/src/SFML/Window/iOS/InputImpl.hpp +++ b/src/SFML/Window/iOS/InputImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/InputImpl.mm b/src/SFML/Window/iOS/InputImpl.mm index 6d14f313..c254eb3f 100644 --- a/src/SFML/Window/iOS/InputImpl.mm +++ b/src/SFML/Window/iOS/InputImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/JoystickImpl.hpp b/src/SFML/Window/iOS/JoystickImpl.hpp index f09429a9..78047162 100644 --- a/src/SFML/Window/iOS/JoystickImpl.hpp +++ b/src/SFML/Window/iOS/JoystickImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/JoystickImpl.mm b/src/SFML/Window/iOS/JoystickImpl.mm index dea4b043..6f4ab141 100644 --- a/src/SFML/Window/iOS/JoystickImpl.mm +++ b/src/SFML/Window/iOS/JoystickImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/ObjCType.hpp b/src/SFML/Window/iOS/ObjCType.hpp index 736b3ab9..5d90ed78 100644 --- a/src/SFML/Window/iOS/ObjCType.hpp +++ b/src/SFML/Window/iOS/ObjCType.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFAppDelegate.hpp b/src/SFML/Window/iOS/SFAppDelegate.hpp index da8e059c..d651d0c8 100644 --- a/src/SFML/Window/iOS/SFAppDelegate.hpp +++ b/src/SFML/Window/iOS/SFAppDelegate.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFAppDelegate.mm b/src/SFML/Window/iOS/SFAppDelegate.mm index a57b7aa4..4618199a 100644 --- a/src/SFML/Window/iOS/SFAppDelegate.mm +++ b/src/SFML/Window/iOS/SFAppDelegate.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFMain.hpp b/src/SFML/Window/iOS/SFMain.hpp index dbb8e6a5..815c3ccd 100644 --- a/src/SFML/Window/iOS/SFMain.hpp +++ b/src/SFML/Window/iOS/SFMain.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFMain.mm b/src/SFML/Window/iOS/SFMain.mm index 4a3aec30..f51cdac4 100644 --- a/src/SFML/Window/iOS/SFMain.mm +++ b/src/SFML/Window/iOS/SFMain.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFView.hpp b/src/SFML/Window/iOS/SFView.hpp index 470760c6..ef11530a 100644 --- a/src/SFML/Window/iOS/SFView.hpp +++ b/src/SFML/Window/iOS/SFView.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFView.mm b/src/SFML/Window/iOS/SFView.mm index a832f933..1cb06061 100644 --- a/src/SFML/Window/iOS/SFView.mm +++ b/src/SFML/Window/iOS/SFView.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFViewController.hpp b/src/SFML/Window/iOS/SFViewController.hpp index a2ff188d..3db3ea29 100644 --- a/src/SFML/Window/iOS/SFViewController.hpp +++ b/src/SFML/Window/iOS/SFViewController.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SFViewController.mm b/src/SFML/Window/iOS/SFViewController.mm index 79451258..2a00cd42 100644 --- a/src/SFML/Window/iOS/SFViewController.mm +++ b/src/SFML/Window/iOS/SFViewController.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SensorImpl.hpp b/src/SFML/Window/iOS/SensorImpl.hpp index 14f3fca2..8bd1bd60 100644 --- a/src/SFML/Window/iOS/SensorImpl.hpp +++ b/src/SFML/Window/iOS/SensorImpl.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/SensorImpl.mm b/src/SFML/Window/iOS/SensorImpl.mm index 9c6f2ea2..60d65b33 100644 --- a/src/SFML/Window/iOS/SensorImpl.mm +++ b/src/SFML/Window/iOS/SensorImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/VideoModeImpl.mm b/src/SFML/Window/iOS/VideoModeImpl.mm index 8f9dce0b..2887a42e 100644 --- a/src/SFML/Window/iOS/VideoModeImpl.mm +++ b/src/SFML/Window/iOS/VideoModeImpl.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/WindowImplUIKit.hpp b/src/SFML/Window/iOS/WindowImplUIKit.hpp index 9b340f64..c590c7c1 100644 --- a/src/SFML/Window/iOS/WindowImplUIKit.hpp +++ b/src/SFML/Window/iOS/WindowImplUIKit.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/src/SFML/Window/iOS/WindowImplUIKit.mm b/src/SFML/Window/iOS/WindowImplUIKit.mm index 7caeb063..d53ac89e 100644 --- a/src/SFML/Window/iOS/WindowImplUIKit.mm +++ b/src/SFML/Window/iOS/WindowImplUIKit.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Laurent Gomila (laurent@sfml-dev.org) +// Copyright (C) 2007-2020 Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. // In no event will the authors be held liable for any damages arising from the use of this software. diff --git a/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.hpp b/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.hpp index f6b2550d..e3c15e69 100644 --- a/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.hpp +++ b/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.hpp @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.mm b/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.mm index d16426a4..f4be3508 100644 --- a/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.mm +++ b/tools/xcode/templates/SFML/SFML App.xctemplate/ResourcePath.mm @@ -1,7 +1,7 @@ //////////////////////////////////////////////////////////// // // SFML - Simple and Fast Multimedia Library -// Copyright (C) 2007-2019 Marco Antognini (antognini.marco@gmail.com), +// Copyright (C) 2007-2020 Marco Antognini (antognini.marco@gmail.com), // Laurent Gomila (laurent@sfml-dev.org) // // This software is provided 'as-is', without any express or implied warranty. diff --git a/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist.in b/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist.in index f7cc802c..51858431 100644 --- a/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist.in +++ b/tools/xcode/templates/SFML/SFML App.xctemplate/TemplateInfo.plist.in @@ -3,7 +3,7 @@