mirror of
https://github.com/nestriness/nestri.git
synced 2025-12-11 00:05:36 +02:00
## Description ### First commit Restructured protobuf schemas to make them easier to use across languages, switched to using them in-place of JSON for signaling as well, so there's no 2 different message formats flying about. Few new message types to deal with clients and nestri-servers better (not final format, may see changes still). General cleanup of dead/unused code along some bug squashing and package updates. TODO for future commits: - [x] Fix additional controllers not doing inputs (possibly needs vimputti changes) - [x] ~~Restructure relay protocols code a bit, to reduce bloatiness of the currently single file for them, more code re-use.~~ - Gonna keep this PR somewhat manageable without poking more at relay.. - [x] ~~Try to fix issue where with multiple clients, static stream content causes video to freeze until there's some movement.~~ - Was caused by server tuned profile being `throughput-performance`, causing CPU latency to be too high. - [x] Ponder the orb ### Second + third commit Redid the controller polling handling and fixed multi-controller handling in vimputti and nestri code sides. Remove some dead relay code as well to clean up the protocol source file, we'll revisit the meshing functionality later. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added software rendering option and MangoHud runtime config; controller sessions now support reconnection and batched state updates with persistent session IDs. * **Bug Fixes** * Restored previously-filtered NES-like gamepads so they connect correctly. * **Chores** * Modernized dependencies and protobuf tooling, migrated to protobuf-based messaging and streaming, and removed obsolete CUDA build steps. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: DatCaptainHorse <DatCaptainHorse@users.noreply.github.com>
42 lines
1.1 KiB
Protocol Buffer
42 lines
1.1 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
option go_package = "relay/internal/proto";
|
|
|
|
import "types.proto";
|
|
import "latency_tracker.proto";
|
|
|
|
package proto;
|
|
|
|
message ProtoMessageBase {
|
|
string payload_type = 1;
|
|
ProtoLatencyTracker latency = 2;
|
|
}
|
|
|
|
message ProtoMessage {
|
|
ProtoMessageBase message_base = 1;
|
|
oneof payload {
|
|
// Input types
|
|
ProtoMouseMove mouse_move = 2;
|
|
ProtoMouseMoveAbs mouse_move_abs = 3;
|
|
ProtoMouseWheel mouse_wheel = 4;
|
|
ProtoMouseKeyDown mouse_key_down = 5;
|
|
ProtoMouseKeyUp mouse_key_up = 6;
|
|
ProtoKeyDown key_down = 7;
|
|
ProtoKeyUp key_up = 8;
|
|
|
|
// Controller input types
|
|
ProtoControllerAttach controller_attach = 9;
|
|
ProtoControllerDetach controller_detach = 10;
|
|
ProtoControllerRumble controller_rumble = 11;
|
|
ProtoControllerStateBatch controller_state_batch = 12;
|
|
|
|
// Signaling types
|
|
ProtoICE ice = 20;
|
|
ProtoSDP sdp = 21;
|
|
ProtoRaw raw = 22;
|
|
ProtoClientRequestRoomStream client_request_room_stream = 23;
|
|
ProtoClientDisconnected client_disconnected = 24;
|
|
ProtoServerPushStream server_push_stream = 25;
|
|
}
|
|
}
|