mirror of
https://github.com/SteamDeckHomebrew/decky-frontend-lib.git
synced 2026-05-24 03:48:48 +02:00
* change: Add SteamClient types Steam Version: 1690583737 Steam Client Build Date: Sat, Jul 29 02:44 UTC -08:00 * new: Document some SteamClient interfaces Using the SDH discord server, GitHub and some personal findings, I tried to document as much SteamClient functions as I can. * new: Document some SteamClient interfaces - part 2 * new: Document some SteamClient interfaces - part 3 * new: Document some SteamClient interfaces - part 4 * new: Document some SteamClient interfaces - part 5 * new: Document some SteamClient interfaces - part 6 * new: Document some SteamClient interfaces - part 7 * change: Update interfaces to Steam Version 1691097434 Steam Version: 1691097434 Steam Client Build Date: Fri, Aug 4 04:54 UTC -08:00 * new: Document some SteamClient interfaces - part 8 * new: Document some SteamClient interfaces - part 9 * change: Update interfaces to Steam Version 1694466342 Steam Version: 1694466342 Steam Client Build Date: Tue, Sep 12 04:59 UTC +08:00 * new: Document some SteamClient interfaces - part 10 * new: Document some SteamClient interfaces - part 11 * new: Document some SteamClient interfaces - part 12 * new: Document some SteamClient interfaces - part 13 * new: Document some SteamClient interfaces - part 14 * change: Update interfaces to Steam Version 1698260427 Steam Version: 1698260427 Steam Client Build Date: Thu, Oct 26 2:40 AM UTC -08:00 * new: Document some SteamClient interfaces - part 10 * change: Update interfaces to Steam Version 1700160213 Steam Version: 1700160213 Steam Client Build Date: Fri, Nov 17 2:23 AM UTC +08:00 * docs(SteamClient): document some interfaces * change: Fix formatting style * docs(SteamClient): document protobufs & System.Report * docs(SteamClient): document CMsgMonitorInfo * docs(SteamClient): document remaining messages * docs(SteamClient): update interfaces to Steam Version 1702515219 Steam Version: 1702515219 Steam Client Build Date: Thu, Dec 14 00:36 UTC -08:00 * docs(SteamClient): update interfaces to Steam Version 1704329464 Steam Version: 1704329464 Steam Client Build Date: Thu, Jan 4 12:23 AM UTC -08:00 * docs(SteamClient): update interfaces to Steam Version 1705630720 Steam Version: 1705630720 Steam Client Build Date: Fri, Jan 19 1:58 AM UTC -08:00 * docs(SteamClient): update interfaces to Steam Version 1706914901 Steam Version: 1706914901 Steam Client Build Date: Fri, Feb 2 8:46 PM UTC -08:00 * docs(SteamClient): update interfaces to Steam Version 1709920887 Steam Version: 1709920887 Steam Client Build Date: Thu, Mar 7 5:29 PM UTC -08:00 * docs(SteamClient): update interfaces to Steam Version 1710786209 Steam Version: 1710786209 Steam Client Build Date: Mon, Mar 18 7:07 PM UTC -08:00 * docs(SteamClient): document even more interfaces * new: Document some SteamClient interfaces - part 15 * Fix QAM button bit number * new: Document some SteamClient interfaces - part 16 * change: Update interfaces to Steam Version 1714854927 Steam Version: 1714854927 Steam Client Build Date: Sat, May 4 7:11 AM UTC -08:00 * change: Refactor and reorganize SteamClient * docs(SteamClient): document more notification interfaces * docs(SteamClient): document more interfaces * docs(SteamClient): add some descriptions * docs(SteamClient): remove duplicate types * change: Fix rebase errors * Updated ControllerStateChange * Fix typo * docs(SteamClient): update interfaces to Steam Version 1723601482 Steam Version: 1723601482 Steam Client Build Date: Wed, Aug 14 01:51 UTC -08:00 * docs(SteamClient): update interfaces to 1725654351 * docs(SteamClient): update interfaces to 1730416762 * docs(SteamClient): forgot some stuff * docs(SteamClient): add missed interfaces * docs(SteamClient): update enums * docs(SteamClient): add some things and move stuff around * docs(SteamClient): move shared enums/interfaces to a separate file * docs(SteamClient): add more stuff * docs(SteamClient): reword some things * docs(SteamClient): new BrowserView things * docs(SteamClient): review fixes * move to src/globals --------- Co-authored-by: ricewind012 <58827198+ricewind012@users.noreply.github.com> Co-authored-by: Party Wumpus <48649272+PartyWumpus@users.noreply.github.com> Co-authored-by: Xander <xander@isxander.dev>
404 lines
11 KiB
TypeScript
404 lines
11 KiB
TypeScript
import { JsPbMessage, OperationResponse, Unregisterable } from "../../shared";
|
|
import {Device} from "./Device";
|
|
|
|
export interface Network {
|
|
Device: Device;
|
|
|
|
ForceRefresh(): Promise<OperationResponse>;
|
|
|
|
ForceTestConnectivity(): void;
|
|
|
|
GetProxyInfo(): Promise<ProxyInfo>;
|
|
|
|
RegisterForAppSummaryUpdate(callback: (data: AppSummary) => void): Unregisterable;
|
|
|
|
/**
|
|
* If `state` is deserialized, returns {@link CGameNetworkingUI_ConnectionState}.
|
|
* @returns an object that can be used to unregister the callback.
|
|
*/
|
|
RegisterForConnectionStateUpdate(callback: (state: ArrayBuffer) => void): Unregisterable;
|
|
|
|
RegisterForConnectivityTestChanges(callback: (connectivityTest: ConnectivityTest) => void): Unregisterable;
|
|
|
|
/**
|
|
* If `data` is deserialized, returns {@link CMsgNetworkDevicesData}.
|
|
* @returns an object that can be used to unregister the callback.
|
|
*/
|
|
RegisterForDeviceChanges(callback: (data: ArrayBuffer) => void): Unregisterable;
|
|
|
|
SetFakeLocalSystemState(state: ENetFakeLocalSystemState): void;
|
|
|
|
SetProxyInfo(mode: number, address: string, port: number, excludeLocal: boolean): void;
|
|
|
|
SetWifiEnabled(value: boolean): Promise<OperationResponse>;
|
|
|
|
StartScanningForNetworks(): Promise<OperationResponse>;
|
|
|
|
StopScanningForNetworks(): Promise<OperationResponse>;
|
|
}
|
|
|
|
export interface ConnectivityTest {
|
|
eConnectivityTestResult: EConnectivityTestResult;
|
|
eFakeState: ENetFakeLocalSystemState;
|
|
bChecking: boolean;
|
|
}
|
|
|
|
export enum EConnectivityTestResult {
|
|
Unknown,
|
|
Connected,
|
|
CaptivePortal,
|
|
TimedOut,
|
|
Failed,
|
|
WifiDisabled,
|
|
NoLAN,
|
|
}
|
|
|
|
export interface ProxyInfo {
|
|
proxy_mode: number;
|
|
address: string;
|
|
port: number;
|
|
exclude_local: boolean;
|
|
}
|
|
|
|
interface AppSummary {
|
|
nAppID: number;
|
|
/**
|
|
* If deserialized, returns {@link CGameNetworkingUI_AppSummary}.
|
|
*/
|
|
serializedMessage: ArrayBuffer;
|
|
}
|
|
|
|
export enum ENetFakeLocalSystemState {
|
|
Normal,
|
|
NoLAN,
|
|
CaptivePortal_Redirected,
|
|
CaptivePortal_InPlace,
|
|
NoInternet,
|
|
NoSteam,
|
|
}
|
|
|
|
export interface CMsgNetworkDevicesData extends JsPbMessage {
|
|
devices(): NetworkDevice[];
|
|
|
|
is_wifi_enabled(): boolean;
|
|
|
|
is_wifi_scanning_enabled(): boolean;
|
|
}
|
|
|
|
export interface CGameNetworkingUI_ConnectionSummary {
|
|
transport_kind?: number;
|
|
connection_state?: number;
|
|
sdrpop_local?: number;
|
|
sdrpop_remote?: number;
|
|
ping_ms?: number;
|
|
packet_loss?: number;
|
|
ping_default_internet_route?: number;
|
|
ip_was_shared?: number;
|
|
}
|
|
|
|
export interface CGameNetworkingUI_AppSummary {
|
|
appid?: number;
|
|
ip_was_shared_with_friend?: boolean;
|
|
ip_was_shared_with_nonfriend?: boolean;
|
|
active_connections?: number;
|
|
main_cxn?: CGameNetworkingUI_ConnectionSummary;
|
|
}
|
|
|
|
export interface SteamDatagramLinkInstantaneousStats {
|
|
out_packets_per_sec_x10: number | undefined;
|
|
out_bytes_per_sec: number | undefined;
|
|
in_packets_per_sec_x10: number | undefined;
|
|
in_bytes_per_sec: number | undefined;
|
|
ping_ms: number | undefined;
|
|
packets_dropped_pct: number | undefined;
|
|
packets_weird_sequence_pct: number | undefined;
|
|
peak_jitter_usec: number | undefined;
|
|
}
|
|
|
|
export interface SteamDatagramLinkLifetimeStats {
|
|
connected_seconds: number | undefined;
|
|
packets_sent: number | undefined;
|
|
kb_sent: number | undefined;
|
|
packets_recv: number | undefined;
|
|
kb_recv: number | undefined;
|
|
packets_recv_sequenced: number | undefined;
|
|
packets_recv_dropped: number | undefined;
|
|
packets_recv_out_of_order: number | undefined;
|
|
packets_recv_out_of_order_corrected: number | undefined;
|
|
packets_recv_duplicate: number | undefined;
|
|
packets_recv_lurch: number | undefined;
|
|
multipath_packets_recv_sequenced: number[];
|
|
multipath_packets_recv_later: number[];
|
|
multipath_send_enabled: number | undefined;
|
|
quality_histogram_100: number | undefined;
|
|
quality_histogram_99: number | undefined;
|
|
quality_histogram_97: number | undefined;
|
|
quality_histogram_95: number | undefined;
|
|
quality_histogram_90: number | undefined;
|
|
quality_histogram_75: number | undefined;
|
|
quality_histogram_50: number | undefined;
|
|
quality_histogram_1: number | undefined;
|
|
quality_histogram_dead: number | undefined;
|
|
quality_ntile_2nd: number | undefined;
|
|
quality_ntile_5th: number | undefined;
|
|
quality_ntile_25th: number | undefined;
|
|
quality_ntile_50th: number | undefined;
|
|
ping_histogram_25: number | undefined;
|
|
ping_histogram_50: number | undefined;
|
|
ping_histogram_75: number | undefined;
|
|
ping_histogram_100: number | undefined;
|
|
ping_histogram_125: number | undefined;
|
|
ping_histogram_150: number | undefined;
|
|
ping_histogram_200: number | undefined;
|
|
ping_histogram_300: number | undefined;
|
|
ping_histogram_max: number | undefined;
|
|
ping_ntile_5th: number | undefined;
|
|
ping_ntile_50th: number | undefined;
|
|
ping_ntile_75th: number | undefined;
|
|
ping_ntile_95th: number | undefined;
|
|
ping_ntile_98th: number | undefined;
|
|
jitter_histogram_negligible: number | undefined;
|
|
jitter_histogram_1: number | undefined;
|
|
jitter_histogram_2: number | undefined;
|
|
jitter_histogram_5: number | undefined;
|
|
jitter_histogram_10: number | undefined;
|
|
jitter_histogram_20: number | undefined;
|
|
txspeed_max: number | undefined;
|
|
txspeed_histogram_16: number | undefined;
|
|
txspeed_histogram_32: number | undefined;
|
|
txspeed_histogram_64: number | undefined;
|
|
txspeed_histogram_128: number | undefined;
|
|
txspeed_histogram_256: number | undefined;
|
|
txspeed_histogram_512: number | undefined;
|
|
txspeed_histogram_1024: number | undefined;
|
|
txspeed_histogram_max: number | undefined;
|
|
txspeed_ntile_5th: number | undefined;
|
|
txspeed_ntile_50th: number | undefined;
|
|
txspeed_ntile_75th: number | undefined;
|
|
txspeed_ntile_95th: number | undefined;
|
|
txspeed_ntile_98th: number | undefined;
|
|
rxspeed_max: number | undefined;
|
|
rxspeed_histogram_16: number | undefined;
|
|
rxspeed_histogram_32: number | undefined;
|
|
rxspeed_histogram_64: number | undefined;
|
|
rxspeed_histogram_128: number | undefined;
|
|
rxspeed_histogram_256: number | undefined;
|
|
rxspeed_histogram_512: number | undefined;
|
|
rxspeed_histogram_1024: number | undefined;
|
|
rxspeed_histogram_max: number | undefined;
|
|
rxspeed_ntile_5th: number | undefined;
|
|
rxspeed_ntile_50th: number | undefined;
|
|
rxspeed_ntile_75th: number | undefined;
|
|
rxspeed_ntile_95th: number | undefined;
|
|
rxspeed_ntile_98th: number | undefined;
|
|
}
|
|
|
|
export interface SteamDatagramConnectionQuality {
|
|
instantaneous: SteamDatagramLinkInstantaneousStats | undefined;
|
|
lifetime: SteamDatagramLinkLifetimeStats | undefined;
|
|
}
|
|
|
|
export interface SteamNetworkingICESessionSummary {
|
|
failure_reason_code: number | undefined;
|
|
local_candidate_types: number | undefined;
|
|
remote_candidate_types: number | undefined;
|
|
initial_route_kind: number | undefined;
|
|
initial_ping: number | undefined;
|
|
initial_score: number | undefined;
|
|
negotiation_ms: number | undefined;
|
|
best_route_kind: number | undefined;
|
|
best_ping: number | undefined;
|
|
best_score: number | undefined;
|
|
best_time: number | undefined;
|
|
selected_seconds: number | undefined;
|
|
user_settings: number | undefined;
|
|
ice_enable_var: number | undefined;
|
|
local_candidate_types_allowed: number | undefined;
|
|
}
|
|
|
|
export interface SteamNetworkingP2PSDRRoutingSummary {
|
|
initial_ping: number | undefined;
|
|
initial_ping_front_local: number | undefined;
|
|
initial_ping_front_remote: number | undefined;
|
|
initial_score: number | undefined;
|
|
initial_pop_local: number | undefined;
|
|
initial_pop_remote: number | undefined;
|
|
best_ping: number | undefined;
|
|
best_ping_front_local: number | undefined;
|
|
best_ping_front_remote: number | undefined;
|
|
best_score: number | undefined;
|
|
best_pop_local: number | undefined;
|
|
best_pop_remote: number | undefined;
|
|
best_time: number | undefined;
|
|
negotiation_ms: number | undefined;
|
|
selected_seconds: number | undefined;
|
|
}
|
|
|
|
export interface SteamDatagramP2PRoutingSummary {
|
|
ice: SteamNetworkingICESessionSummary | undefined;
|
|
sdr: SteamNetworkingP2PSDRRoutingSummary | undefined;
|
|
}
|
|
|
|
export interface CGameNetworkingUI_ConnectionState extends JsPbMessage {
|
|
connection_key(): string;
|
|
|
|
appid(): number;
|
|
|
|
connection_id_local(): number;
|
|
|
|
identity_local(): string;
|
|
|
|
identity_remote(): string;
|
|
|
|
connection_state(): number;
|
|
|
|
start_time(): number;
|
|
|
|
close_time(): number;
|
|
|
|
close_reason(): number;
|
|
|
|
close_message(): string;
|
|
|
|
status_loc_token(): string;
|
|
|
|
transport_kind(): number;
|
|
|
|
sdrpopid_local(): string;
|
|
|
|
sdrpopid_remote(): string;
|
|
|
|
address_remote(): string;
|
|
|
|
p2p_routing(): SteamDatagramP2PRoutingSummary;
|
|
|
|
ping_interior(): number;
|
|
|
|
ping_remote_front(): number;
|
|
|
|
ping_default_internet_route(): number;
|
|
|
|
e2e_quality_local(): SteamDatagramConnectionQuality;
|
|
|
|
e2e_quality_remote(): SteamDatagramConnectionQuality;
|
|
|
|
e2e_quality_remote_instantaneous_time(): string;
|
|
|
|
e2e_quality_remote_lifetime_time(): string;
|
|
|
|
front_quality_local(): SteamDatagramConnectionQuality;
|
|
|
|
front_quality_remote(): SteamDatagramConnectionQuality;
|
|
|
|
front_quality_remote_instantaneous_time(): string;
|
|
|
|
front_quality_remote_lifetime_time(): string;
|
|
}
|
|
|
|
export interface NetworkDevice_Wireless {
|
|
aps: WirelessAP[];
|
|
/**
|
|
* @remarks Not present if wired.
|
|
* @todo enum
|
|
*/
|
|
esecurity_supported?: number;
|
|
}
|
|
|
|
export interface WirelessAP {
|
|
esecurity: EWirelessSecurityFlags;
|
|
estrength: EWirelessEndpointStrength;
|
|
id: number;
|
|
is_active: boolean;
|
|
is_autoconnect: boolean;
|
|
password: string;
|
|
ssid: string;
|
|
strength_raw: number;
|
|
user_name?: string;
|
|
}
|
|
|
|
export enum EWirelessSecurityFlags {
|
|
None,
|
|
StaticWep = 1 << 0,
|
|
DynamicWep = 1 << 1,
|
|
Wpa = 1 << 2,
|
|
WpaEnterprise = 1 << 3,
|
|
Wpa2 = 1 << 4,
|
|
Wpa2Enterprise = 1 << 5,
|
|
/**
|
|
* Special value to indicate that this platform does not support
|
|
* the security methods required to connect to an access point
|
|
*/
|
|
Unsupported = 1 << 15,
|
|
}
|
|
|
|
export interface NetworkDevice_Wired {
|
|
friendly_name: string;
|
|
is_cable_present: boolean;
|
|
speed_mbit: number;
|
|
}
|
|
|
|
export interface NetworkDevice {
|
|
estate: ENetworkDeviceState;
|
|
etype: ENetworkDeviceType;
|
|
id: number;
|
|
ipv4: {
|
|
addresses: NetworkDeviceIPv4Address[];
|
|
};
|
|
ipv6: {
|
|
addresses: NetworkDeviceIPv6Address[];
|
|
};
|
|
mac: string;
|
|
product: string;
|
|
vendor: string;
|
|
/**
|
|
* @remarks Present only if wired.
|
|
*/
|
|
wired?: NetworkDevice_Wired;
|
|
/**
|
|
* @remarks Present even if wired.
|
|
*/
|
|
wireless: NetworkDevice_Wireless;
|
|
}
|
|
|
|
export interface NetworkDeviceIPv4Address {
|
|
ip: number;
|
|
netmask: number;
|
|
}
|
|
|
|
export interface NetworkDeviceIPv6Address {
|
|
ip: string;
|
|
}
|
|
|
|
export interface NetworkDeviceIP {
|
|
dns_ip: number[];
|
|
gateway_ip: number;
|
|
is_default_route: boolean;
|
|
is_dhcp_enabled: boolean;
|
|
is_enabled: boolean;
|
|
}
|
|
|
|
export enum ENetworkDeviceState {
|
|
NotPresent,
|
|
Failed,
|
|
Disconnected,
|
|
Disconnecting,
|
|
Connecting,
|
|
Connected,
|
|
Retrying,
|
|
}
|
|
|
|
export enum ENetworkDeviceType {
|
|
Unknown,
|
|
Wired,
|
|
Wireless,
|
|
Virtual,
|
|
}
|
|
|
|
export enum EWirelessEndpointStrength {
|
|
None,
|
|
Weak,
|
|
Ok,
|
|
Good,
|
|
Excellent,
|
|
}
|