Commit Graph

34 Commits

Author SHA1 Message Date
akallabeth
d2cf953f24 [winpr,input] properly define keyboard types
* use an enum to define the different WINPR_KEYBOARD_TYPE*
* use the enum as argument for the functions instead of DWORD
2023-05-12 09:52:01 +02:00
David Fort
46171045ed [winpr,input] fix GetKeycodeFromVirtualKeyCode(code, KEYCODE_TYPE_XKB)
As KEYCODE_TYPE_XKB is 3, in the previous code we were doing some "and masking"
and so when calling GetKeycodeFromVirtualKeyCode(code, KEYCODE_TYPE_XKB), the
function was always interpreting the virtual key code with the apple layout.
This patch fixes that and also mutualize the search in the code array.
2023-05-12 09:52:01 +02:00
akallabeth
c0dc193a39 [winpr,input] use enum for keyboard types
* move type definition to WinPR as used there too.
* supported keyboard types are defined in
  [MS-RDPBCGR] 2.2.1.3.2 Client Core Data (TS_UD_CS_CORE)]
  use a enum instead of magic numbers to make code more readable.
2023-04-21 12:31:51 +02:00
akallabeth
1318b813d6 [winpr,input] fix apple keyboard mapping
GetVirtualKeyCodeFromKeycode and GetVirtualKeyCodeFromKeycode used
an invalid index offset. this commit corrects that, but is API breaking.
2023-04-21 12:31:51 +02:00
Pascal Nowack
bb967d1533 winpr/input: Add actual evdev keyboard handling
WinPR provides APIs to convert between keycodes between virtual
keycodes.
These keycodes can currently be evdev keycodes or Apple keycodes.
The evdev handling, however, handles XKB keycodes and not evdev ones.
The main difference between these is that XKB keycodes are shifted by
the value 8, compared to evdev keycodes.

In order to fix this situation, rename the evdev keycodes to XKB ones,
and introduce additionally a new keycode evdev, including its handling
for this keycode type.
2023-04-21 12:31:51 +02:00
akallabeth
752ac3b479
Fix #7793: Do not expose internal input API (#7794)
* Fixed GetFileInformationByHandle initializers

* Fix #7793: Do not expose internal input API

Slow-Path input uses UINT16 for scancodes on wire, but only the
lower byte is actually used. (the extended fields are sent in
keyboardFlags field)
Hide this implementation detail and adjust the API to use UINT8
for the code instead just like the corresponding Fast-Path PDU

* Added a warning for problematic slow path keyCodes
2022-04-13 09:34:05 +02:00
Armin Novak
6ed50b4b1d Refactored WinPR includes 2022-03-03 11:26:48 +01:00
akallabeth
8cc6582044
Unify struct definitions (#7633)
* Unified enum/struct definitions, fixed include issues

* Fixed mac compilation issues

* Added missing include

* Fixed windows server build warnings

* Fixed VS2010 build issue

* Removed unnecessary library linking

* Fixed ThreadPool WinXP compatibility

* Fixed pr review remarks
2022-02-14 14:59:22 +01:00
Armin Novak
5afa592244 Fixed cast-qual warnings 2021-08-24 11:10:51 +02:00
Armin Novak
610396e197 Fixed compilation warnings
Try to get the number of warnings down
2021-08-02 10:28:06 +02:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Jura Sasek
a84c5cbfb9 Sun keyboard 2017-08-04 13:09:32 +02:00
Norbert Federa
92aa21c45b Several fixes for keyboard type 7 (japanese) 2016-02-11 21:40:50 +01:00
Marc-André Moreau
22260600fa libwinpr-input: add missing VK_DECIMAL mapping of OS X keycode mapping of ABNT2 keyboard 2014-11-11 12:39:41 -05:00
Bernhard Miklautz
6a49bcfe40 winpr: always build "monolitic"
winpr is now always build as single library.
The build option MONOLITHIC_BUILD doesn't influence this behavior anymore.

The only exception is winpr-makecert-tool which is still build as extra
library.

This obsoletes complex_libraries for winpr.
2014-07-10 11:10:58 +02:00
Bernhard Miklautz
b817e92e5e cmake: mark required libraries for export 2014-04-23 10:16:02 +02:00
Marc-André Moreau
3782c2ad72 Merge branch 'master' of github.com:FreeRDP/FreeRDP 2014-01-25 16:34:34 -05:00
Daryl Poe
9897f72b97 add additional evdev key mappings for multimedia and Korean keyboards 2014-01-14 15:18:20 -07:00
Marc-André Moreau
9c1dca14f7 libwinpr-input: minor code style cleanup 2013-12-18 22:53:34 -05:00
Marc-André Moreau
55565e056c freerdp: export targets 2013-10-28 23:06:39 -04:00
Marc-André Moreau
fdae43aafc mfreerdp: fix keyboard mapping for toggle keys 2013-10-07 16:43:23 -04:00
Armin Novak
e5c138a5b9 Fixed various memory leaks, allocation size issues and API misuse
warnings shown by clang as well as some compiler warnings.
2013-09-05 12:14:34 +02:00
Marc-André Moreau
9bf924929c xfreerdp-server: use libwinpr-input for keyboard mapping 2013-05-02 01:34:54 -04:00
Hardening
37e2f97180 Small correctly in GetVirtualKeyCodeFromVirtualScanCode
this function was not doing his job, this patch fixes it.
2013-04-06 22:22:55 +02:00
Christian Hofstaedtler
b8d0e03a53 add KBDEXT to KEYCODE_TO_VKCODE_APPLE where needed 2013-03-11 23:23:20 +01:00
Marc-André Moreau
32d9f76c41 libwinpr-input: fix virtual key code definitions 2013-03-07 13:56:00 -05:00
Marc-André Moreau
72957e39eb libwinpr-input: started mapping XKB keynames to virtual key codes 2013-03-06 17:43:41 -05:00
Marc-André Moreau
1630b80bda libwinpr-input: added more japanese definitions 2013-03-04 21:27:56 -05:00
Marc-André Moreau
6c40fde892 libwinpr-input: map most evdev keycodes 2013-03-04 20:37:44 -05:00
Marc-André Moreau
d4dc6b256e libwinpr-input: prepare comments for evdev keycode map 2013-03-04 18:27:31 -05:00
Marc-André Moreau
0bff72935b libwinpr-input: add empty keycode map for evdev 2013-03-04 17:19:33 -05:00
Marc-André Moreau
7d75343e8e libfreerdp-locale: cleanup Mac OS X keycode mapping 2013-03-03 19:30:01 -05:00
Marc-André Moreau
44758bfe54 libfreerdp-locale: start moving some code to libwinpr-input 2013-03-03 16:30:31 -05:00
Marc-André Moreau
be27783e81 libwinpr-input: initial commit 2013-03-02 22:25:40 -05:00