64 Commits
Author SHA1 Message Date
itsmattkc f50df6290d pipe/gui: set unmanaged at app-level rather than connection-level
Rather than setting NetworkManager to "unmanage" the Wi-Fi interface every sync/connection, do it once when the pipe starts. This way, there won't be any awkward shuffling as the pipe goes from syncing to connecting.
2025-12-30 10:36:31 -08:00
itsmattkc c30d889f0c pipe: fix last remaining CPU thrasher 2025-12-30 02:56:00 -08:00
itsmattkc fea81782a3 pipe: try to detect if DHCP failed due to disconnection 2025-12-29 12:04:13 -08:00
itsmattkc dfb31f430d pipe: don't use fprintf for string without format [skip ci] 2025-12-29 10:44:54 -08:00
itsmattkc 65e1178c0e fix closing race condition 2025-12-29 10:04:42 -08:00
itsmattkc 4edcf199d4 find git, remove bash from pi0 defconfig 2025-12-01 10:05:59 -08:00
itsmattkc a1e4cc119c finished buildroot build (hopefully) 2025-12-01 01:53:51 -08:00
MattKC b0bbc31002 Various optimizations and refactoring (#259)
* optimizations

* Update menu_game.h

* try new code

* use cached EGLImages

* try drm cache on pi

* nani?

* huh?

* require opengl egl

* find EGL

* find EGL separately

* logging

* add support for versions of ffmpeg less than 6.0

* disable drm cache for now

* Update ui_sdl.c

* use old code for now

* disable avcc hdr for now

* restore error message

* try disabling format modifiers?

* tell me what the layer is

* pi decoder actually produces frames in yuv420p

* print more debug info

* try this

* switch to faster decode path

* switch to old code

* Update ui_sdl.c

* add more timing profiling

* more printing

* enable some optimizations

* draw menus when not in game mode

* call render present

* Update ui_sdl.c

* Update ui_sdl.c

* remove unused code

* Update CMakeLists.txt

* incorporate direct DRM code

* Update CMakeLists.txt

* free drm context and test old decoding code

* move SDL event loop to separate thread so controls are not limited by display rate

* add a wait to reduce CPU thrashing

* fix double free

* separate video into recv and consume threads

* Update ui_sdl_drm.c

* Update ui_sdl_drm.c

* Update gamepad.c

* further optimizations

* anti-alias buttons more

* fix some compiler errors

* only include DRM on linux

* fix windows compile issues

* fix includes

* Update CMakeLists.txt

* add htobe32 define for macOS

* Update video.c

* Update gamepad.c
2025-11-30 20:56:52 -08:00
itsmattkc da0033e0c6 ci: remove armhf build for now
Decided it probably makes more sense to provide a buildroot distro rather than an app release.
2025-11-05 16:09:35 -08:00
MattKC d90f09a895 ci: add armhf builds 2025-10-27 18:34:12 -07:00
MattKCandMattKC 61e2a91028 Implement Polkit agent for platforms that lack them (#244)
* attempt to set up polkit listener

* implement polkit agent functionality

* finalized polkit implementation

* add warning for installing polkit rule

* docker: install libpolkit-agent-1-dev

* add uninstall polkit option

---------

Co-authored-by: MattKC <[email protected]>
2025-10-03 16:25:00 -07:00
MattKC 2859af766a cmake: make polkit rule conditional, install script if off 2025-08-25 21:44:50 -07:00
MattKC c9b44cfe70 close pipefd after process has exited
Otherwise, command will throw a broken pipe exception and crash before it completes
2025-08-18 17:07:21 -07:00
MattKCandMattKC e644a02ec9 Various Steam Deck Improvements (#229)
* initial commit

* seems to work

* try SDL_SetHintWithPriority

* set hint with SDL_HINT_OVERRIDE

* try setting hint before SDL_init

* fix issue with signal handling

* send sigterm to pipe

* ensure SDL creates signal handlers?

* fixed pipe issues not closing

* ensure pipe is stopped ASAP when receiving SIGINT and SIGTERM

The Steam Deck gives us extremely little time to clean up before getting SIGKILL'd, so make sure pipe is told to quit ASAP when receiving SIGINT or SIGTERM.

* fix logic issue

* removed things that aren't necessary for this PR

* clarified some comments [skip ci]

---------

Co-authored-by: MattKC <[email protected]>
2025-08-17 22:34:32 -07:00
itsmattkc b4ca5a55b7 fix openssl/hostap vendored build 2025-06-24 11:25:11 -07:00
itsmattkc 66c045f301 remove libnl and libssl from docker because vendored builds them ourselves 2025-06-24 11:02:16 -07:00
itsmattkc eb74b23893 improve cross compiling behavior 2025-06-24 01:07:13 -07:00
itsmattkc 00ffc143ca cmake: allow libnm support to be disabled 2025-06-20 18:39:42 -07:00
itsmattkc f1edc35edc cmake: self-build openssl if vendored 2025-06-20 18:28:50 -07:00
itsmattkc 3ca3af4379 pipe: don't die if nmcli get device fails 2025-05-24 01:19:41 -07:00
itsmattkc a1764b673b use set -e in polkit script 2025-05-23 23:46:37 -07:00
itsmattkc 65caf0025c pipe: copy va_args if external logging
It seems re-using the same va_list can cause issues
2025-05-23 18:13:30 -07:00
itsmattkc 28ea7994f0 fix erroneous mutex double unlock 2025-05-15 17:01:05 -07:00
itsmattkc a50c398ea4 add logging functionality to vanilla pipe 2025-05-13 17:42:25 -07:00
itsmattkc 4ae9abefbf remove redundant logging functions 2025-05-08 12:58:36 -07:00
itsmattkc 4d29ae129e no need to update connection config after making it 2025-05-08 12:56:32 -07:00
itsmattkc fc0e509ddc pipe: send ping while performing wps auth 2025-03-31 09:14:17 +11:00
itsmattkc 42b2815b4e link wpa_supplicant directly as a quasi-static library
This removes all execs to other executables from vanilla-pipe
2025-03-03 15:07:57 -08:00
itsmattkc 89f25ee00c use libnm instead of making exec calls to nmcli 2025-03-03 11:16:27 -08:00
itsmattkc 7478d0aca5 pipe: ensure running actions complete before program terminates 2025-02-19 16:33:36 -08:00
itsmattkc 3b9e9db48f set wii u route priority to absolute lowest when configuring IP address 2025-02-19 16:29:08 -08:00
itsmattkc 210d4d703d set correct IP mask 2025-02-19 15:21:08 -08:00
itsmattkc 3e5b1208af dhcp: reset timeout to zero on startup
Fixes issue where DHCP gets indefinitely stuck when connecting more than once in the same session
2025-02-19 12:42:06 -08:00
itsmattkc 1f9741e780 cmake: better method of detecting debug [skip ci] 2025-02-19 11:37:35 -08:00
itsmattkc 3b4c97c672 if debug build, enable debug log from udhcpc [skip ci] 2025-02-19 11:35:52 -08:00
itsmattkc 54efc5564a implement optional polkit script 2025-02-18 17:43:16 -08:00
itsmattkc ca4c71b37e fix and sign android builds 2025-02-18 15:23:33 -08:00
itsmattkc 2f0e912273 use drc-hostap.git specifically 2025-02-18 04:21:35 -08:00
itsmattkc 7f4c7de714 enable gnu extensions for udhcpc 2025-02-18 03:07:03 -08:00
itsmattkc 50636906f9 use builtin dhcp instead of dhclient
Fixes #77
Fixes #109
2025-02-18 01:00:44 -08:00
itsmattkc dd1f8d12f8 move polkit files to pipe 2025-02-18 00:58:52 -08:00
itsmattkc dce93fbfff compile hostap as an ExternalProject rather than a git submodule 2025-02-17 11:57:55 -08:00
itsmattkc 234b2604a8 significant work 2025-02-17 11:06:12 -08:00
itsmattkc 9b370947e1 implement actual gameplay 2025-02-13 15:19:04 -08:00
itsmattkc db9cd2f134 return ssid and psk from pipe to library
Will eventually allow one Vanilla instance to connect to multiple consoles
2025-02-10 13:02:18 -08:00
itsmattkc 94d86f5bba implement communication with pipe
also adds support for local Unix domain socket mode
2025-02-09 12:26:58 -08:00
itsmattkc 5f86ab1498 use custom dhcp script
Greatly improves routing behavior.

Rather than letting dhclient perform routing and then "correct" it after the fact, we replace dhclient's behavior entirely.

Rather than add a system-wide route to 192.168.1.10, we bind our socket to the interface so no conflicts will occur with any other device on the network named 192.168.1.10. No system-wide route is made via the wireless interface for 192.168.1.0/24 or for 192.168.1.10.

Fixes #96
2024-11-15 12:57:46 -08:00
MattKC f4f4fc4746 skip printing BSSIDs in debug output 2024-11-14 03:38:42 -08:00
MattKC 20f48c01a6 require vanilla-pipe to run as root 2024-11-14 03:38:28 -08:00
MattKC e9bd0fa30f Merge branch 'rpi-eventloop' 2024-11-13 22:14:37 -08:00