Commit graph

51 commits

Author SHA1 Message Date
Cameron Gutman
af1dbfe505 Use APP_VERSION_AT_LEAST in a couple other places 2022-10-22 14:45:19 -05:00
Cameron Gutman
d247873ade Add LiSendMouseMoveAsMousePositionEvent() function
This is a useful option for Android and iOS where mouse acceleration
is always enabled and mouse capture is the only feasible way to get
mouse input. It can avoid double-acceleration when being used for
remote desktop mouse mode.
2022-05-28 14:58:34 -05:00
Cameron Gutman
cfe75eb569 Add workaround for keyboard and UTF-8 events interfering with each other 2022-01-17 21:56:06 -06:00
Cameron Gutman
6001ece0b8 Fix uninitialized variable 2021-12-12 16:04:58 -06:00
Cameron Gutman
ac1355b922 Fix excessive high-res scroll speed on newer GFE versions 2021-12-12 12:05:20 -06:00
Cameron Gutman
257029f80d Remove redundant packet length field 2021-12-10 02:00:42 -06:00
Cameron Gutman
94d439e5c3 Fix memory corruption with UTF-8 strings over 32 bytes 2021-11-30 19:05:32 +03:00
Cameron Gutman
6a6328a355 Send each Unicode code point individually to avoid straddling packet boundaries 2021-11-30 18:28:09 +03:00
Cameron Gutman
a290ec032b Fix relative mouse and controller batching after 74377a06 2021-08-05 22:14:35 -05:00
Cameron Gutman
8cac195fcf Fix compilation warnings 2021-07-30 01:32:43 -05:00
Cameron Gutman
f3e37944fc Split UTF-8 strings into chunks small enough to fit in an NV_UNICODE_PACKET 2021-07-30 01:23:53 -05:00
Cameron Gutman
74377a061b Rework input packets based on new header knowledge 2021-07-30 01:02:35 -05:00
Cameron Gutman
ceafe7897c Refactor input packet sending logic into a separate function 2021-07-29 23:49:58 -05:00
Mariotaku
5846a9d6aa
Added unicode input event (#63)
* Added unicode input event

* Prevents strcpy overflow

* Updated according to change requests
2021-07-29 21:36:47 -05:00
Cameron Gutman
ac9c4e82ac Introduce a list to cache freed input packet entries for reuse 2021-06-12 10:43:50 -05:00
Cameron Gutman
ed9301f3f8 Join the input thread without interrupting first
Otherwise we'll kill it before it finishes draining
2021-05-15 22:56:44 -05:00
Cameron Gutman
431e188b07 Allow the input queue to drain before terminating the thread
This ensures any final input messages (like key ups) make it to the host
2021-05-15 22:01:50 -05:00
Cameron Gutman
1b3c14a792 Increase maximum input queue size 2021-05-14 21:07:14 -05:00
Cameron Gutman
cd62147cdf Print a warning when the input queue reaches the maximum size 2021-05-14 20:36:25 -05:00
Cameron Gutman
8f371343cd Consolidate includes 2021-04-29 17:22:15 -05:00
Cameron Gutman
29d2cc6d5b Improve MbedTLS implementation of AES-CBC 2021-04-22 17:08:35 -05:00
Cameron Gutman
625ec431eb Improve AES-CBC code in preparation for audio encryption 2021-04-21 23:59:14 -05:00
Cameron Gutman
4304e597d8 Add byteswapping macros for big-endian systems 2021-04-17 21:43:13 -05:00
Cameron Gutman
98d7ceecf7 Add native MbedTLS crypto backend 2021-04-17 19:00:26 -05:00
Cameron Gutman
d62ee951a0 Refactor OpenSSL usage into a platform-specific file to allow other crypto backends 2021-04-17 17:47:53 -05:00
Cameron Gutman
83431e557d Fix leak on each GFE 3.22 input packet 2021-04-09 13:47:00 -05:00
Cameron Gutman
415d97aa4d Pass through input for full control stream encryption on GFE 3.22 2021-04-09 07:44:31 -05:00
Cameron Gutman
3fddfc5557 Fix Clang warnings 2020-12-05 23:20:02 -06:00
Cameron Gutman
0ead0df2a1 Remove usage of long types for LP64 and LLP64 consistency 2020-12-05 16:51:03 -06:00
Cameron Gutman
5f9f7ce407 Code cleanup: use stdbool.h 2020-11-30 20:38:13 -06:00
Cameron Gutman
6010367637 Only allow input packets to be queued between start and stop 2020-08-06 19:12:29 -07:00
Cameron Gutman
bea625a13d Work around rounding error in GFE's mouse position scaling 2020-05-26 18:19:53 -07:00
Cameron Gutman
0df24c76c0 Fix incorrect behavior of modifier keys on the right side of the keyboard 2020-05-26 17:33:57 -07:00
Cameron Gutman
f8ffb30e1f Don't send no-op mouse move and scroll events 2020-05-26 17:13:22 -07:00
Cameron Gutman
7b56ab755d Add batching for mouse position packets 2020-05-20 18:56:30 -07:00
Cameron Gutman
c8faf3539b Replace version check with note for LiSendMousePosition() 2020-05-03 15:56:39 -07:00
Cameron Gutman
247b1fe0e3 Provide reference dimensions for mouse position data 2020-04-11 20:51:17 -07:00
Cameron Gutman
ef7de27727 Add absolute mouse motion support 2020-04-11 15:40:50 -07:00
Cameron Gutman
cfeb0ffd90 Add MODIFIER_META constant 2020-01-15 17:48:36 -08:00
Cameron Gutman
31aa893acd Name our threads on Linux 2019-05-03 18:54:40 -07:00
Cameron Gutman
8755529b1a Add support for high-resolution scroll events 2019-02-26 18:48:13 -08:00
Cameron Gutman
aa9610847e Ensure termination error code is propagated properly 2019-02-09 21:30:16 -08:00
Cameron Gutman
ad5dd9c940 Request haptics data from server 2019-02-09 02:16:59 -08:00
Cameron Gutman
edbaa43c2c Fix back-to-back calls of LiSendMultiControllerEvent() not working properly 2018-11-25 14:50:51 -08:00
Cameron Gutman
2d7bf5be82 Fix state cleanup if LiStartConnection() fails 2017-05-18 09:52:50 -07:00
Sunguk Lee
a24e29c9ad
Remove defines of EVP_CIPHER_CTX_new and EVP_CIPHER_CTX_free
These functions defined since 0.9.8b
2017-05-05 16:26:57 +09:00
Iwan Timmer
dbb7cee399 Compatibility fix for OpenSSL 1.1 (#25)
* Compatibility fix for OpenSSL 1.1

* Don't allocate new cipher context for every input packet

* Readd support for OpenSSL 1.0
2017-05-04 21:20:03 -07:00
Cameron Gutman
8d2dccf4ca Correctly transmit the number of controllers attached to the client 2017-02-04 20:09:34 -08:00
Cameron Gutman
f57bd745b4 API update to provide enough information to support GFE 3.0.7 2016-10-05 17:23:59 -07:00
Cameron Gutman
d408372c34 Switch to OpenSSL for input encryption with support for Gen 7 servers 2016-03-31 11:14:10 -04:00