54 Commits

Author SHA1 Message Date
Armin Novak
65399661c4 [c23,api] replace NULL with nullptr 2026-02-26 14:03:05 +01:00
Armin Novak
20a24fe36e [freerdp,api] mark API functions [[nodiscard]]
Mark (most) of the API functions returning a value [[nodiscard]]. This
will assist application developers spotting bad return checks.
2026-02-17 10:23:34 +01:00
akallabeth
7990eec166 [freerdp] mark all WINPR_ATTR_MALLOC also nodiscard 2026-01-26 13:39:39 +01:00
akallabeth
5139a3a3e5 Merge pull request #11296 from akallabeth/invert-3x-deprecated
Invert 3x deprecated
2025-03-06 16:00:44 +01:00
akallabeth
3186977e15 [cmake] Invert WITH_FREERDP_3x_DEPRECATED
API breaking change, with this logic the symbol needs to be manually
defined by an API user. So, to fix this:
* Rename to DROP_FREERDP_3x_DEPRECATED
* Invert logic, so a undefined value enables the symbols
2025-03-06 15:30:26 +01:00
akallabeth
4466ee6141 [locale] add freerdp_detect_keyboard_layout_from_locale
This new function allows detecting the default keyboard layout from a
locale string of form de_AT or similar
2025-03-06 11:58:10 +01:00
akallabeth
d03b4b91d5 [cmake,freerdp] add WITH_FREERDP_3x_DEPRECATED
This new CMake option (ON by default) allows building the library with
all symbols deprecated during 3.x release cycle disabled.
This allows compatibility testing external applications for future
FreeRDP 4.x support
2025-03-04 13:26:45 +01:00
akallabeth
7109df257a [locale,keyboard] fix enum limits 2025-02-10 09:31:49 +01:00
akallabeth
c29e93f4b2 [locale,keyboard] deprecate keyboard mapping
* deprecate keyboard mapping functions:
  * not context sensitive bug app global
  * only work reliable with XKB files
* expose functions to parse and remap RDP scancodes
2024-12-17 12:52:42 +01:00
akallabeth
163aec7e2b [warnings] fix documentation command unknown 2024-09-12 21:21:41 +02:00
akallabeth
fb5934007a [doxygen] add basic documentation for new API
* Add basic documentation for new functions/structs/data types since
  3.0.0
2024-09-12 20:09:19 +02:00
Hideyuki Nagase
ac00064647 add Hebrew (Standard) keyboard layout ID (#3)
Co-authored-by: Hideyuki Nagase <hideyukn@ntdev.microsoft.com>
2024-07-01 09:43:46 +02:00
akallabeth
e03a6a269e [locale] add functions for locale mapping
* function to map short language strings ("en", ...) to a codepage
* function to get a default keyboard layout for a codepage
* function to list supported codepages
2024-06-20 10:27:43 +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
61779694ee [includes] improved c++ guards 2023-03-15 08:22:23 +01:00
Armin Novak
4b9c8e6393 Updated keyboard list API 2022-10-19 20:31:53 +02: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
akallabeth
70894c92e7 Added /kbd-scancode-list
Prints a listing of hexadecimal scancodes and the mapping to VK_*
2021-09-10 15:47:08 +02:00
Martin Fleisz
89347d85a1 Fix some incorrect keyboard mappings on Mac 2021-02-16 15:42:27 +01:00
Martin Fleisz
21158c0e8b Merge pull request #6537 from akallabeth/kbd_remap
Added option to remap scancodes
2021-02-05 09:31:45 +01:00
Martin Fleisz
68dfa353b8 locale: Fix keyboard detection on MacOS 2021-01-18 16:53:02 +01:00
Armin Novak
d7bf6553c5 Added option to remap scancodes 2020-10-29 18:44:32 +01:00
Armin Novak
30275e7ac3 Added keyboard language codepages and listing option 2020-02-21 11:57:36 +01:00
Armin Novak
72ca88f49c Reformatted to new style 2019-11-07 10:53:54 +01:00
Armin Novak
e3f3343323 Fixed #5496: Canadian keyboard mapping issue reported by @renaudn1981 2019-08-01 11:09:57 +02:00
Armin Novak
447ac23aee Refactored timezone functions. 2016-02-24 09:28:30 +01:00
tdb
c9e750214a Add Bépo Layout 2015-06-05 10:52:40 +02:00
Roland Kaufmann
d930431169 Forward layout ID of Programmer Dvorak to server
The Programmer Dvorak keyboard layout is supported by Xkb but support
in Windows is only available through an open-source add-on driver. It
is plausible that those that use this layout in X11 also installs this
driver on Windows instead of using the standard Dvorak variant there.

This changeset recognizes Programmer Dvorak as its own variant, and
assigns this a layout ID which matches the one used in the Windows
driver so that it will be selected when you logon. If this layout is
not available, it will now revert to the regular United States layout.

Tested with Ubuntu Precise 12.04 connecting to Windows 7 SP1.
2015-01-30 21:22:59 +01:00
Armin Novak
e6fa0911a3 Fixed missing extern C 2014-12-01 13:12:51 +01:00
Justin DeFields
eeeaa1f4df Fixed typo and changed Canadian French (legacy) to 0x00000c0c which most online docs support. 2014-07-09 10:09:43 -04:00
Justin DeFields
00b01f1b4e I am making several changes to cleanup French Canadian, with the end result being: ca,fr -> Canadian French ca,fr-legacy -> Canadian English ca,eng -> Canadian English. Currently ca,fr isn't defined, ca,fr-legacy thinks it's Canadian French and it isn't anyway because the value is wrong for that definition, and ca,eng is US. 2014-07-08 16:51:50 -04:00
Benoît LeBlanc
ad77401d60 FreeRDP: fixed access violation crash that occurred on Windows, because the malloc and the free were performed in different libraries. 2013-07-25 10:22:57 -04:00
Marc-André Moreau
fc3324151c libfreerdp-locale: fix C++ header 2013-04-28 20:16:04 -04: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
24a1275c91 libfreerdp-locale: cleanup layout detection 2013-03-06 16:35:50 -05:00
Marc-André Moreau
75f80d0198 libfreerdp-locale: cleanup solaris code 2013-03-06 12:50:25 -05:00
Marc-André Moreau
44758bfe54 libfreerdp-locale: start moving some code to libwinpr-input 2013-03-03 16:30:31 -05:00
hardening
865ff2a5f8 Fixed compilation with -Wstrict-prototypes 2013-02-14 22:20:43 +01:00
Marc-André Moreau
709e66a596 libfreerdp: header cleanup 2012-12-14 00:25:48 -05:00
Marc-André Moreau
9d064171a7 freerdp: get rid of old types 2012-10-09 03:26:39 -04:00
Marc-André Moreau
1ed644786c freerdp: change boolean type to BOOL type 2012-10-09 02:38:39 -04:00
Marc-André Moreau
867c169148 libfreerdp-locale: cleanup keyboard code 2012-09-22 14:27:30 -04:00
Hiroshi Akashio
61eabe3048 Japanese keyboard patch
o Add Japanese key
    HIRAGANA
    CONVERT_JP
    NONCONVERT_JP
  o set Japanese keyboard
    kbd_type    : 7
    kbd_subtype : 2
    kbd_fn_keys : 12
2012-08-25 01:25:59 +09:00
Mads Kiilerich
7f399c6020 locale: #define known rdp scancode values
For now they are named after the VK code they mostly correspond to.
2012-03-29 01:12:48 +02:00
Mads Kiilerich
94e9405202 locale: make RDP_SCANCODE a simple value type that easily can be passed around 2012-03-29 01:12:35 +02:00
Mads Kiilerich
6c19f819e1 locale: move Virtual-Key Code definitions to virtual_key_codes.[ch]
Refactoring - no semantic changes.
2012-03-24 01:57:09 +01:00
Marc-André Moreau
2152db9eb4 libfreerdp-locale: move time zone detection code 2012-02-19 21:08:12 -05:00
Marc-André Moreau
ed93d939f0 libfreerdp-locale: improved locale detection API 2012-02-19 20:48:04 -05:00
Marc-André Moreau
e85bfb4fd4 libfreerdp-locale: refactoring of XKB-based detection 2012-02-19 20:24:06 -05:00
Marc-André Moreau
46e3343232 libfreerdp-locale: refactoring of XKB dynamic mapping 2012-02-19 17:36:39 -05:00