Do not handle server shutdown as error
When the console is powered off or put into sleep mode during streaming,
the remote will disconnect and report the string "Server shutting down".
This is expected by the user and thus should not be shown as an error
Allow specifying command in switch podman script
Update android target SDK to 33 and dependencies
gui: Support for DualSense haptics and trigger effects
Haptics with PulseAudio does not seem to be working properly, so using
Pipewire as a backend is recommended (and picked by default, if
available via an SDL hint).
Fix feedback state position 0x1b when DualSense is connected.
The previous value of `0` caused the PS5 to expect a set of 'trigger status'
values in the 0x19 and 0x1a position, which would have required reading
raw values from the DualSense HID device, since these values are not
reported by the SDL DualSense driver (code that does so can be checked
out from the `trigger-feedback` branch on https://git.sr.ht/~jbaiter/chiaki).
Fortunately this is not neccessary, simply setting the value to `1`
seems to make the PS5 to rely on fallback logic (presumably based on the
L2/R2 value) and games that would otherwise have relied on the trigger
status (Astro's Playroom climbing levels) now work without any problems.
Add support for touchpad and sensor handling via SDL
This should enable support for more controllers besides the DS4 and
DualSense, basically any controller supported by SDL that has at least
one touchpad, an accelerometer and a gyroscope.
Older SDL versions have been tested down to 2.0.9. Versions older than
2.0.14 won't have sensors and touchpad support, though.
Setsu is deprecated and remains in-tree for now, but defaults to being
disabled if SDL2 is found and >= 2.0.14. If Setsu is enabled explicitly,
touchpad and sensors are not handled by SDL.
Fix testing on AppVeyor and make appveyor-win.sh more portable
test/chiaki-unit.exe failed to load some OpenSSL dlls somehow, which
broke the build. Moving them next to the executable fixes that.
The APPVEYOR_BUILD_FOLDER env var is also not needed anymore now.
Add quit (Ctrl+Q) shortcut to GUI
Add transform/scaling modes to GUI
Added zoom and stretch modes to GUI to mirror the transform modes
available on Android. They are reachable through a context menu or
CLI options --stretch and --zoom have been added as well.
Co-authored-by: Florian Märkl <firstname.lastname@example.org>
lib: Add support for trigger effects and controller haptics
By default, no trigger effects and haptics are requested from the
console, lib users have to explicitly enable them for a session by
setting the new `enable_dualsense` flag on the session's
Trigger Effects are simply a new Takion message type `11` and
include the type of each effect and the effect data (10 bytes) for
each of the triggers. They are exposed as a new Chiaki event type
Haptic effects are implemented in the protocol as a separate audio
stream, for which packets are only sent when there are actually
effects being played, i.e. silence is not explicitly encoded.
Audio data is 3kHz little endian 16 bit stereo sent in frames of
10 samples every 100ms. Note that the Takion AV header has the
codec field set to Opus, however this is not true.
Users can provide a new `ChiakiAudioSink` dedicated to haptics
via the new `chiaki_session_set_haptics_sink` API, which behaves
identical to the regular audio sink, except that it has a lower
Update chiaki-build-switch image in build script
Update macOS icon in Big Sur style
Update dependencies and fix CI
* nanopb 0.4.6.4 with PB_C99_STATIC_ASSERT to avoid depending on C11
* OpenSSL 1.1.1q on windows
* Switched from docker to podman in CI
* Appdir in appimage build container is now in /build/appdir to fix
"Invalid cross-device link" errors in linuxdeploy when appdir is in
* Use python protobuf==3.19.5 in bionic image, which still supports
python 3.6, and on windows where nanopb otherwise has issues
* Purge nanopb_pb2.py to force regeneration of it for possibly different
python protobuf versions in subsequent builds
* FreeBSD needs py39 packages now
Set PATH to find protoc for nanopb generator
Reduce targets in fetched mbedtls and show progress
Add option to fetch mbedtls with cmake
Update and fix CI
* appimage: switched to bionic
* android: updated container for nanopb changes
* switch: updated devkitpro and simpler cmake scripts
Update Windows Dependencies in CI
Fix stream command not working for second or later host in configuration