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>
171 lines
6.1 KiB
TypeScript
171 lines
6.1 KiB
TypeScript
// @generated by protoc-gen-es v2.10.0 with parameter "target=ts"
|
|
// @generated from file messages.proto (package proto, syntax proto3)
|
|
/* eslint-disable */
|
|
|
|
import type { GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
|
|
import { fileDesc, messageDesc } from "@bufbuild/protobuf/codegenv2";
|
|
import type { ProtoClientDisconnected, ProtoClientRequestRoomStream, ProtoControllerAttach, ProtoControllerDetach, ProtoControllerRumble, ProtoControllerStateBatch, ProtoICE, ProtoKeyDown, ProtoKeyUp, ProtoMouseKeyDown, ProtoMouseKeyUp, ProtoMouseMove, ProtoMouseMoveAbs, ProtoMouseWheel, ProtoRaw, ProtoSDP, ProtoServerPushStream } from "./types_pb";
|
|
import { file_types } from "./types_pb";
|
|
import type { ProtoLatencyTracker } from "./latency_tracker_pb";
|
|
import { file_latency_tracker } from "./latency_tracker_pb";
|
|
import type { Message } from "@bufbuild/protobuf";
|
|
|
|
/**
|
|
* Describes the file messages.proto.
|
|
*/
|
|
export const file_messages: GenFile = /*@__PURE__*/
|
|
fileDesc("Cg5tZXNzYWdlcy5wcm90bxIFcHJvdG8iVQoQUHJvdG9NZXNzYWdlQmFzZRIUCgxwYXlsb2FkX3R5cGUYASABKAkSKwoHbGF0ZW5jeRgCIAEoCzIaLnByb3RvLlByb3RvTGF0ZW5jeVRyYWNrZXIipQcKDFByb3RvTWVzc2FnZRItCgxtZXNzYWdlX2Jhc2UYASABKAsyFy5wcm90by5Qcm90b01lc3NhZ2VCYXNlEisKCm1vdXNlX21vdmUYAiABKAsyFS5wcm90by5Qcm90b01vdXNlTW92ZUgAEjIKDm1vdXNlX21vdmVfYWJzGAMgASgLMhgucHJvdG8uUHJvdG9Nb3VzZU1vdmVBYnNIABItCgttb3VzZV93aGVlbBgEIAEoCzIWLnByb3RvLlByb3RvTW91c2VXaGVlbEgAEjIKDm1vdXNlX2tleV9kb3duGAUgASgLMhgucHJvdG8uUHJvdG9Nb3VzZUtleURvd25IABIuCgxtb3VzZV9rZXlfdXAYBiABKAsyFi5wcm90by5Qcm90b01vdXNlS2V5VXBIABInCghrZXlfZG93bhgHIAEoCzITLnByb3RvLlByb3RvS2V5RG93bkgAEiMKBmtleV91cBgIIAEoCzIRLnByb3RvLlByb3RvS2V5VXBIABI5ChFjb250cm9sbGVyX2F0dGFjaBgJIAEoCzIcLnByb3RvLlByb3RvQ29udHJvbGxlckF0dGFjaEgAEjkKEWNvbnRyb2xsZXJfZGV0YWNoGAogASgLMhwucHJvdG8uUHJvdG9Db250cm9sbGVyRGV0YWNoSAASOQoRY29udHJvbGxlcl9ydW1ibGUYCyABKAsyHC5wcm90by5Qcm90b0NvbnRyb2xsZXJSdW1ibGVIABJCChZjb250cm9sbGVyX3N0YXRlX2JhdGNoGAwgASgLMiAucHJvdG8uUHJvdG9Db250cm9sbGVyU3RhdGVCYXRjaEgAEh4KA2ljZRgUIAEoCzIPLnByb3RvLlByb3RvSUNFSAASHgoDc2RwGBUgASgLMg8ucHJvdG8uUHJvdG9TRFBIABIeCgNyYXcYFiABKAsyDy5wcm90by5Qcm90b1Jhd0gAEkkKGmNsaWVudF9yZXF1ZXN0X3Jvb21fc3RyZWFtGBcgASgLMiMucHJvdG8uUHJvdG9DbGllbnRSZXF1ZXN0Um9vbVN0cmVhbUgAEj0KE2NsaWVudF9kaXNjb25uZWN0ZWQYGCABKAsyHi5wcm90by5Qcm90b0NsaWVudERpc2Nvbm5lY3RlZEgAEjoKEnNlcnZlcl9wdXNoX3N0cmVhbRgZIAEoCzIcLnByb3RvLlByb3RvU2VydmVyUHVzaFN0cmVhbUgAQgkKB3BheWxvYWRCFloUcmVsYXkvaW50ZXJuYWwvcHJvdG9iBnByb3RvMw", [file_types, file_latency_tracker]);
|
|
|
|
/**
|
|
* @generated from message proto.ProtoMessageBase
|
|
*/
|
|
export type ProtoMessageBase = Message<"proto.ProtoMessageBase"> & {
|
|
/**
|
|
* @generated from field: string payload_type = 1;
|
|
*/
|
|
payloadType: string;
|
|
|
|
/**
|
|
* @generated from field: proto.ProtoLatencyTracker latency = 2;
|
|
*/
|
|
latency?: ProtoLatencyTracker;
|
|
};
|
|
|
|
/**
|
|
* Describes the message proto.ProtoMessageBase.
|
|
* Use `create(ProtoMessageBaseSchema)` to create a new message.
|
|
*/
|
|
export const ProtoMessageBaseSchema: GenMessage<ProtoMessageBase> = /*@__PURE__*/
|
|
messageDesc(file_messages, 0);
|
|
|
|
/**
|
|
* @generated from message proto.ProtoMessage
|
|
*/
|
|
export type ProtoMessage = Message<"proto.ProtoMessage"> & {
|
|
/**
|
|
* @generated from field: proto.ProtoMessageBase message_base = 1;
|
|
*/
|
|
messageBase?: ProtoMessageBase;
|
|
|
|
/**
|
|
* @generated from oneof proto.ProtoMessage.payload
|
|
*/
|
|
payload: {
|
|
/**
|
|
* Input types
|
|
*
|
|
* @generated from field: proto.ProtoMouseMove mouse_move = 2;
|
|
*/
|
|
value: ProtoMouseMove;
|
|
case: "mouseMove";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoMouseMoveAbs mouse_move_abs = 3;
|
|
*/
|
|
value: ProtoMouseMoveAbs;
|
|
case: "mouseMoveAbs";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoMouseWheel mouse_wheel = 4;
|
|
*/
|
|
value: ProtoMouseWheel;
|
|
case: "mouseWheel";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoMouseKeyDown mouse_key_down = 5;
|
|
*/
|
|
value: ProtoMouseKeyDown;
|
|
case: "mouseKeyDown";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoMouseKeyUp mouse_key_up = 6;
|
|
*/
|
|
value: ProtoMouseKeyUp;
|
|
case: "mouseKeyUp";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoKeyDown key_down = 7;
|
|
*/
|
|
value: ProtoKeyDown;
|
|
case: "keyDown";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoKeyUp key_up = 8;
|
|
*/
|
|
value: ProtoKeyUp;
|
|
case: "keyUp";
|
|
} | {
|
|
/**
|
|
* Controller input types
|
|
*
|
|
* @generated from field: proto.ProtoControllerAttach controller_attach = 9;
|
|
*/
|
|
value: ProtoControllerAttach;
|
|
case: "controllerAttach";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoControllerDetach controller_detach = 10;
|
|
*/
|
|
value: ProtoControllerDetach;
|
|
case: "controllerDetach";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoControllerRumble controller_rumble = 11;
|
|
*/
|
|
value: ProtoControllerRumble;
|
|
case: "controllerRumble";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoControllerStateBatch controller_state_batch = 12;
|
|
*/
|
|
value: ProtoControllerStateBatch;
|
|
case: "controllerStateBatch";
|
|
} | {
|
|
/**
|
|
* Signaling types
|
|
*
|
|
* @generated from field: proto.ProtoICE ice = 20;
|
|
*/
|
|
value: ProtoICE;
|
|
case: "ice";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoSDP sdp = 21;
|
|
*/
|
|
value: ProtoSDP;
|
|
case: "sdp";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoRaw raw = 22;
|
|
*/
|
|
value: ProtoRaw;
|
|
case: "raw";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoClientRequestRoomStream client_request_room_stream = 23;
|
|
*/
|
|
value: ProtoClientRequestRoomStream;
|
|
case: "clientRequestRoomStream";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoClientDisconnected client_disconnected = 24;
|
|
*/
|
|
value: ProtoClientDisconnected;
|
|
case: "clientDisconnected";
|
|
} | {
|
|
/**
|
|
* @generated from field: proto.ProtoServerPushStream server_push_stream = 25;
|
|
*/
|
|
value: ProtoServerPushStream;
|
|
case: "serverPushStream";
|
|
} | { case: undefined; value?: undefined };
|
|
};
|
|
|
|
/**
|
|
* Describes the message proto.ProtoMessage.
|
|
* Use `create(ProtoMessageSchema)` to create a new message.
|
|
*/
|
|
export const ProtoMessageSchema: GenMessage<ProtoMessage> = /*@__PURE__*/
|
|
messageDesc(file_messages, 1);
|
|
|