Commit Graph

333 Commits

Author SHA1 Message Date
Cameron Gutman
3acc7ef557 Remove unused variable 2023-07-10 21:45:37 -05:00
Cameron Gutman
2ed2dd5e0e Implement touch, motion, and battery for DS4 2023-07-10 21:45:37 -05:00
Cameron Gutman
309fcc4142 Convert rumble_queue into a generic feedback_queue for gamepad messages 2023-07-10 21:45:37 -05:00
Cameron Gutman
fd77230964 Stub controller battery, touch, and motion packets 2023-07-10 21:45:37 -05:00
Cameron Gutman
1ef8cb1111 Send feature flags in RTSP DESCRIBE response 2023-07-10 21:45:37 -05:00
ns6089
6dfe56518c Decrease gpu scheduling priority for NVIDIA
Fixes #1031
2023-07-09 18:50:10 -05:00
Cameron Gutman
c5bf78176e Remove GetAsyncKeyState() check before sending mouse button events
It's unnecessary and breaks in cases where event processing is slow

Fixes #1433
2023-07-08 22:58:12 -05:00
jcj83429
d075424225 Add support for Applications (context menu) key in the Windows platform
I will add corresponding support in moonlight-qt.
2023-07-08 21:21:18 -05:00
Casey Korver
881af5b566 Correct typos in logging 2023-07-08 19:56:56 -05:00
Casey Korver
b1ffa8a6c5 Correct typos in comments 2023-07-08 18:56:27 -05:00
Cameron Gutman
70dc582f38 Refactor gamepad emulation code to use the DS4 extended report format
This has the side-effect of fixing #1407 due to the incorrect assumption that
it's safe to cast our gamepad_state_t to a XUSB_REPORT.
2023-07-08 11:34:16 -05:00
aetheryx
c972fa880f fix: consider link-local addresses as LAN 2023-07-06 22:53:38 -05:00
Cameron Gutman
810945f5bf Allow use of multiple ENet channels 2023-07-04 15:48:31 -05:00
Cameron Gutman
11aedf56a2 Implement controller arrival metadata support 2023-06-30 20:47:29 -05:00
Cameron Gutman
12e6774035 Fix max gamepad count to match protocol limitation 2023-06-27 21:11:19 -05:00
Cameron Gutman
feedede6f9 Implement extended controller button support 2023-06-27 21:11:19 -05:00
Cameron Gutman
737be029ec Move input packet debug prints off the control stream thread
The control stream thread is extremely performance-sensitive.
2023-06-27 18:53:01 -05:00
Cameron Gutman
62606a62f9 Implement input batching for reduced latency 2023-06-27 18:53:01 -05:00
Era Dorta
ed74492e4e
fix(deps): replace libboost chrono and thread with standard chrono and thread (#1364)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-06-26 11:50:10 -04:00
Conn O'Griofa
72d63aae68
windows: fix header conflict for msys2-w32api-headers 11.0.1+ (#1332) 2023-05-29 20:00:52 -04:00
Cameron Gutman
8090fb496b Fix software encoding defaulting to HEVC instead of H.264
Regression introduced by d973e5bbc7
2023-05-28 19:29:07 -05:00
Cameron Gutman
f734d6684f Reset the default audio device on startup if Steam Streaming Speakers are selected
Fixes lack of audio device restoration if Sunshine crashes while streaming
2023-05-27 14:24:38 -05:00
Cameron Gutman
bca61bfc0d Always change the sink if it differs from the active sink
Fixes audio sink field not changing devices properly
2023-05-27 14:24:38 -05:00
Cameron Gutman
9a65c91671 Rename SunshineSvc to SunshineService
This avoids a MalwareBytes false positive.

Fixes #1126
2023-05-26 17:54:38 -05:00
Cameron Gutman
8da919f411 Rename Back Button Timeout and disable it by default
Users don't expect long presses of the back button to not work out of the box.
2023-05-25 20:03:53 -05:00
Cameron Gutman
b3f57cf90d Fix emulated Home/Guide presses being missed
Fixes #1048
2023-05-25 20:03:53 -05:00
Cameron Gutman
2f4cc9ace0 Add option to always send scancodes
Default is enabled to match v0.19.1 behavior

Fixes #1233
2023-05-25 19:31:39 -05:00
Cameron Gutman
0f1dc1bb05 Print a warning if GameStream is using conflicting ports 2023-05-25 19:07:13 -05:00
Cameron Gutman
fbb77aa7cd Prefer virtual sink over audio sink if host playback is disabled
Fixes "Play audio on host PC" option not working when audio sink is manually set
2023-05-24 20:34:13 -05:00
Cameron Gutman
5a4fd95765 Rewrite UPnP support
- Fixes port mappings expiring after a day
- Fixes support for IGDv1 gateways
- Fixes handling of gateway reboots/resets
2023-05-22 22:53:36 -05:00
Cameron Gutman
25e0244705 Stop reporting ExternalIP field to clients
At best, it doesn't help compared to Moonlight's STUN logic.

At worst, it makes things worse by providing an incorrect WAN address that overrides STUN.
2023-05-22 22:53:36 -05:00
Cameron Gutman
85af19150c Fix leak of AVPackets 2023-05-22 19:44:04 -05:00
Cameron Gutman
5b24148cfa Fix leak of VA driver resources on each encoder init 2023-05-22 19:44:04 -05:00
Cameron Gutman
8a9eed2f6f Fix leak of X509 on each HTTPS request 2023-05-22 19:44:04 -05:00
Cameron Gutman
32ca9d41de Fix crash on exit if a process is currently running 2023-05-15 19:11:51 -06:00
Cameron Gutman
33dafbc801 Add warning when Desktop Duplication API masks protected content from capture 2023-05-14 14:28:03 -05:00
Cameron Gutman
17124deb22 Fix const-correctness bugs in round_robin.h 2023-05-11 20:52:44 -05:00
Cameron Gutman
fabadaad2a Fix const-correctness bugs in uniq_ptr and code that uses it 2023-05-11 20:52:44 -05:00
Cameron Gutman
0fa406dbb7 Remove unnecessary moves in return statements 2023-05-11 20:52:44 -05:00
Cameron Gutman
ff046bb707 Fix and enable -Wmissing-braces 2023-05-11 20:52:44 -05:00
Cameron Gutman
390dc1c245 Fix unused-but-set-variable warnings on Mac and Linux 2023-05-11 20:52:44 -05:00
Cameron Gutman
2571682886 Fix pessimizing move warnings on Clang 2023-05-11 20:52:44 -05:00
Cameron Gutman
8db0ad0cc6 Fix and enable -Wmaybe-uninitialized 2023-05-11 20:52:44 -05:00
Cameron Gutman
f08ba0fd7c Fix missing override specifier on set_frame() 2023-05-11 20:52:44 -05:00
Cameron Gutman
a4f788f853 Replace Win32 UTF-16 conversion with std::wstring_convert
Removes VLA that upsets Clang and MSVC
2023-05-11 20:52:44 -05:00
Cameron Gutman
1c83a44222 Fix const reference and const pointer types in wrap_ptr
They were const refs to a T rather than a ref to a const T.
2023-05-11 20:52:44 -05:00
istori1
9e23b39634 Add NO_RC_BUF_LIMIT vaapi 2023-05-11 18:59:13 -05:00
Cameron Gutman
71dcef8259 Fix systray icon sometimes not appearing after login 2023-05-11 18:32:33 -05:00
Cameron Gutman
53125ffeca
Add support for installing the Steam Streaming Speakers driver (#1262)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-05-09 20:02:28 -05:00
Cameron Gutman
4ae412b219 Allow localAudioPlayMode to change on /resume
Newer clients send all /launch parameters to /resume too
2023-05-08 18:57:55 -05:00
Cameron Gutman
66989a4690 Set the default back to the virtual sink if it's changed
Fixes #976
2023-05-08 18:57:55 -05:00
Cameron Gutman
bc392093a3 Reinitialize capture if the default audio device changes
We already reinitialized if the default device was removed, but we didn't in the case a new default device was set without removing the old one.
2023-05-08 18:57:55 -05:00
Cameron Gutman
ccdc882c13 Fix pessimising move warning with GCC 13.1 2023-05-08 18:57:55 -05:00
ReenigneArcher
4ca6dc6c8e
docs: update file level doxygen blocks (#1258) 2023-05-07 18:12:39 -04:00
ReenigneArcher
979f7f4e60
docs: improvements to source code documentation (#1236) 2023-05-07 15:01:44 -04:00
Cameron Gutman
97f18d6353 Fix audio capture reinitialization
We returned instead of continuing, so audio never worked after reinit.

We also had no retry logic if no audio device was available.
2023-05-07 11:52:57 -05:00
Cameron Gutman
86c854ce97 Allow streaming even if no audio sink is available 2023-05-07 11:52:57 -05:00
Cameron Gutman
1d6ea8c759 Allow audio sinks to match on device names
Names are more stable than IDs on Windows
2023-05-07 11:52:57 -05:00
ReenigneArcher
91460f3c72
fix(ui): allow case-insensitive username (#1249) 2023-05-06 08:45:35 -04:00
Cameron Gutman
020d5cd8c3 Add status messages for client errors 2023-05-05 23:14:04 -05:00
Cameron Gutman
6a3b7708bb Remove unnecessary uniqueid check for /applist
We already perform access control via client certificates
2023-05-05 23:14:04 -05:00
Cameron Gutman
b59b885dbd Fix pairing error handling when the hash doesn't match
We shouldn't proceed to signature verification if we already failed hash verification
2023-05-05 23:14:04 -05:00
Cameron Gutman
663bf750d9 Add missing cstdint include 2023-05-05 22:49:39 -05:00
Cameron Gutman
a7c1252fd9 Fix accidental concatenation of resolution strings
Spotted by @ns6089
2023-05-05 17:42:59 -05:00
Cameron Gutman
2fca9cd0da Fix launching apps with a log file specified 2023-05-05 17:42:59 -05:00
Cameron Gutman
a6d295b273 Wait for pending sessions to connect before breaking on app termination
If we don't wait, clients may fail control stream establishment if the app terminates early.
2023-05-05 17:42:59 -05:00
Cameron Gutman
eb8aaf0093 Fix graceful termination messages being discarded by Moonlight 2023-05-05 17:42:59 -05:00
Cameron Gutman
10ea67719e Fix crash if capture is stopped before completing startup 2023-05-05 17:42:59 -05:00
Cameron Gutman
df1286ac88 Fix crash if the app terminates before the control stream is connected 2023-05-05 17:42:59 -05:00
Cameron Gutman
c706ba4ca2 Add Windows-specific warnings if Sunshine is unable to access config or credentials
http::init() failure must be fatal because attempting to start the web servers will crash due to null creds.
2023-05-03 00:33:06 -05:00
Cameron Gutman
65b7f2373c Fix merging user environment variables during process launch 2023-05-03 00:33:06 -05:00
Cameron Gutman
292ef7eca3 Don't show a console window when opening a URL 2023-05-03 00:33:06 -05:00
Cameron Gutman
c4c04694ac Restore the start menu shortcut as a proper launcher for the UI and service 2023-05-03 00:33:06 -05:00
Cameron Gutman
c8d4fd9f69 Keep/turn the display on during streaming
IDXGIDuplication::DuplicateOutput() may fail with 0x80070005 if the display is off and cause streaming to fail
2023-05-03 00:07:01 -05:00
ns6089
8347824eee Print frame processing latency to debug log 2023-05-02 23:41:13 -05:00
ns6089
bd533dc31b Extend packet header with frame processing latency 2023-05-02 23:41:13 -05:00
ReenigneArcher
3cfb520217
fix(audio)!: remove policy config for Windows Vista (#1235) 2023-04-30 20:41:45 -04:00
Cameron Gutman
50f689ff80 Implement restart support for all platforms 2023-04-29 21:22:18 -05:00
Cameron Gutman
4668ff59e5 Fix ringing with non-truthy values in alarm_t
The Windows mDNS registration code does this in the failure path and ends up deadlocking.
2023-04-29 20:43:16 -05:00
Cameron Gutman
d05dc731be Add RFC 6598 CGN CIDR block to LAN addresses list 2023-04-29 20:01:45 -05:00
Chase Payne
430a439698
Elevated Commands Redesign (#1123) 2023-04-29 00:22:01 -05:00
Cameron Gutman
18ab7dcf6c Remove 3-byte NALU prefix fixup
The bug in Moonlight that required it has been fixed since the middle of last year.
2023-04-28 22:20:09 -05:00
Zach Sirotto
eed4df1eee
fix: header guards on system tray (#1222)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-04-27 10:19:33 -04:00
ReenigneArcher
db5c03282c
refactor(tray icon): update header definitions (#1221) 2023-04-26 09:27:08 -04:00
ReenigneArcher
2215ab98b4
fix(web ui): add response headers (#1190) 2023-04-18 17:41:45 -04:00
Cameron Gutman
f51876893e Stop the service if the user quits via the tray icon 2023-04-16 16:16:03 -05:00
Cameron Gutman
dd6fcbd7b8 Grant everyone SYNCHRONIZE access to our systray thread
Explorer requires this access right to remove our tray icon if we terminate unexpectedly
2023-04-16 16:16:03 -05:00
Cameron Gutman
d33bd00bb4 Fix HEVC mode if the encoder changes 2023-04-16 15:53:02 -05:00
Cameron Gutman
006a6984c3 Use a faster probe for launch-time encoders that weren't available before 2023-04-16 15:53:02 -05:00
Cameron Gutman
d973e5bbc7 Avoid unnecessary encoder probing during startup and launch 2023-04-16 15:53:02 -05:00
Cameron Gutman
8f74c3b482 Leave reference frames unspecified if REF_FRAMES_RESTRICT is not supported
FFmpeg codecs specify their own defaults that we shouldn't override.
2023-04-16 15:53:02 -05:00
ns6089
7da33f7951 Remove unnecessary reference 2023-04-15 15:16:14 -05:00
ns6089
045d4b81a4 Switch between img and surface in last frame 2023-04-15 15:16:14 -05:00
ns6089
7b11b48317 Delayed capture buffer trim 2023-04-15 14:37:23 -05:00
Cameron Gutman
242a146712 Add DXGI_FORMAT_B8G8R8X8_UNORM as a supported capture format 2023-04-14 19:34:06 -05:00
Cameron Gutman
b5c8bbaa24 Fix color conversion for SDR FP16 capture formats 2023-04-14 19:34:06 -05:00
ns6089
7038c1aeb0 Create config directories recursively 2023-04-11 20:48:55 -05:00
Cameron Gutman
6467e10def Reprobe encoders each time streaming begins
Available encoders can change due to driver updates, GPU hotplugging, primary monitor changes, etc.
2023-04-11 20:21:18 -05:00
Cameron Gutman
44f89de33b Respect modifier flags in keyboard events
Fixes capital letters from Android soft keyboard
2023-04-11 19:53:46 -05:00
Cameron Gutman
4e04604696 Add support for keyboard input that is not normalized to US English layout
This is used by the soft keyboards on Android and iOS
2023-04-11 19:53:46 -05:00
ns6089
ae7ae8a870 Raise capture buffer normal size to 2
Temporal measure until dynamic resize is merged.
2023-04-11 18:17:48 -05:00
ns6089
eed27d3c0a Decrease normal capture buffer to single image 2023-04-11 18:17:48 -05:00
Cameron Gutman
a9b7fd7fa3 Remove useless Flush() call 2023-04-08 20:36:23 -05:00
ns6089
abf4ab42a0 Don't zero-initialize non-dummy textures 2023-04-08 19:41:22 -05:00
aseligmann
0e92bdd29c Use DS4_BUTTON_SHARE as BACK action 2023-04-08 16:27:48 -05:00
Cameron Gutman
036aa2e470 Free dummy images when they are no longer needed 2023-04-08 15:15:02 -05:00
Cameron Gutman
bd443395c6 Don't test HDR encoding with H.264
It doesn't work on any GPU, and even if it did, Moonlight doesn't support it.
2023-04-06 22:37:05 -05:00
Cameron Gutman
f04d5e12de Combine the separate HDR and SDR capture formats
Since we support multi-encoding from a single display context, we have
to ensure our capture format allows for HDR color even if the initial
encoding session is SDR.
2023-04-06 22:37:05 -05:00
ns6089
290c9b3e20
Fix compilation on macOS (#1132) 2023-04-05 20:54:49 -05:00
ReenigneArcher
809d7f9d0e
config: fix 4K resolution typo (#1139) 2023-04-05 10:12:02 -04:00
KuleRucket
cd2fe18140
Hotfix - keep platform guard in scope (#1104)
Co-authored-by: KuleRucket <luke.d.tucker@gmail.com>
2023-03-30 08:06:19 -04:00
KuleRucket
70674325ba
Fix system tray Open Sunshine (#1095)
Co-authored-by: KuleRucket <luke.d.tucker@gmail.com>
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-03-28 18:51:10 -04:00
KuleRucket
57a722a3fb
Continue in the face of failure (#1094)
Co-authored-by: KuleRucket <luke.d.tucker@gmail.com>
2023-03-28 17:54:46 -04:00
luk1337
1ab1b7920e
Don't skip disconnected X11 outputs (#1071) 2023-03-28 16:44:32 -04:00
luk1337
648df66b98
Fix X11 fallback during init (#1087) 2023-03-28 10:01:11 -04:00
ReenigneArcher
21eb4eb6dd
clang: adjust formatting rules (#1015) 2023-03-27 21:45:29 -04:00
ReenigneArcher
014ca7e8a1
commands: fix prep commands when empty (#1083) 2023-03-27 16:46:25 -04:00
pgrunzjr
8c86baf627
Add support for global prep commands (#977) 2023-03-27 12:02:20 -04:00
Chase Payne
c2fba6f651
Add Support for Safely Elevating Administrator Privileges (#1036) 2023-03-27 10:51:48 -04:00
pgrunzjr
6a914f7016
Execute do/undo commands non-elevated (#1022) 2023-03-27 10:15:35 -04:00
KuleRucket
a487fb31ea
Fix compiler warnings due to deprecated elements in C++17 (#1077)
Co-authored-by: KuleRucket <luke.d.tucker@gmail.com>
2023-03-25 21:52:46 -04:00
KuleRucket
c6548f4271
Provide ability to force a capture method via configuration. (#1063)
Co-authored-by: KuleRucket <luke.d.tucker@gmail.com>
2023-03-25 21:26:28 -04:00
luk1337
455155a1c9
Add missing <string> include (#1057) 2023-03-24 19:37:06 -04:00
ReenigneArcher
e20ca7a8f0
tray-icon: execute as user (#1046) 2023-03-17 08:59:13 -04:00
ReenigneArcher
014d693112
add tray icon (#1035) 2023-03-15 16:30:18 -04:00
Mark Dietzer
fbe5e2486f
Fix startup when /dev/dri doesn't exist (#1027) 2023-03-11 10:27:07 -05:00
Brian Kendall
80aa61b6e4
Support compiling for earlier releases of macOS (#960) 2023-03-10 09:53:29 -05:00
ReenigneArcher
6d54356166
logging: change client verified messages to debug (#1020) 2023-03-10 09:05:52 -05:00
Elia Zammuto
c29c917474
Versioning improvements (#768)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-03-09 18:13:57 -05:00
ReenigneArcher
889b93da2d
input: invert default config settings (#1017) 2023-03-08 21:44:11 -05:00
Mathias Tillman
c3f3e1606d
Fix linux clang build errors (#879)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-03-08 18:05:38 -05:00
Mark Dietzer
8227e8f8e5
Add XTest input fallback (#997) 2023-03-08 09:26:06 -05:00
ABeltramo
7d01b50498
feat: implemented unicode input mode (#966)
Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
2023-03-08 08:35:34 -05:00
Brian Kendall
f238cf5303
Add setting for suppressing input from mouse, keyboard, or gamepads (#941) 2023-03-08 07:47:19 -05:00
ReenigneArcher
31885434f2
docs: add doxygen (#1004) 2023-03-07 20:26:03 -05:00
Conn O'Griofa
845749d525
windows: input: activate US keyboard layout for scancode mapping (#975) 2023-02-25 14:08:42 -05:00
Conn O'Griofa
55a225d21c
AMF: add missing encoder tunables (#902) 2023-02-13 09:23:29 -05:00
ReenigneArcher
a21e231cae
web: api: add mimes type map (#890) 2023-02-08 21:35:02 -05:00
Conn O'Griofa
1b45b57d07
Linux/VAAPI: implement vaSyncBuffer stub for libva <2.9.0 (#886) 2023-02-07 16:02:42 -05:00
Grider
d2461e1908
Fix wayland capture on nvidia for kms (#884) 2023-02-05 18:41:35 -05:00
Cameron Gutman
592f3a70a3
Display initialization and frame ownership fixes (#850) 2023-01-28 23:15:37 -06:00
Cameron Gutman
a3e2c4fa31
Free AVFrame before calling eglTerminate() (#842) 2023-01-27 09:21:05 -06:00
Conn O'Griofa
8b507d2b30
Fix image leak of hardware parallel encoder on display reinit (#823) 2023-01-26 12:12:49 -05:00
manteuffel723
0698210ce1
Fix Error: Couldn't import RGB Image: 00003002 and 00003004 (#761) 2023-01-26 11:23:44 -05:00
Cameron Gutman
bcd5188ac5
Implement HDR support for Windows (#825) 2023-01-25 19:48:55 -06:00
Jari
1f2ad8da00
Scrub basic auth header from logs (#834) 2023-01-25 19:14:59 -05:00
Jari
35b660851c
Fix SimpleWeb arbitrary file read vulnurability (#829) 2023-01-25 16:26:41 -05:00
Jari
d625dda4ea
Steam Deck Gamingmode fix (#711) 2023-01-24 20:47:52 -06:00
Cameron Gutman
9181028bcf
HDR prep work (#808) 2023-01-23 20:54:08 -06:00
Cameron Gutman
4b642f6e01
Implement horizontal scrolling and Sunshine detection for Moonlight (#793) 2023-01-21 17:42:08 -06:00