diff --git a/Readme.txt b/Readme.txt index 9572ce8..f5beb71 100644 --- a/Readme.txt +++ b/Readme.txt @@ -9,6 +9,29 @@ Welcome to the Steamworks SDK. For documentation please see our partner website at: http://partner.steamgames.com +---------------------------------------------------------------- +v1.64 11th March 2026 +---------------------------------------------------------------- + +General: +* androidarm64 libs now statically link libc++ +* androidarm64 libs now use 16KB max page size (from 4KB) +* linuxarm64 libs now use 4KB max page size (from 64KB) + +ISteamApps: +* Added last update timestamp to GetBetaInfo() + +ISteamUGC: +* Added MarkDownloadedItemAsUnused() +* Added GetDownloadedItems(), GetNumDownloadedItems() + +ISteamRemotePlay: +* Added BSessionRemotePlayTogether() +* Added GetSessionGuestID() +* Added GetSmallSessionAvatar(), GetMediumSessionAvatar(), GetLargeSessionAvatar() +* Added SteamRemotePlaySessionAvatarLoaded_t callback + + ---------------------------------------------------------------- v1.63 18th November 2025 ---------------------------------------------------------------- diff --git a/public/steam/isteamapps.h b/public/steam/isteamapps.h index ee2a4dc..443c732 100644 --- a/public/steam/isteamapps.h +++ b/public/steam/isteamapps.h @@ -116,13 +116,13 @@ public: virtual int GetNumBetas( int *pnAvailable, int *pnPrivate ) = 0; // // return beta branch details, name, description, current BuildID and state flags (EBetaBranchFlags) - virtual bool GetBetaInfo( int iBetaIndex, uint32 *punFlags, uint32 *punBuildID, char *pchBetaName, int cchBetaName, char *pchDescription, int cchDescription ) = 0; // iterate through + virtual bool GetBetaInfo( int iBetaIndex, uint32 *punFlags, uint32 *punBuildID, char *pchBetaName, int cchBetaName, char *pchDescription, int cchDescription, uint32 *punLastUpdated ) = 0; // iterate through // select this beta branch for this app as active, might need the game to restart so Steam can update to that branch virtual bool SetActiveBeta( const char *pchBetaName ) = 0; }; -#define STEAMAPPS_INTERFACE_VERSION "STEAMAPPS_INTERFACE_VERSION008" +#define STEAMAPPS_INTERFACE_VERSION "STEAMAPPS_INTERFACE_VERSION009" // Global interface accessor inline ISteamApps *SteamApps(); diff --git a/public/steam/isteamparentalsettings.h b/public/steam/isteamparentalsettings.h index 972e355..6fe891d 100644 --- a/public/steam/isteamparentalsettings.h +++ b/public/steam/isteamparentalsettings.h @@ -13,6 +13,8 @@ #include "steam_api_common.h" // Feature types for parental settings +// These end up in a 32-bit bitfield so we're +// limited on how many we can have. enum EParentalFeature { k_EFeatureInvalid = 0, @@ -31,6 +33,7 @@ enum EParentalFeature k_EFeatureSiteLicense = 13, k_EFeatureKioskMode_Deprecated = 14, k_EFeatureBlockAlways = 15, + k_EFeatureDesktop = 16, k_EFeatureMax }; diff --git a/public/steam/isteamremoteplay.h b/public/steam/isteamremoteplay.h index 7dd3758..f558c1f 100644 --- a/public/steam/isteamremoteplay.h +++ b/public/steam/isteamremoteplay.h @@ -282,9 +282,28 @@ public: // Get the currently connected Steam Remote Play session ID at the specified index. Returns zero if index is out of bounds. virtual RemotePlaySessionID_t GetSessionID( int iSessionIndex ) = 0; + // Return true if the session has joined using a Remote Play Together invitation + virtual bool BSessionRemotePlayTogether( RemotePlaySessionID_t unSessionID ) = 0; + // Get the SteamID of the connected user virtual CSteamID GetSessionSteamID( RemotePlaySessionID_t unSessionID ) = 0; + // Get the guest ID of the connected user if they are a Remote Play Together guest + // This returns 0 if the sessionID isn't valid or the session isn't a Remote Play Together guest + virtual uint32 GetSessionGuestID( RemotePlaySessionID_t unSessionID ) = 0; + + // gets the small (32x32) avatar of the connected user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if the sessionID isn't valid + // returns -1 if this image has yet to be loaded, in this case wait for a RemotePlaySessionAvatarLoaded_t callback and then call this again + virtual int GetSmallSessionAvatar( RemotePlaySessionID_t unSessionID ) = 0; + + // gets the medium (64x64) avatar of the connected user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if the sessionID isn't valid + // returns -1 if this image has yet to be loaded, in this case wait for a RemotePlaySessionAvatarLoaded_t callback and then call this again + virtual int GetMediumSessionAvatar( RemotePlaySessionID_t unSessionID ) = 0; + + // gets the large (184x184) avatar of the connected user, which is a handle to be used in IClientUtils::GetImageRGBA(), or 0 if the sessionID isn't valid + // returns -1 if this image has yet to be loaded, in this case wait for a RemotePlaySessionAvatarLoaded_t callback and then call this again + virtual int GetLargeSessionAvatar( RemotePlaySessionID_t unSessionID ) = 0; + // Get the name of the session client device // This returns NULL if the sessionID is not valid virtual const char *GetSessionClientName( RemotePlaySessionID_t unSessionID ) = 0; @@ -337,8 +356,8 @@ public: // nHeight - The height of the cursor, in pixels // nHotX - The X coordinate of the cursor hot spot in pixels, offset from the left of the cursor // nHotY - The Y coordinate of the cursor hot spot in pixels, offset from the top of the cursor - // pBGRA - A pointer to the cursor pixels, with the color channels in red, green, blue, alpha order - // nPitch - The distance between pixel rows in bytes, defaults to nWidth * 4 + // pBGRA - A pointer to the cursor pixels, with 8-bit color channels in red, green, blue, alpha order + // nPitch - The distance between pixel rows in bytes, defaults to nWidth * 4 virtual RemotePlayCursorID_t CreateMouseCursor( int nWidth, int nHeight, int nHotX, int nHotY, const void *pBGRA, int nPitch = 0 ) = 0; // Set the mouse cursor for a remote player @@ -348,7 +367,7 @@ public: virtual void SetMouseCursor( RemotePlaySessionID_t unSessionID, RemotePlayCursorID_t unCursorID ) = 0; }; -#define STEAMREMOTEPLAY_INTERFACE_VERSION "STEAMREMOTEPLAY_INTERFACE_VERSION003" +#define STEAMREMOTEPLAY_INTERFACE_VERSION "STEAMREMOTEPLAY_INTERFACE_VERSION004" // Global interface accessor inline ISteamRemotePlay *SteamRemotePlay(); @@ -366,17 +385,25 @@ STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemotePlay *, SteamRemotePlay, STEAM STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionConnected_t, k_iSteamRemotePlayCallbacks + 1 ) STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) -STEAM_CALLBACK_END( 0 ) +STEAM_CALLBACK_END( 1 ) STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionDisconnected_t, k_iSteamRemotePlayCallbacks + 2 ) STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) -STEAM_CALLBACK_END( 0 ) +STEAM_CALLBACK_END( 1 ) STEAM_CALLBACK_BEGIN( SteamRemotePlayTogetherGuestInvite_t, k_iSteamRemotePlayCallbacks + 3 ) STEAM_CALLBACK_MEMBER_ARRAY( 0, char, m_szConnectURL, 1024 ) -STEAM_CALLBACK_END( 0 ) +STEAM_CALLBACK_END( 1 ) + + +STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionAvatarLoaded_t, k_iSteamRemotePlayCallbacks + 4 ) + STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID ) // sessionID the avatar has been loaded for + STEAM_CALLBACK_MEMBER( 1, int, m_iImage ) // the image index of the now loaded image + STEAM_CALLBACK_MEMBER( 2, int, m_iWide ) // width of the loaded image + STEAM_CALLBACK_MEMBER( 3, int, m_iTall ) // height of the loaded image +STEAM_CALLBACK_END( 4 ) #pragma pack( pop ) diff --git a/public/steam/isteamugc.h b/public/steam/isteamugc.h index a985809..656ed07 100644 --- a/public/steam/isteamugc.h +++ b/public/steam/isteamugc.h @@ -400,6 +400,15 @@ public: // Set the local load order for these items. If there are any items not in the given list, they will sort by the time subscribed. virtual bool SetSubscriptionsLoadOrder( PublishedFileId_t *pvecPublishedFileIDs, uint32 unNumPublishedFileIDs ) = 0; + + // Tells the client to no longer try to keep the item in its local cache, unless it was subscribed to by other users on this machine + virtual bool MarkDownloadedItemAsUnused( PublishedFileId_t nPublishedFileID ) = 0; + + // Returns the number of items actually downloaded locally + virtual uint32 GetNumDownloadedItems() = 0; + + // Returns the ids of the items downloaded + virtual uint32 GetDownloadedItems( PublishedFileId_t *pvecPublishedFileIDs, uint32 cMaxEntries ) = 0; }; #define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION021" diff --git a/public/steam/isteamuserstats.h b/public/steam/isteamuserstats.h index a7fc7fe..ea43230 100644 --- a/public/steam/isteamuserstats.h +++ b/public/steam/isteamuserstats.h @@ -354,7 +354,7 @@ struct UserAchievementStored_t enum { k_iCallback = k_iSteamUserStatsCallbacks + 3 }; uint64 m_nGameID; // Game this is for - bool m_bGroupAchievement; // if this is a "group" achievement + bool m_bGroupAchievement; // unused. if this is a "group" achievement char m_rgchAchievementName[k_cchStatNameMax]; // name of the achievement uint32 m_nCurProgress; // current progress towards the achievement uint32 m_nMaxProgress; // "out of" this many diff --git a/public/steam/lib/linux32/libsdkencryptedappticket.so b/public/steam/lib/linux32/libsdkencryptedappticket.so index 19e1136..74bbe79 100644 Binary files a/public/steam/lib/linux32/libsdkencryptedappticket.so and b/public/steam/lib/linux32/libsdkencryptedappticket.so differ diff --git a/public/steam/lib/linux64/libsdkencryptedappticket.so b/public/steam/lib/linux64/libsdkencryptedappticket.so index b3626f0..f4a2ea4 100644 Binary files a/public/steam/lib/linux64/libsdkencryptedappticket.so and b/public/steam/lib/linux64/libsdkencryptedappticket.so differ diff --git a/public/steam/lib/linuxarm64/libsdkencryptedappticket.so b/public/steam/lib/linuxarm64/libsdkencryptedappticket.so index 463d5a3..0112b1f 100644 Binary files a/public/steam/lib/linuxarm64/libsdkencryptedappticket.so and b/public/steam/lib/linuxarm64/libsdkencryptedappticket.so differ diff --git a/public/steam/lib/osx/libsdkencryptedappticket.dylib b/public/steam/lib/osx/libsdkencryptedappticket.dylib index 6e81145..8fe637b 100644 Binary files a/public/steam/lib/osx/libsdkencryptedappticket.dylib and b/public/steam/lib/osx/libsdkencryptedappticket.dylib differ diff --git a/public/steam/lib/win32/sdkencryptedappticket.dll b/public/steam/lib/win32/sdkencryptedappticket.dll index ffecd13..6147293 100644 Binary files a/public/steam/lib/win32/sdkencryptedappticket.dll and b/public/steam/lib/win32/sdkencryptedappticket.dll differ diff --git a/public/steam/lib/win64/sdkencryptedappticket64.dll b/public/steam/lib/win64/sdkencryptedappticket64.dll index fe09bed..04e9711 100644 Binary files a/public/steam/lib/win64/sdkencryptedappticket64.dll and b/public/steam/lib/win64/sdkencryptedappticket64.dll differ diff --git a/public/steam/steam_api.json b/public/steam/steam_api.json index 087b6eb..8157040 100644 --- a/public/steam/steam_api.json +++ b/public/steam/steam_api.json @@ -1547,6 +1547,16 @@ ], "struct": "SteamRemotePlayTogetherGuestInvite_t" }, + { + "callback_id": 5704, + "fields": [ + { "fieldname":"m_unSessionID", "fieldtype":"RemotePlaySessionID_t" }, + { "fieldname":"m_iImage", "fieldtype":"int" }, + { "fieldname":"m_iWide", "fieldtype":"int" }, + { "fieldname":"m_iTall", "fieldtype":"int" } + ], + "struct": "SteamRemotePlaySessionAvatarLoaded_t" + }, { "callback_id": 1251, "fields": [ @@ -4049,7 +4059,8 @@ { "name":"k_EFeatureSiteLicense", "value":"13" }, { "name":"k_EFeatureKioskMode_Deprecated", "value":"14" }, { "name":"k_EFeatureBlockAlways", "value":"15" }, - { "name":"k_EFeatureMax", "value":"16" } + { "name":"k_EFeatureDesktop", "value":"16" }, + { "name":"k_EFeatureMax", "value":"17" } ] }, { @@ -4407,6 +4418,7 @@ { "name":"k_ESteamNetworkingConfig_LogLevel_P2PRendezvous", "value":"17" }, { "name":"k_ESteamNetworkingConfig_LogLevel_SDRRelayPings", "value":"18" }, { "name":"k_ESteamNetworkingConfig_ECN", "value":"999" }, + { "name":"k_ESteamNetworkingConfig_SDRClient_EnableTOSProbes", "value":"998" }, { "name":"k_ESteamNetworkingConfig_DELETED_EnumerateDevVars", "value":"35" }, { "name":"k_ESteamNetworkingConfigValue__Force32Bit", "value":"2147483647" } ] @@ -7882,7 +7894,7 @@ { "kind": "user", "name": "SteamApps", - "name_flat": "SteamAPI_SteamApps_v008" + "name_flat": "SteamAPI_SteamApps_v009" } ], "classname": "ISteamApps", @@ -8138,7 +8150,8 @@ { "paramname":"pchBetaName", "paramtype":"char *" }, { "paramname":"cchBetaName", "paramtype":"int" }, { "paramname":"pchDescription", "paramtype":"char *" }, - { "paramname":"cchDescription", "paramtype":"int" } + { "paramname":"cchDescription", "paramtype":"int" }, + { "paramname":"punLastUpdated", "paramtype":"uint32 *" } ], "returntype": "bool" }, @@ -8151,7 +8164,7 @@ "returntype": "bool" } ], - "version_string": "STEAMAPPS_INTERFACE_VERSION008" + "version_string": "STEAMAPPS_INTERFACE_VERSION009" }, { "accessors": [ @@ -10577,6 +10590,29 @@ { "paramname":"unNumPublishedFileIDs", "paramtype":"uint32" } ], "returntype": "bool" + }, + { + "methodname": "MarkDownloadedItemAsUnused", + "methodname_flat": "SteamAPI_ISteamUGC_MarkDownloadedItemAsUnused", + "params": [ + { "paramname":"nPublishedFileID", "paramtype":"PublishedFileId_t" } + ], + "returntype": "bool" + }, + { + "methodname": "GetNumDownloadedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetNumDownloadedItems", + "params": [], + "returntype": "uint32" + }, + { + "methodname": "GetDownloadedItems", + "methodname_flat": "SteamAPI_ISteamUGC_GetDownloadedItems", + "params": [ + { "paramname":"pvecPublishedFileIDs", "paramtype":"PublishedFileId_t *" }, + { "paramname":"cMaxEntries", "paramtype":"uint32" } + ], + "returntype": "uint32" } ], "version_string": "STEAMUGC_INTERFACE_VERSION021" @@ -11795,7 +11831,7 @@ { "kind": "user", "name": "SteamRemotePlay", - "name_flat": "SteamAPI_SteamRemotePlay_v003" + "name_flat": "SteamAPI_SteamRemotePlay_v004" } ], "classname": "ISteamRemotePlay", @@ -11815,6 +11851,14 @@ ], "returntype": "RemotePlaySessionID_t" }, + { + "methodname": "BSessionRemotePlayTogether", + "methodname_flat": "SteamAPI_ISteamRemotePlay_BSessionRemotePlayTogether", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "bool" + }, { "methodname": "GetSessionSteamID", "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionSteamID", @@ -11824,6 +11868,38 @@ "returntype": "CSteamID", "returntype_flat": "uint64_steamid" }, + { + "methodname": "GetSessionGuestID", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionGuestID", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "uint32" + }, + { + "methodname": "GetSmallSessionAvatar", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSmallSessionAvatar", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetMediumSessionAvatar", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetMediumSessionAvatar", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "int" + }, + { + "methodname": "GetLargeSessionAvatar", + "methodname_flat": "SteamAPI_ISteamRemotePlay_GetLargeSessionAvatar", + "params": [ + { "paramname":"unSessionID", "paramtype":"RemotePlaySessionID_t" } + ], + "returntype": "int" + }, { "methodname": "GetSessionClientName", "methodname_flat": "SteamAPI_ISteamRemotePlay_GetSessionClientName", @@ -11927,7 +12003,7 @@ "returntype": "void" } ], - "version_string": "STEAMREMOTEPLAY_INTERFACE_VERSION003" + "version_string": "STEAMREMOTEPLAY_INTERFACE_VERSION004" }, { "accessors": [ @@ -14008,7 +14084,8 @@ { "fieldname":"m_cbPendingReliable", "fieldtype":"int" }, { "fieldname":"m_cbSentUnackedReliable", "fieldtype":"int" }, { "fieldname":"m_usecQueueTime", "fieldtype":"SteamNetworkingMicroseconds" }, - { "fieldname":"reserved", "fieldtype":"uint32 [16]" } + { "fieldname":"m_usecMaxJitter", "fieldtype":"int32" }, + { "fieldname":"reserved", "fieldtype":"uint32 [15]" } ], "struct": "SteamNetConnectionRealTimeStatus_t" }, diff --git a/public/steam/steam_api_flat.h b/public/steam/steam_api_flat.h index 4f3f1aa..58ddbd9 100644 --- a/public/steam/steam_api_flat.h +++ b/public/steam/steam_api_flat.h @@ -453,9 +453,9 @@ S_API bool SteamAPI_ISteamUserStats_GetAchievementProgressLimitsFloat( ISteamUse // ISteamApps // A versioned accessor is exported by the library -S_API ISteamApps *SteamAPI_SteamApps_v008(); +S_API ISteamApps *SteamAPI_SteamApps_v009(); // Inline, unversioned accessor to get the current version. Essentially the same as SteamApps(), but using this ensures that you are using a matching library. -inline ISteamApps *SteamAPI_SteamApps() { return SteamAPI_SteamApps_v008(); } +inline ISteamApps *SteamAPI_SteamApps() { return SteamAPI_SteamApps_v009(); } S_API bool SteamAPI_ISteamApps_BIsSubscribed( ISteamApps* self ); S_API bool SteamAPI_ISteamApps_BIsLowViolence( ISteamApps* self ); S_API bool SteamAPI_ISteamApps_BIsCybercafe( ISteamApps* self ); @@ -487,7 +487,7 @@ S_API bool SteamAPI_ISteamApps_BIsSubscribedFromFamilySharing( ISteamApps* self S_API bool SteamAPI_ISteamApps_BIsTimedTrial( ISteamApps* self, uint32 * punSecondsAllowed, uint32 * punSecondsPlayed ); S_API bool SteamAPI_ISteamApps_SetDlcContext( ISteamApps* self, AppId_t nAppID ); S_API int SteamAPI_ISteamApps_GetNumBetas( ISteamApps* self, int * pnAvailable, int * pnPrivate ); -S_API bool SteamAPI_ISteamApps_GetBetaInfo( ISteamApps* self, int iBetaIndex, uint32 * punFlags, uint32 * punBuildID, char * pchBetaName, int cchBetaName, char * pchDescription, int cchDescription ); +S_API bool SteamAPI_ISteamApps_GetBetaInfo( ISteamApps* self, int iBetaIndex, uint32 * punFlags, uint32 * punBuildID, char * pchBetaName, int cchBetaName, char * pchDescription, int cchDescription, uint32 * punLastUpdated ); S_API bool SteamAPI_ISteamApps_SetActiveBeta( ISteamApps* self, const char * pchBetaName ); // ISteamNetworking @@ -796,6 +796,9 @@ S_API SteamAPICall_t SteamAPI_ISteamUGC_GetWorkshopEULAStatus( ISteamUGC* self ) S_API uint32 SteamAPI_ISteamUGC_GetUserContentDescriptorPreferences( ISteamUGC* self, EUGCContentDescriptorID * pvecDescriptors, uint32 cMaxEntries ); S_API bool SteamAPI_ISteamUGC_SetItemsDisabledLocally( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileIDs, uint32 unNumPublishedFileIDs, bool bDisabledLocally ); S_API bool SteamAPI_ISteamUGC_SetSubscriptionsLoadOrder( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileIDs, uint32 unNumPublishedFileIDs ); +S_API bool SteamAPI_ISteamUGC_MarkDownloadedItemAsUnused( ISteamUGC* self, PublishedFileId_t nPublishedFileID ); +S_API uint32 SteamAPI_ISteamUGC_GetNumDownloadedItems( ISteamUGC* self ); +S_API uint32 SteamAPI_ISteamUGC_GetDownloadedItems( ISteamUGC* self, PublishedFileId_t * pvecPublishedFileIDs, uint32 cMaxEntries ); // ISteamHTMLSurface @@ -943,12 +946,17 @@ S_API bool SteamAPI_ISteamParentalSettings_BIsFeatureInBlockList( ISteamParental // ISteamRemotePlay // A versioned accessor is exported by the library -S_API ISteamRemotePlay *SteamAPI_SteamRemotePlay_v003(); +S_API ISteamRemotePlay *SteamAPI_SteamRemotePlay_v004(); // Inline, unversioned accessor to get the current version. Essentially the same as SteamRemotePlay(), but using this ensures that you are using a matching library. -inline ISteamRemotePlay *SteamAPI_SteamRemotePlay() { return SteamAPI_SteamRemotePlay_v003(); } +inline ISteamRemotePlay *SteamAPI_SteamRemotePlay() { return SteamAPI_SteamRemotePlay_v004(); } S_API uint32 SteamAPI_ISteamRemotePlay_GetSessionCount( ISteamRemotePlay* self ); S_API RemotePlaySessionID_t SteamAPI_ISteamRemotePlay_GetSessionID( ISteamRemotePlay* self, int iSessionIndex ); +S_API bool SteamAPI_ISteamRemotePlay_BSessionRemotePlayTogether( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); S_API uint64_steamid SteamAPI_ISteamRemotePlay_GetSessionSteamID( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API uint32 SteamAPI_ISteamRemotePlay_GetSessionGuestID( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API int SteamAPI_ISteamRemotePlay_GetSmallSessionAvatar( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API int SteamAPI_ISteamRemotePlay_GetMediumSessionAvatar( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); +S_API int SteamAPI_ISteamRemotePlay_GetLargeSessionAvatar( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); S_API const char * SteamAPI_ISteamRemotePlay_GetSessionClientName( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); S_API ESteamDeviceFormFactor SteamAPI_ISteamRemotePlay_GetSessionClientFormFactor( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID ); S_API bool SteamAPI_ISteamRemotePlay_BGetSessionClientResolution( ISteamRemotePlay* self, RemotePlaySessionID_t unSessionID, int * pnResolutionX, int * pnResolutionY ); diff --git a/public/steam/steamnetworkingtypes.h b/public/steam/steamnetworkingtypes.h index 66f3ba0..02fc6be 100644 --- a/public/steam/steamnetworkingtypes.h +++ b/public/steam/steamnetworkingtypes.h @@ -797,8 +797,17 @@ struct SteamNetConnectionRealTimeStatus_t /// Nagle delay is ignored for the purposes of this calculation. SteamNetworkingMicroseconds m_usecQueueTime; + /// Highest packet jitter experienced, since the last time this information + /// was returned. (The high water mark is cleared each time you fetch the info.) + /// + /// - The units are microseconds, although the measurement precision is usually + /// not nearly this precise. + /// - A negative value means "no data available". + /// - Not all connections are able to measure jitter. + int32 m_usecMaxJitter; + // Internal stuff, room to change API easily - uint32 reserved[16]; + uint32 reserved[15]; }; /// Quick status of a particular lane @@ -1688,12 +1697,24 @@ enum ESteamNetworkingConfigValue k_ESteamNetworkingConfig_LogLevel_P2PRendezvous = 17, // [connection int32] P2P rendezvous messages k_ESteamNetworkingConfig_LogLevel_SDRRelayPings = 18, // [global int32] Ping relays - // Experimental. Set the ECN header field on all outbound UDP packets - // -1 = the default, and means "don't set anything". - // 0..3 = set that value. (Even though 0 is the default UDP ECN value, a 0 here means "explicitly set a 0".) +// +// Experimental values. These are subject to be deleted or change at any time, +// do not set them, except as a result of an explicit and advanced user opt-in, +// and do not write anything that depends on them existing, or have any particular +// behaviour. +// + // [global int32] ECN value to send in every packet. + // -1 = The default, and means "auto". We will set ECN=1, if it appears that the local internet connection appears to understand it and there may be some benefit. + // 0..2 = use that value. k_ESteamNetworkingConfig_ECN = 999, - // Deleted, do not use + // [global int32] If true, send and request different TOS values in probes to relays + // to try to deduce if there is any bleaching or mutating of the TOS field in either direction + k_ESteamNetworkingConfig_SDRClient_EnableTOSProbes = 998, + +// +// Deleted, do not use +// k_ESteamNetworkingConfig_DELETED_EnumerateDevVars = 35, k_ESteamNetworkingConfigValue__Force32Bit = 0x7fffffff diff --git a/public/steam/steamtypes.h b/public/steam/steamtypes.h index b3b3438..1de4df8 100644 --- a/public/steam/steamtypes.h +++ b/public/steam/steamtypes.h @@ -86,7 +86,7 @@ typedef uint32 DepotId_t; const DepotId_t k_uDepotIdInvalid = 0x0; // RTime32. Seconds elapsed since Jan 1 1970, i.e. unix timestamp. -// It's the same as time_t, but it is always 32-bit and unsigned. +// It's the same as time_t, but it is always 32-bit and unsigned. typedef uint32 RTime32; // handle to a Steam API call diff --git a/redistributable_bin/androidarm64/libsteam_api.so b/redistributable_bin/androidarm64/libsteam_api.so index bbe5f50..4c0bd94 100644 Binary files a/redistributable_bin/androidarm64/libsteam_api.so and b/redistributable_bin/androidarm64/libsteam_api.so differ diff --git a/redistributable_bin/linux32/libsteam_api.so b/redistributable_bin/linux32/libsteam_api.so index 818c65f..cd2df7a 100644 Binary files a/redistributable_bin/linux32/libsteam_api.so and b/redistributable_bin/linux32/libsteam_api.so differ diff --git a/redistributable_bin/linux64/libsteam_api.so b/redistributable_bin/linux64/libsteam_api.so index ce21a66..9a16ad9 100644 Binary files a/redistributable_bin/linux64/libsteam_api.so and b/redistributable_bin/linux64/libsteam_api.so differ diff --git a/redistributable_bin/linuxarm64/libsteam_api.so b/redistributable_bin/linuxarm64/libsteam_api.so index 8a874d3..da30b41 100644 Binary files a/redistributable_bin/linuxarm64/libsteam_api.so and b/redistributable_bin/linuxarm64/libsteam_api.so differ diff --git a/redistributable_bin/osx/libsteam_api.dylib b/redistributable_bin/osx/libsteam_api.dylib index 0ad8ffc..3e1a940 100644 Binary files a/redistributable_bin/osx/libsteam_api.dylib and b/redistributable_bin/osx/libsteam_api.dylib differ diff --git a/redistributable_bin/steam_api.dll b/redistributable_bin/steam_api.dll index b7ae797..5869b19 100644 Binary files a/redistributable_bin/steam_api.dll and b/redistributable_bin/steam_api.dll differ diff --git a/redistributable_bin/steam_api.lib b/redistributable_bin/steam_api.lib index 45bac3e..133e1e5 100644 Binary files a/redistributable_bin/steam_api.lib and b/redistributable_bin/steam_api.lib differ diff --git a/redistributable_bin/win64/steam_api64.dll b/redistributable_bin/win64/steam_api64.dll index f0a4154..43e7291 100644 Binary files a/redistributable_bin/win64/steam_api64.dll and b/redistributable_bin/win64/steam_api64.dll differ diff --git a/redistributable_bin/win64/steam_api64.lib b/redistributable_bin/win64/steam_api64.lib index b7692a4..a6cdb0c 100644 Binary files a/redistributable_bin/win64/steam_api64.lib and b/redistributable_bin/win64/steam_api64.lib differ diff --git a/tools/ContentBuilder/builder/steamcmd.exe b/tools/ContentBuilder/builder/steamcmd.exe index eab93fb..788bdfe 100644 Binary files a/tools/ContentBuilder/builder/steamcmd.exe and b/tools/ContentBuilder/builder/steamcmd.exe differ