diff --git a/Readme.txt b/Readme.txt index 1a5c49a..5bfd87a 100644 --- a/Readme.txt +++ b/Readme.txt @@ -8,6 +8,29 @@ Copyright Welcome to the Steamworks SDK. For documentation please see our partner website at: http://partner.steamgames.com +---------------------------------------------------------------- +v1.45 25th June 2019 +---------------------------------------------------------------- + +Steam Input and Steam Controller Interfaces +* Added the GetDeviceBindingRevision function which allows developers of Steam Input API games to detect out of date user configurations. Configurations w/ out of date major revisions should be automatically updated by Steam to the latest official configuration, but configurations w/ out of date minor revisions will be left in-place. + +ISteamUser +* Add duration control APIs to support anti-indulgence regulations in some territories. This includes callbacks when gameplay time thresholds have been passed, and an API to fetch the same data on the fly. + +ISteamUtils +* Add basic text filtering API. + +---------------------------------------------------------------- +v1.44 13th March 2019 +---------------------------------------------------------------- + +ISteamNetworkingSockets +* Socket-style API that relays traffic on the Valve network + +ISteamNetworkingUtils +* Tools for instantly estimating ping time between two network hosts + ---------------------------------------------------------------- v1.43 20th February 2019 ---------------------------------------------------------------- diff --git a/SteamworksExample/Lobby.cpp b/SteamworksExample/Lobby.cpp index f67fd60..0b8b53b 100644 --- a/SteamworksExample/Lobby.cpp +++ b/SteamworksExample/Lobby.cpp @@ -27,7 +27,8 @@ public: if ( !steamIDLobby.IsValid() ) { - PopSelectedItem(); + LobbyMenuItem_t menuItem = { CSteamID(), LobbyMenuItem_t::k_ELobbyMenuItemLeaveLobby }; + AddMenuItem( CLobbyMenu::MenuItem_t( "Lobby Disconnected - Return to main menu", menuItem ) ); return; } @@ -182,6 +183,17 @@ void CLobby::OnLobbyChatUpdate( LobbyChatUpdate_t *pCallback ) if ( m_steamIDLobby != pCallback->m_ulSteamIDLobby ) return; + if ( pCallback->m_ulSteamIDUserChanged == SteamUser()->GetSteamID().ConvertToUint64() && + ( pCallback->m_rgfChatMemberStateChange & + ( k_EChatMemberStateChangeLeft| + k_EChatMemberStateChangeDisconnected| + k_EChatMemberStateChangeKicked| + k_EChatMemberStateChangeBanned ) ) ) + { + // we've left the lobby, so it is now invalid + m_steamIDLobby = CSteamID(); + } + // rebuild the menu m_pMenu->Rebuild( m_steamIDLobby ); diff --git a/SteamworksExample/Ship.cpp b/SteamworksExample/Ship.cpp index 5c6c290..e853a37 100644 --- a/SteamworksExample/Ship.cpp +++ b/SteamworksExample/Ship.cpp @@ -764,10 +764,10 @@ void CShip::Render() float rotationClockwise = (m_pGameEngine->GetGameTickCount() / 500.0f); float rotationCounter = -(m_pGameEngine->GetGameTickCount() / 500.0f); - float x1 = 28.0f * cos( rotationClockwise ); - float y1 = 28.0f * sin( rotationClockwise ); - float x2 = 28.0f * cos( rotationCounter ); - float y2 = 28.0f * sin( rotationCounter ); + float x1 = 28.0f * (float)cos( rotationClockwise ); + float y1 = 28.0f * (float)sin( rotationClockwise ); + float x2 = 28.0f * (float)cos( rotationCounter ); + float y2 = 28.0f * (float)sin( rotationCounter ); m_pGameEngine->BDrawTexturedQuad( this->GetXPos() - x1, this->GetYPos() - y1, this->GetXPos() + y1, this->GetYPos() - x1, diff --git a/SteamworksExample/SpaceWarServer.cpp b/SteamworksExample/SpaceWarServer.cpp index 0a275e1..094fb87 100644 --- a/SteamworksExample/SpaceWarServer.cpp +++ b/SteamworksExample/SpaceWarServer.cpp @@ -375,7 +375,7 @@ void CSpaceWarServer::AddPlayerShip( uint32 uShipPosition ) float flXOffset = flWidth*0.12f; float flYOffset = flHeight*0.12f; - float flAngle = atan( flHeight/flWidth ) + PI_VALUE/2.0f; + float flAngle = (float)atan( flHeight/flWidth ) + PI_VALUE/2.0f; switch( uShipPosition ) { case 0: diff --git a/SteamworksExample/SpaceWarServer.h b/SteamworksExample/SpaceWarServer.h index 38d0503..09762a9 100644 --- a/SteamworksExample/SpaceWarServer.h +++ b/SteamworksExample/SpaceWarServer.h @@ -8,6 +8,8 @@ #ifndef SPACEWARSERVER_H #define SPACEWARSERVER_H +#include + #include "GameEngine.h" #include "SpaceWar.h" #include "Ship.h" diff --git a/SteamworksExample/VectorEntity.cpp b/SteamworksExample/VectorEntity.cpp index 4738079..0351f0d 100644 --- a/SteamworksExample/VectorEntity.cpp +++ b/SteamworksExample/VectorEntity.cpp @@ -134,7 +134,7 @@ void CVectorEntity::RunFrame() // Make sure velocity does not exceed maximum allowed - float flVelocity = sqrt( m_flXVelocity*m_flXVelocity + m_flYVelocity*m_flYVelocity ); + float flVelocity = (float)sqrt( m_flXVelocity*m_flXVelocity + m_flYVelocity*m_flYVelocity ); if ( flVelocity > m_flMaximumVelocity ) { diff --git a/glmgr/glmgrcocoa.mm b/glmgr/glmgrcocoa.mm index 72ec1d7..4ba65db 100644 --- a/glmgr/glmgrcocoa.mm +++ b/glmgr/glmgrcocoa.mm @@ -962,7 +962,12 @@ void GLMDisplayDB::PopulateRenderers( void ) SInt32 vMajor = 0; SInt32 vMinor = 0; SInt32 vMinorMinor = 0; -#if __MAC_OS_X_VERSION_MIN_REQUIRED < __MAC_10_10 +#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_9 + NSOperatingSystemVersion osVersion = [[NSProcessInfo processInfo] operatingSystemVersion]; + vMajor = osVersion.majorVersion; + vMinor = osVersion.minorVersion; + vMinorMinor = osVersion.patchVersion; +#else OSStatus gestalt_err = 0; gestalt_err = Gestalt(gestaltSystemVersionMajor, &vMajor); Assert(!gestalt_err); @@ -972,11 +977,6 @@ void GLMDisplayDB::PopulateRenderers( void ) gestalt_err = Gestalt(gestaltSystemVersionBugFix, &vMinorMinor); Assert(!gestalt_err); -#else - NSOperatingSystemVersion osVersion = [[NSProcessInfo processInfo] operatingSystemVersion]; - vMajor = osVersion.majorVersion; - vMinor = osVersion.minorVersion; - vMinorMinor = osVersion.patchVersion; #endif //encode into one quantity - 10.6.3 becomes 0x000A0603 fields.m_osComboVersion = (vMajor << 16) | (vMinor << 8) | (vMinorMinor); diff --git a/public/steam/isteamcontroller.h b/public/steam/isteamcontroller.h index 1b1ed78..0ff9c00 100644 --- a/public/steam/isteamcontroller.h +++ b/public/steam/isteamcontroller.h @@ -27,6 +27,8 @@ #define STEAM_CONTROLLER_MAX_ORIGINS 8 +#define STEAM_CONTROLLER_MAX_ACTIVE_LAYERS 16 + // When sending an option to a specific controller handle, you can send to all controllers via this command #define STEAM_CONTROLLER_HANDLE_ALL_CONTROLLERS UINT64_MAX @@ -345,6 +347,12 @@ enum EControllerActionOrigin k_EControllerActionOrigin_Switch_RightGrip_Lower, // Right JoyCon SL Button k_EControllerActionOrigin_Switch_RightGrip_Upper, // Right JoyCon SR Button + // Added in SDK 1.45 + k_EControllerActionOrigin_PS4_DPad_Move, + k_EControllerActionOrigin_XBoxOne_DPad_Move, + k_EControllerActionOrigin_XBox360_DPad_Move, + k_EControllerActionOrigin_Switch_DPad_Move, + k_EControllerActionOrigin_Count, // If Steam has added support for new controllers origins will go here. k_EControllerActionOrigin_MaximumPossibleValue = 32767, // Origins are currently a maximum of 16 bits. }; @@ -489,7 +497,7 @@ public: // Enumerate currently connected controllers // handlesOut should point to a STEAM_CONTROLLER_MAX_COUNT sized array of ControllerHandle_t handles // Returns the number of handles written to handlesOut - virtual int GetConnectedControllers( ControllerHandle_t *handlesOut ) = 0; + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_COUNT, Receives list of connected controllers ) ControllerHandle_t *handlesOut ) = 0; //----------------------------------------------------------------------------- // ACTION SETS @@ -508,7 +516,10 @@ public: virtual void ActivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; virtual void DeactivateActionSetLayer( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetLayerHandle ) = 0; virtual void DeactivateAllActionSetLayers( ControllerHandle_t controllerHandle ) = 0; - virtual int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t *handlesOut ) = 0; + // Enumerate currently active layers + // handlesOut should point to a STEAM_CONTROLLER_MAX_ACTIVE_LAYERS sized array of ControllerActionSetHandle_t handles. + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( ControllerHandle_t controllerHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ACTIVE_LAYERS, Receives list of active layers ) ControllerActionSetHandle_t *handlesOut ) = 0; //----------------------------------------------------------------------------- // ACTIONS @@ -523,7 +534,7 @@ public: // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. - virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, EControllerActionOrigin *originsOut ) = 0; + virtual int GetDigitalActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of aciton origins ) EControllerActionOrigin *originsOut ) = 0; // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. virtual ControllerAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; @@ -534,7 +545,7 @@ public: // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. // originsOut should point to a STEAM_CONTROLLER_MAX_ORIGINS sized array of EControllerActionOrigin handles. The EControllerActionOrigin enum will get extended as support for new controller controllers gets added to // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. - virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, EControllerActionOrigin *originsOut ) = 0; + virtual int GetAnalogActionOrigins( ControllerHandle_t controllerHandle, ControllerActionSetHandle_t actionSetHandle, ControllerAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_CONTROLLER_MAX_ORIGINS, Receives list of action origins ) EControllerActionOrigin *originsOut ) = 0; // Get a local path to art for on-screen glyph for a particular origin - this call is cheap virtual const char *GetGlyphForActionOrigin( EControllerActionOrigin eOrigin ) = 0; @@ -582,10 +593,10 @@ public: // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index virtual int GetGamepadIndexForController( ControllerHandle_t ulControllerHandle ) = 0; - // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. This function is cheap. + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; - // Get a local path to art for on-screen glyph for a particular Xbox controller origin. This function is serialized. + // Get a local path to art for on-screen glyph for a particular Xbox controller origin. virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for @@ -594,6 +605,9 @@ public: // Convert an origin to another controller type - for inputs not present on the other controller type this will return k_EControllerActionOrigin_None virtual EControllerActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetControllerBindingRevision( ControllerHandle_t controllerHandle, int *pMajor, int *pMinor ) = 0; }; #define STEAMCONTROLLER_INTERFACE_VERSION "SteamController007" diff --git a/public/steam/isteaminput.h b/public/steam/isteaminput.h index dfd3980..1d30672 100644 --- a/public/steam/isteaminput.h +++ b/public/steam/isteaminput.h @@ -23,6 +23,8 @@ #define STEAM_INPUT_MAX_ORIGINS 8 +#define STEAM_INPUT_MAX_ACTIVE_LAYERS 16 + // When sending an option to a specific controller handle, you can send to all devices via this command #define STEAM_INPUT_HANDLE_ALL_CONTROLLERS UINT64_MAX @@ -184,7 +186,7 @@ enum EInputActionOrigin k_EInputActionOrigin_PS4_Gyro_Pitch, k_EInputActionOrigin_PS4_Gyro_Yaw, k_EInputActionOrigin_PS4_Gyro_Roll, - k_EInputActionOrigin_PS4_Reserved0, + k_EInputActionOrigin_PS4_DPad_Move, k_EInputActionOrigin_PS4_Reserved1, k_EInputActionOrigin_PS4_Reserved2, k_EInputActionOrigin_PS4_Reserved3, @@ -225,7 +227,7 @@ enum EInputActionOrigin k_EInputActionOrigin_XBoxOne_DPad_South, k_EInputActionOrigin_XBoxOne_DPad_West, k_EInputActionOrigin_XBoxOne_DPad_East, - k_EInputActionOrigin_XBoxOne_Reserved0, + k_EInputActionOrigin_XBoxOne_DPad_Move, k_EInputActionOrigin_XBoxOne_Reserved1, k_EInputActionOrigin_XBoxOne_Reserved2, k_EInputActionOrigin_XBoxOne_Reserved3, @@ -266,7 +268,7 @@ enum EInputActionOrigin k_EInputActionOrigin_XBox360_DPad_South, k_EInputActionOrigin_XBox360_DPad_West, k_EInputActionOrigin_XBox360_DPad_East, - k_EInputActionOrigin_XBox360_Reserved0, + k_EInputActionOrigin_XBox360_DPad_Move, k_EInputActionOrigin_XBox360_Reserved1, k_EInputActionOrigin_XBox360_Reserved2, k_EInputActionOrigin_XBox360_Reserved3, @@ -314,7 +316,7 @@ enum EInputActionOrigin k_EInputActionOrigin_Switch_ProGyro_Pitch, // Primary Gyro in Pro Controller, or Right JoyCon k_EInputActionOrigin_Switch_ProGyro_Yaw, // Primary Gyro in Pro Controller, or Right JoyCon k_EInputActionOrigin_Switch_ProGyro_Roll, // Primary Gyro in Pro Controller, or Right JoyCon - k_EInputActionOrigin_Switch_Reserved0, + k_EInputActionOrigin_Switch_DPad_Move, k_EInputActionOrigin_Switch_Reserved1, k_EInputActionOrigin_Switch_Reserved2, k_EInputActionOrigin_Switch_Reserved3, @@ -498,7 +500,7 @@ public: // the Steam Input settings in the Steamworks site or users can opt-in in their controller settings in Steam. // handlesOut should point to a STEAM_INPUT_MAX_COUNT sized array of InputHandle_t handles // Returns the number of handles written to handlesOut - virtual int GetConnectedControllers( InputHandle_t *handlesOut ) = 0; + virtual int GetConnectedControllers( STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_COUNT, Receives list of connected controllers ) InputHandle_t *handlesOut ) = 0; //----------------------------------------------------------------------------- // ACTION SETS @@ -517,7 +519,10 @@ public: virtual void ActivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; virtual void DeactivateActionSetLayer( InputHandle_t inputHandle, InputActionSetHandle_t actionSetLayerHandle ) = 0; virtual void DeactivateAllActionSetLayers( InputHandle_t inputHandle ) = 0; - virtual int GetActiveActionSetLayers( InputHandle_t inputHandle, InputActionSetHandle_t *handlesOut ) = 0; + // Enumerate currently active layers. + // handlesOut should point to a STEAM_INPUT_MAX_ACTIVE_LAYERS sized array of ControllerActionSetHandle_t handles + // Returns the number of handles written to handlesOut + virtual int GetActiveActionSetLayers( InputHandle_t inputHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ACTIVE_LAYERS, Receives list of active layers ) InputActionSetHandle_t *handlesOut ) = 0; //----------------------------------------------------------------------------- // ACTIONS @@ -532,7 +537,7 @@ public: // Get the origin(s) for a digital action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. - virtual int GetDigitalActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, EInputActionOrigin *originsOut ) = 0; + virtual int GetDigitalActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputDigitalActionHandle_t digitalActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; // Lookup the handle for an analog action. Best to do this once on startup, and store the handles for all future API calls. virtual InputAnalogActionHandle_t GetAnalogActionHandle( const char *pszActionName ) = 0; @@ -543,12 +548,12 @@ public: // Get the origin(s) for an analog action within an action set. Returns the number of origins supplied in originsOut. Use this to display the appropriate on-screen prompt for the action. // originsOut should point to a STEAM_INPUT_MAX_ORIGINS sized array of EInputActionOrigin handles. The EInputActionOrigin enum will get extended as support for new controller controllers gets added to // the Steam client and will exceed the values from this header, please check bounds if you are using a look up table. - virtual int GetAnalogActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, EInputActionOrigin *originsOut ) = 0; + virtual int GetAnalogActionOrigins( InputHandle_t inputHandle, InputActionSetHandle_t actionSetHandle, InputAnalogActionHandle_t analogActionHandle, STEAM_OUT_ARRAY_COUNT( STEAM_INPUT_MAX_ORIGINS, Receives list of action origins ) EInputActionOrigin *originsOut ) = 0; - // Get a local path to art for on-screen glyph for a particular origin - this call is cheap + // Get a local path to art for on-screen glyph for a particular origin virtual const char *GetGlyphForActionOrigin( EInputActionOrigin eOrigin ) = 0; - // Returns a localized string (from Steam's language setting) for the specified origin - this call is serialized + // Returns a localized string (from Steam's language setting) for the specified origin. virtual const char *GetStringForActionOrigin( EInputActionOrigin eOrigin ) = 0; // Stop analog momentum for the action if it is a mouse action in trackball mode @@ -594,10 +599,10 @@ public: // Returns the associated gamepad index for the specified controller, if emulating a gamepad or -1 if not associated with an Xinput index virtual int GetGamepadIndexForController( InputHandle_t ulinputHandle ) = 0; - // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. This function is cheap. + // Returns a localized string (from Steam's language setting) for the specified Xbox controller origin. virtual const char *GetStringForXboxOrigin( EXboxOrigin eOrigin ) = 0; - // Get a local path to art for on-screen glyph for a particular Xbox controller origin. This function is serialized. + // Get a local path to art for on-screen glyph for a particular Xbox controller origin virtual const char *GetGlyphForXboxOrigin( EXboxOrigin eOrigin ) = 0; // Get the equivalent ActionOrigin for a given Xbox controller origin this can be chained with GetGlyphForActionOrigin to provide future proof glyphs for @@ -608,6 +613,9 @@ public: // When a new input type is added you will be able to pass in k_ESteamInputType_Unknown amd the closest origin that your version of the SDK regonized will be returned // ex: if a Playstation 5 controller was released this function would return Playstation 4 origins. virtual EInputActionOrigin TranslateActionOrigin( ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin ) = 0; + + // Get the binding revision for a given device. Returns false if the handle was not valid or if a mapping is not yet loaded for the device + virtual bool GetDeviceBindingRevision( InputHandle_t inputHandle, int *pMajor, int *pMinor ) = 0; }; #define STEAMINPUT_INTERFACE_VERSION "SteamInput001" diff --git a/public/steam/isteammatchmaking.h b/public/steam/isteammatchmaking.h index d0c0cea..248fc5f 100644 --- a/public/steam/isteammatchmaking.h +++ b/public/steam/isteammatchmaking.h @@ -23,6 +23,8 @@ enum ELobbyType k_ELobbyTypeInvisible = 3, // returned by search, but not visible to other friends // useful if you want a user in two lobbies, for example matching groups together // a user can be in only one regular lobby, and up to two invisible lobbies + k_ELobbyTypePrivateUnique = 4, // private, unique and does not delete when empty - only one of these may exist per unique keypair set + // can only create from webapi }; // lobby search filter tools diff --git a/public/steam/isteamnetworkingsockets.h b/public/steam/isteamnetworkingsockets.h index e12e5e7..3513665 100644 --- a/public/steam/isteamnetworkingsockets.h +++ b/public/steam/isteamnetworkingsockets.h @@ -21,6 +21,7 @@ #include "steamnetworkingtypes.h" class ISteamNetworkingSocketsCallbacks; +struct SteamNetAuthenticationStatus_t; //----------------------------------------------------------------------------- /// Lower level networking interface that more closely mirrors the standard @@ -84,7 +85,7 @@ public: /// be able to connect to one or the other, then nVirtualPort should be a small integer (<1000) /// unique to each listen socket you create. /// - /// If you use this, you probably want to call ISteamNetworkingUtils::InitializeRelayNetworkAccess() + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() /// when your app initializes virtual HSteamListenSocket CreateListenSocketP2P( int nVirtualPort ) = 0; @@ -97,7 +98,7 @@ public: /// client is online and facilitate a relay connection. Note that all P2P connections on /// Steam are currently relayed. /// - /// If you use this, you probably want to call ISteamNetworkingUtils::InitializeRelayNetworkAccess() + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() /// when your app initializes virtual HSteamNetConnection ConnectP2P( const SteamNetworkingIdentity &identityRemote, int nVirtualPort ) = 0; #endif @@ -312,6 +313,57 @@ public: /// even if they are not signed into Steam.) virtual bool GetIdentity( SteamNetworkingIdentity *pIdentity ) = 0; + /// Indicate our desire to be ready participate in authenticated communications. + /// If we are currently not ready, then steps will be taken to obtain the necessary + /// certificates. (This includes a certificate for us, as well as any CA certificates + /// needed to authenticate peers.) + /// + /// You can call this at program init time if you know that you are going to + /// be making authenticated connections, so that we will be ready immediately when + /// those connections are attempted. (Note that essentially all connections require + /// authentication, with the exception of ordinary UDP connections with authentication + /// disabled using k_ESteamNetworkingConfig_IP_AllowWithoutAuth.) If you don't call + /// this function, we will wait until a feature is utilized that that necessitates + /// these resources. + /// + /// You can also call this function to force a retry, if failure has occurred. + /// Once we make an attempt and fail, we will not automatically retry. + /// In this respect, the behavior of the system after trying and failing is the same + /// as before the first attempt: attempting authenticated communication or calling + /// this function will call the system to attempt to acquire the necessary resources. + /// + /// You can use GetAuthenticationStatus or listen for SteamNetAuthenticationStatus_t + /// to monitor the status. + /// + /// Returns the current value that would be returned from GetAuthenticationStatus. + virtual ESteamNetworkingAvailability InitAuthentication() = 0; + + /// Query our readiness to participate in authenticated communications. A + /// SteamNetAuthenticationStatus_t callback is posted any time this status changes, + /// but you can use this function to query it at any time. + /// + /// The value of SteamNetAuthenticationStatus_t::m_eAvail is returned. If you only + /// want this high level status, you can pass NULL for pDetails. If you want further + /// details, pass non-NULL to receive them. + virtual ESteamNetworkingAvailability GetAuthenticationStatus( SteamNetAuthenticationStatus_t *pDetails ) = 0; + +/// Certificate provision by the application. (On Steam, Steam will handle all this automatically) +#ifndef STEAMNETWORKINGSOCKETS_STEAM + + /// Get blob that describes a certificate request. You can send this to your game coordinator. + /// Upon entry, *pcbBlob should contain the size of the buffer. On successful exit, it will + /// return the number of bytes that were populated. You can pass pBlob=NULL to query for the required + /// size. (256 bytes is a very conservative estimate.) + /// + /// Pass this blob to your game coordinator and call SteamDatagram_CreateCert. + virtual bool GetCertificateRequest( int *pcbBlob, void *pBlob, SteamNetworkingErrMsg &errMsg ) = 0; + + /// Set the certificate. The certificate blob should be the output of + /// SteamDatagram_CreateCert. + virtual bool SetCertificate( const void *pCertificate, int cbCertificate, SteamNetworkingErrMsg &errMsg ) = 0; + +#endif + #ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR // @@ -340,43 +392,54 @@ public: /// here. The reason is to make reconnection to a gameserver robust, even if the client computer loses /// connection to Steam or the central backend, or the app is restarted or crashes, etc. /// - /// If you use this, you probably want to call ISteamNetworkingUtils::InitializeRelayNetworkAccess() + /// If you use this, you probably want to call ISteamNetworkingUtils::InitRelayNetworkAccess() /// when your app initializes virtual HSteamNetConnection ConnectToHostedDedicatedServer( const SteamNetworkingIdentity &identityTarget, int nVirtualPort ) = 0; // - // Servers hosted in Valve data centers + // Servers hosted in data centers known to the Valve relay network // /// Returns the value of the SDR_LISTEN_PORT environment variable. This /// is the UDP server your server will be listening on. This will - /// configured automatically for you in production environments. (You - /// should set it yourself for testing.) + /// configured automatically for you in production environments. + /// + /// In development, you'll need to set it yourself. See + /// https://partner.steamgames.com/doc/api/ISteamNetworkingSockets + /// for more information on how to configure dev environments. virtual uint16 GetHostedDedicatedServerPort() = 0; - /// If you are running in a production data center, this will return the data - /// center code. Returns 0 otherwise. + /// Returns 0 if SDR_LISTEN_PORT is not set. Otherwise, returns the data center the server + /// is running in. This will be k_SteamDatagramPOPID_dev in non-production envirionment. virtual SteamNetworkingPOPID GetHostedDedicatedServerPOPID() = 0; - /// Return info about the hosted server. You will need to send this information to your - /// backend, and put it in tickets, so that the relays will know how to forward traffic from + /// Return info about the hosted server. This contains the PoPID of the server, + /// and opaque routing information that can be used by the relays to send traffic + /// to your server. + /// + /// You will need to send this information to your backend, and put it in tickets, + /// so that the relays will know how to forward traffic from /// clients to your server. See SteamDatagramRelayAuthTicket for more info. /// - /// NOTE ABOUT DEVELOPMENT ENVIRONMENTS: - /// In production in our data centers, these parameters are configured via environment variables. - /// In development, the only one you need to set is SDR_LISTEN_PORT, which is the local port you - /// want to listen on. Furthermore, if you are running your server behind a corporate firewall, - /// you probably will not be able to put the routing information returned by this function into - /// tickets. Instead, it should be a public internet address that the relays can use to send - /// data to your server. So you might just end up hardcoding a public address and setup port - /// forwarding on your corporate firewall. In that case, the port you put into the ticket - /// needs to be the public-facing port opened on your firewall, if it is different from the - /// actual server port. + /// Also, note that the routing information is contained in SteamDatagramGameCoordinatorServerLogin, + /// so if possible, it's preferred to use GetGameCoordinatorServerLogin to send this info + /// to your game coordinator service, and also login securely at the same time. /// - /// This function will fail if SteamDatagramServer_Init has not been called. + /// On a successful exit, k_EResultOK is returned /// - /// Returns false if the SDR_LISTEN_PORT environment variable is not set. - virtual bool GetHostedDedicatedServerAddress( SteamDatagramHostedAddress *pRouting ) = 0; + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultInvalidState: We are not configured to listen for SDR (SDR_LISTEN_SOCKET + /// is not set.) + /// - k_EResultPending: we do not (yet) have the authentication information needed. + /// (See GetAuthenticationStatus.) If you use environment variables to pre-fetch + /// the network config, this data should always be available immediately. + /// - A non-localized diagnostic debug message will be placed in m_data that describes + /// the cause of the failure. + /// + /// NOTE: The returned blob is not encrypted. Send it to your backend, but don't + /// directly share it with clients. + virtual EResult GetHostedDedicatedServerAddress( SteamDatagramHostedAddress *pRouting ) = 0; /// Create a listen socket on the specified virtual port. The physical UDP port to use /// will be determined by the SDR_LISTEN_PORT environment variable. If a UDP port is not @@ -385,6 +448,38 @@ public: /// Note that this call MUST be made through the SteamGameServerNetworkingSockets() interface virtual HSteamListenSocket CreateHostedDedicatedServerListenSocket( int nVirtualPort ) = 0; + /// Generate an authentication blob that can be used to securely login with + /// your backend, using SteamDatagram_ParseHostedServerLogin. (See + /// steamdatagram_gamecoordinator.h) + /// + /// Before calling the function: + /// - Populate the app data in pLoginInfo (m_cbAppData and m_appData). You can leave + /// all other fields uninitialized. + /// - *pcbSignedBlob contains the size of the buffer at pBlob. (It should be + /// at least k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized.) + /// + /// On a successful exit: + /// - k_EResultOK is returned + /// - All of the remaining fields of pLoginInfo will be filled out. + /// - *pcbSignedBlob contains the size of the serialized blob that has been + /// placed into pBlob. + /// + /// Unsuccessful exit: + /// - Something other than k_EResultOK is returned. + /// - k_EResultNotLoggedOn: you are not logged in (yet) + /// - See GetHostedDedicatedServerAddress for more potential failure return values. + /// - A non-localized diagnostic debug message will be placed in pBlob that describes + /// the cause of the failure. + /// + /// This works by signing the contents of the SteamDatagramGameCoordinatorServerLogin + /// with the cert that is issued to this server. In dev environments, it's OK if you do + /// not have a cert. (You will need to enable insecure dev login in SteamDatagram_ParseHostedServerLogin.) + /// Otherwise, you will need a signed cert. + /// + /// NOTE: The routing blob returned here is not encrypted. Send it to your backend + /// and don't share it directly with clients. + virtual EResult GetGameCoordinatorServerLogin( SteamDatagramGameCoordinatorServerLogin *pLoginInfo, int *pcbSignedBlob, void *pBlob ) = 0; + #endif // #ifndef STEAMNETWORKINGSOCKETS_ENABLE_SDR // Invoke all callbacks queued for this interface. @@ -397,7 +492,7 @@ public: protected: ~ISteamNetworkingSockets(); // Silence some warnings }; -#define STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "SteamNetworkingSockets002" +#define STEAMNETWORKINGSOCKETS_INTERFACE_VERSION "SteamNetworkingSockets003" extern "C" { @@ -482,6 +577,25 @@ struct SteamNetConnectionStatusChangedCallback_t /// Previous state. (Current state is in m_info.m_eState) ESteamNetworkingConnectionState m_eOldState; }; + +/// A struct used to describe our readiness to participate in authenticated, +/// encrypted communication. In order to do this we need: +/// +/// - The list of trusted CA certificates that might be relevant for this +/// app. +/// - A valid certificate issued by a CA. +struct SteamNetAuthenticationStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingSocketsCallbacks + 2 }; + + /// Status + ESteamNetworkingAvailability m_eAvail; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + #pragma pack( pop ) } diff --git a/public/steam/isteamnetworkingutils.h b/public/steam/isteamnetworkingutils.h index 5597be2..6f47821 100644 --- a/public/steam/isteamnetworkingutils.h +++ b/public/steam/isteamnetworkingutils.h @@ -14,6 +14,7 @@ #include "steamnetworkingtypes.h" struct SteamDatagramRelayAuthTicket; +struct SteamRelayNetworkStatus_t; //----------------------------------------------------------------------------- /// Misc networking utilities for checking the local networking environment @@ -24,7 +25,7 @@ public: #ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR // - // Initialization + // Initialization and status check // /// If you know that you are going to be using the relay network, call @@ -33,16 +34,25 @@ public: /// happen the first time you use a feature that requires access to the /// relay network, and that use will be delayed. /// - /// Returns true if initialization has completed successfully. - /// (It will probably return false on the first call.) - /// + /// Use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// callbacks to know when initialization has completed. /// Typically initialization completes in a few seconds. /// - /// Note: dedicated servers hosted with Valve do *not* need to call - /// this, since they do not make routing decisions. However, if the - /// dedicated server will be using P2P functionality, it will act as + /// Note: dedicated servers hosted in known data centers do *not* need + /// to call this, since they do not make routing decisions. However, if + /// the dedicated server will be using P2P functionality, it will act as /// a "client" and this should be called. - inline bool InitializeRelayNetworkAccess(); + inline void InitRelayNetworkAccess(); + + /// Fetch current status of the relay network. + /// + /// SteamRelayNetworkStatus_t is also a callback. It will be triggered on + /// both the user and gameserver interfaces any time the status changes, or + /// ping measurement starts or stops. + /// + /// SteamRelayNetworkStatus_t::m_eAvail is returned. If you want + /// more details, you can pass a non-NULL value. + virtual ESteamNetworkingAvailability GetRelayNetworkStatus( SteamRelayNetworkStatus_t *pDetails ) = 0; // // "Ping location" functions @@ -59,14 +69,14 @@ public: // This is extremely useful to select peers for matchmaking! // // The markers can also be converted to a string, so they can be transmitted. - // We have a separate library you can use on your backend to manipulate - // these objects. (See steamdatagram_ticketgen.h) + // We have a separate library you can use on your app's matchmaking/coordinating + // server to manipulate these objects. (See steamdatagram_gamecoordinator.h) /// Return location info for the current host. Returns the approximate /// age of the data, in seconds, or -1 if no data is available. /// /// It takes a few seconds to initialize access to the relay network. If - /// you call this very soon after calling InitializeRelayNetworkAccess, + /// you call this very soon after calling InitRelayNetworkAccess, /// the data may not be available yet. /// /// This always return the most up-to-date information we have available @@ -117,10 +127,6 @@ public: /// the string. virtual bool ParsePingLocationString( const char *pszString, SteamNetworkPingLocation_t &result ) = 0; - // - // Initialization / ping measurement status - // - /// Check if the ping data of sufficient recency is available, and if /// it's too old, start refreshing it. /// @@ -136,13 +142,11 @@ public: /// Returns false if sufficiently recent data is not available. In this /// case, ping measurement is initiated, if it is not already active. /// (You cannot restart a measurement already in progress.) + /// + /// You can use GetRelayNetworkStatus or listen for SteamRelayNetworkStatus_t + /// to know when ping measurement completes. virtual bool CheckPingDataUpToDate( float flMaxAgeSeconds ) = 0; - /// Return true if we are taking ping measurements to update our ping - /// location or select optimal routing. Ping measurement typically takes - /// a few seconds, perhaps up to 10 seconds. - virtual bool IsPingMeasurementInProgress() = 0; - // // List of Valve data centers, and ping times to them. This might // be useful to you if you are use our hosting, or just need to measure @@ -261,7 +265,7 @@ public: protected: ~ISteamNetworkingUtils(); // Silence some warnings }; -#define STEAMNETWORKINGUTILS_INTERFACE_VERSION "SteamNetworkingUtils001" +#define STEAMNETWORKINGUTILS_INTERFACE_VERSION "SteamNetworkingUtils002" // Global accessor. #ifdef STEAMNETWORKINGSOCKETS_STANDALONELIB @@ -277,12 +281,48 @@ protected: STEAM_DEFINE_INTERFACE_ACCESSOR( ISteamNetworkingUtils *, SteamNetworkingUtils, SteamInternal_FindOrCreateUserInterface( 0, STEAMNETWORKINGUTILS_INTERFACE_VERSION ) ); #endif +/// A struct used to describe our readiness to use the relay network. +/// To do this we first need to fetch the network configuration, +/// which describes what POPs are available. +struct SteamRelayNetworkStatus_t +{ + enum { k_iCallback = k_iSteamNetworkingUtilsCallbacks + 1 }; + + /// Summary status. When this is "current", initialization has + /// completed. Anything else means you are not ready yet, or + /// there is a significant problem. + ESteamNetworkingAvailability m_eAvail; + + /// Nonzero if latency measurement is in progress (or pending, + /// awaiting a prerequisite). + int m_bPingMeasurementInProgress; + + /// Status obtaining the network config. This is a prerequisite + /// for relay network access. + /// + /// Failure to obtain the network config almost always indicates + /// a problem with the local internet connection. + ESteamNetworkingAvailability m_eAvailNetworkConfig; + + /// Current ability to communicate with ANY relay. Note that + /// the complete failure to communicate with any relays almost + /// always indicates a problem with the local Internet connection. + /// (However, just because you can reach a single relay doesn't + /// mean that the local connection is in perfect health.) + ESteamNetworkingAvailability m_eAvailAnyRelay; + + /// Non-localized English language status. For diagnostic/debugging + /// purposes only. + char m_debugMsg[ 256 ]; +}; + + /////////////////////////////////////////////////////////////////////////////// // // Internal stuff #ifdef STEAMNETWORKINGSOCKETS_ENABLE_SDR -inline bool ISteamNetworkingUtils::InitializeRelayNetworkAccess() { return CheckPingDataUpToDate( 1e10f ); } +inline void ISteamNetworkingUtils::InitRelayNetworkAccess() { CheckPingDataUpToDate( 1e10f ); } #endif inline bool ISteamNetworkingUtils::SetGlobalConfigValueInt32( ESteamNetworkingConfigValue eValue, int32 val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Global, 0, k_ESteamNetworkingConfig_Int32, &val ); } @@ -292,7 +332,7 @@ inline bool ISteamNetworkingUtils::SetConnectionConfigValueInt32( HSteamNetConne inline bool ISteamNetworkingUtils::SetConnectionConfigValueFloat( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, float val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_Float, &val ); } inline bool ISteamNetworkingUtils::SetConnectionConfigValueString( HSteamNetConnection hConn, ESteamNetworkingConfigValue eValue, const char *val ) { return SetConfigValue( eValue, k_ESteamNetworkingConfig_Connection, hConn, k_ESteamNetworkingConfig_String, val ); } -#if !defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) && defined( STEAMNETWORKINGSOCKETS_STEAM ) +#if !defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) && defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT ) inline void SteamNetworkingIPAddr::ToString( char *buf, size_t cbBuf, bool bWithPort ) const { SteamNetworkingUtils()->SteamNetworkingIPAddr_ToString( *this, buf, cbBuf, bWithPort ); } inline bool SteamNetworkingIPAddr::ParseString( const char *pszStr ) { return SteamNetworkingUtils()->SteamNetworkingIPAddr_ParseString( this, pszStr ); } inline void SteamNetworkingIdentity::ToString( char *buf, size_t cbBuf ) const { SteamNetworkingUtils()->SteamNetworkingIdentity_ToString( *this, buf, cbBuf ); } diff --git a/public/steam/isteamremotestorage.h b/public/steam/isteamremotestorage.h index 0fed2af..8707bb2 100644 --- a/public/steam/isteamremotestorage.h +++ b/public/steam/isteamremotestorage.h @@ -67,6 +67,7 @@ enum ERemoteStoragePlatform k_ERemoteStoragePlatformLinux = (1 << 3), k_ERemoteStoragePlatformReserved2 = (1 << 4), k_ERemoteStoragePlatformAndroid = (1 << 5), + k_ERemoteStoragePlatformIOS = (1 << 6), k_ERemoteStoragePlatformAll = 0xffffffff }; diff --git a/public/steam/isteamugc.h b/public/steam/isteamugc.h index 750706d..616b590 100644 --- a/public/steam/isteamugc.h +++ b/public/steam/isteamugc.h @@ -226,6 +226,8 @@ public: virtual bool GetQueryUGCAdditionalPreview( UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchURLOrVideoID, uint32 cchURLSize, STEAM_OUT_STRING_COUNT(cchURLSize) char *pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType *pPreviewType ) = 0; virtual uint32 GetQueryUGCNumKeyValueTags( UGCQueryHandle_t handle, uint32 index ) = 0; virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, STEAM_OUT_STRING_COUNT(cchKeySize) char *pchKey, uint32 cchKeySize, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; + // Return the first value matching the pchKey. Note that a key may map to multiple values. Returns false if there was an error or no matching value was found. + virtual bool GetQueryUGCKeyValueTag( UGCQueryHandle_t handle, uint32 index, const char *pchKey, STEAM_OUT_STRING_COUNT(cchValueSize) char *pchValue, uint32 cchValueSize ) = 0; // Release the request to free up memory, after retrieving results virtual bool ReleaseQueryUGCRequest( UGCQueryHandle_t handle ) = 0; @@ -271,6 +273,7 @@ public: virtual bool SetItemContent( UGCUpdateHandle_t handle, const char *pszContentFolder ) = 0; // update item content from this local folder virtual bool SetItemPreview( UGCUpdateHandle_t handle, const char *pszPreviewFile ) = 0; // change preview image file for this item. pszPreviewFile points to local image file, which must be under 1MB in size virtual bool SetAllowLegacyUpload( UGCUpdateHandle_t handle, bool bAllowLegacyUpload ) = 0; // use legacy upload for a single small file. The parameter to SetItemContent() should either be a directory with one file or the full path to the file. The file must also be less than 10MB in size. + virtual bool RemoveAllItemKeyValueTags( UGCUpdateHandle_t handle ) = 0; // remove all existing key-value tags (you can add new ones via the AddItemKeyValueTag function) virtual bool RemoveItemKeyValueTags( UGCUpdateHandle_t handle, const char *pchKey ) = 0; // remove any existing key-value tags with the specified key virtual bool AddItemKeyValueTag( UGCUpdateHandle_t handle, const char *pchKey, const char *pchValue ) = 0; // add new key-value tags for the item. Note that there can be multiple values for a tag. virtual bool AddItemPreviewFile( UGCUpdateHandle_t handle, const char *pszPreviewFile, EItemPreviewType type ) = 0; // add preview file for this item. pszPreviewFile points to local file, which must be under 1MB in size @@ -350,7 +353,7 @@ public: virtual SteamAPICall_t DeleteItem( PublishedFileId_t nPublishedFileID ) = 0; }; -#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION012" +#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION013" // Global interface accessor inline ISteamUGC *SteamUGC(); diff --git a/public/steam/isteamuser.h b/public/steam/isteamuser.h index 7ed0fac..aa81f1c 100644 --- a/public/steam/isteamuser.h +++ b/public/steam/isteamuser.h @@ -206,6 +206,11 @@ public: STEAM_CALL_RESULT( MarketEligibilityResponse_t ) virtual SteamAPICall_t GetMarketEligibility() = 0; + + // Retrieves anti indulgence / duration control for current user + STEAM_CALL_RESULT( DurationControl_t ) + virtual SteamAPICall_t GetDurationControl() = 0; + }; #define STEAMUSER_INTERFACE_VERSION "SteamUser020" @@ -383,6 +388,27 @@ struct MarketEligibilityResponse_t }; +//----------------------------------------------------------------------------- +// Purpose: sent for games with enabled anti indulgence / duration control, for +// enabled users. Lets the game know whether persistent rewards or XP should be +// granted at normal rate, half rate, or zero rate. +// +// This callback is fired asynchronously in response to timers triggering. +// It is also fired in response to calls to GetDurationControl(). +//----------------------------------------------------------------------------- +struct DurationControl_t +{ + enum { k_iCallback = k_iSteamUserCallbacks + 67 }; + + EResult m_eResult; // result of call (always k_EResultOK for asynchronous timer-based notifications) + AppId_t m_appid; // appid generating playtime + + bool m_bApplicable; // is duration control applicable to user + game combination + int32 m_csecsLast5h; // playtime in trailing 5 hour window plus current session, in seconds + EDurationControlProgress m_progress; // recommended progress + EDurationControlNotification m_notification; // notification to show, if any (always k_EDurationControlNotification_None for API calls) +}; + #pragma pack( pop ) diff --git a/public/steam/isteamutils.h b/public/steam/isteamutils.h index 809682b..c4f23cc 100644 --- a/public/steam/isteamutils.h +++ b/public/steam/isteamutils.h @@ -169,6 +169,21 @@ public: // The default is true unless "VRHeadsetStreaming" "0" is in the extended appinfo for a game. // (this is useful for games that have asymmetric multiplayer gameplay) virtual void SetVRHeadsetStreamingEnabled( bool bEnabled ) = 0; + + // Returns whether this steam client is a Steam China specific client, vs the global client. + virtual bool IsSteamChinaLauncher() = 0; + + // Initializes text filtering. + // Returns false if filtering is unavailable for the language the user is currently running in. + virtual bool InitFilterText() = 0; + + // Filters the provided input message and places the filtered result into pchOutFilteredText. + // pchOutFilteredText is where the output will be placed, even if no filtering or censoring is performed + // nByteSizeOutFilteredText is the size (in bytes) of pchOutFilteredText + // pchInputText is the input string that should be filtered, which can be ASCII or UTF-8 + // bLegalOnly should be false if you want profanity and legally required filtering (where required) and true if you want legally required filtering only + // Returns the number of characters (not bytes) filtered. + virtual int FilterText( char* pchOutFilteredText, uint32 nByteSizeOutFilteredText, const char * pchInputMessage, bool bLegalOnly ) = 0; }; #define STEAMUTILS_INTERFACE_VERSION "SteamUtils009" diff --git a/public/steam/isteamvideo.h b/public/steam/isteamvideo.h index efd7740..3dbe987 100644 --- a/public/steam/isteamvideo.h +++ b/public/steam/isteamvideo.h @@ -49,13 +49,6 @@ public: inline ISteamVideo *SteamVideo(); STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamVideo *, SteamVideo, STEAMVIDEO_INTERFACE_VERSION ); -STEAM_CALLBACK_BEGIN( BroadcastUploadStart_t, k_iClientVideoCallbacks + 4 ) -STEAM_CALLBACK_END(0) - -STEAM_CALLBACK_BEGIN( BroadcastUploadStop_t, k_iClientVideoCallbacks + 5 ) - STEAM_CALLBACK_MEMBER( 0, EBroadcastUploadResult, m_eResult ) -STEAM_CALLBACK_END(1) - STEAM_CALLBACK_BEGIN( GetVideoURLResult_t, k_iClientVideoCallbacks + 11 ) STEAM_CALLBACK_MEMBER( 0, EResult, m_eResult ) STEAM_CALLBACK_MEMBER( 1, AppId_t, m_unVideoAppID ) diff --git a/public/steam/lib/linux32/libsdkencryptedappticket.so b/public/steam/lib/linux32/libsdkencryptedappticket.so index dfa3bba..3a50ca9 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 96cdd1c..3c0ea10 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/linux64/libsteamdatagram_ticketgen.so b/public/steam/lib/linux64/libsteamdatagram_ticketgen.so deleted file mode 100644 index da012dc..0000000 Binary files a/public/steam/lib/linux64/libsteamdatagram_ticketgen.so and /dev/null differ diff --git a/public/steam/lib/osx32/libsdkencryptedappticket.dylib b/public/steam/lib/osx/libsdkencryptedappticket.dylib similarity index 100% rename from public/steam/lib/osx32/libsdkencryptedappticket.dylib rename to public/steam/lib/osx/libsdkencryptedappticket.dylib diff --git a/public/steam/lib/win32/sdkencryptedappticket.dll b/public/steam/lib/win32/sdkencryptedappticket.dll index 40b2f67..697d3c5 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/win32/sdkencryptedappticket.lib b/public/steam/lib/win32/sdkencryptedappticket.lib index b6360d4..7e33b42 100644 Binary files a/public/steam/lib/win32/sdkencryptedappticket.lib and b/public/steam/lib/win32/sdkencryptedappticket.lib differ diff --git a/public/steam/lib/win64/sdkencryptedappticket64.dll b/public/steam/lib/win64/sdkencryptedappticket64.dll index 4854c25..dc08167 100644 Binary files a/public/steam/lib/win64/sdkencryptedappticket64.dll and b/public/steam/lib/win64/sdkencryptedappticket64.dll differ diff --git a/public/steam/lib/win64/sdkencryptedappticket64.lib b/public/steam/lib/win64/sdkencryptedappticket64.lib index 5c3b34c..0e2f916 100644 Binary files a/public/steam/lib/win64/sdkencryptedappticket64.lib and b/public/steam/lib/win64/sdkencryptedappticket64.lib differ diff --git a/public/steam/lib/win64/steamdatagram_ticketgen.dll b/public/steam/lib/win64/steamdatagram_ticketgen.dll deleted file mode 100644 index 0f52250..0000000 Binary files a/public/steam/lib/win64/steamdatagram_ticketgen.dll and /dev/null differ diff --git a/public/steam/lib/win64/steamdatagram_ticketgen.lib b/public/steam/lib/win64/steamdatagram_ticketgen.lib deleted file mode 100644 index 562ebe9..0000000 Binary files a/public/steam/lib/win64/steamdatagram_ticketgen.lib and /dev/null differ diff --git a/public/steam/steam_api.h b/public/steam/steam_api.h index cb7e5dc..2626fa5 100644 --- a/public/steam/steam_api.h +++ b/public/steam/steam_api.h @@ -165,9 +165,11 @@ inline bool CSteamAPIContext::Init() if ( !m_pSteamGameSearch ) return false; +#if !defined( IOSALL) // Not yet supported on iOS. m_pSteamMatchmakingServers = ::SteamMatchmakingServers(); if ( !m_pSteamMatchmakingServers ) return false; +#endif m_pSteamUserStats = ::SteamUserStats(); if ( !m_pSteamUserStats ) @@ -213,10 +215,10 @@ inline bool CSteamAPIContext::Init() if ( !m_pSteamMusicRemote ) return false; -#ifndef ANDROID // Not yet supported on Android +#if !defined( ANDROID ) && !defined( IOSALL) // Not yet supported on Android or ios. m_pSteamHTMLSurface = ::SteamHTMLSurface(); if ( !m_pSteamHTMLSurface ) - return false; + return false; #endif m_pSteamInventory = ::SteamInventory(); diff --git a/public/steam/steam_api.json b/public/steam/steam_api.json index 43de069..71a30fc 100644 --- a/public/steam/steam_api.json +++ b/public/steam/steam_api.json @@ -313,6 +313,7 @@ ,{"name": "k_EAppType_Music","value": "8192"} ,{"name": "k_EAppType_Series","value": "16384"} ,{"name": "k_EAppType_Comic","value": "32768"} + ,{"name": "k_EAppType_Beta","value": "65536"} ,{"name": "k_EAppType_Shortcut","value": "1073741824"} ,{"name": "k_EAppType_DepotOnly","value": "-2147483648"} ]} @@ -429,6 +430,7 @@ ,{"name": "k_eEVRHMDType_Oculus_DK1","value": "21"} ,{"name": "k_eEVRHMDType_Oculus_DK2","value": "22"} ,{"name": "k_eEVRHMDType_Oculus_Rift","value": "23"} + ,{"name": "k_eEVRHMDType_Oculus_RiftS","value": "24"} ,{"name": "k_eEVRHMDType_Oculus_Unknown","value": "40"} ,{"name": "k_eEVRHMDType_Acer_Unknown","value": "50"} ,{"name": "k_eEVRHMDType_Acer_WindowsMR","value": "51"} @@ -445,7 +447,9 @@ ,{"name": "k_eEVRHMDType_vridge","value": "110"} ,{"name": "k_eEVRHMDType_Huawei_Unknown","value": "120"} ,{"name": "k_eEVRHMDType_Huawei_VR2","value": "121"} - ,{"name": "k_eEVRHMDType_Huawei_Unannounced","value": "129"} + ,{"name": "k_eEVRHMDType_Huawei_EndOfRange","value": "129"} + ,{"name": "k_eEVRHmdType_Valve_Unknown","value": "130"} + ,{"name": "k_eEVRHmdType_Valve_Index","value": "131"} ]} , {"enumname": "EMarketNotAllowedReasonFlags","values": [ {"name": "k_EMarketNotAllowedReason_None","value": "0"} @@ -466,6 +470,18 @@ ,{"name": "k_EMarketNotAllowedReason_NoRecentPurchases","value": "16384"} ,{"name": "k_EMarketNotAllowedReason_AcceptedWalletGift","value": "32768"} ]} +, {"enumname": "EDurationControlProgress","values": [ + {"name": "k_EDurationControlProgress_Full","value": "0"} + ,{"name": "k_EDurationControlProgress_Half","value": "1"} + ,{"name": "k_EDurationControlProgress_None","value": "2"} +]} +, {"enumname": "EDurationControlNotification","values": [ + {"name": "k_EDurationControlNotification_None","value": "0"} + ,{"name": "k_EDurationControlNotification_1Hour","value": "1"} + ,{"name": "k_EDurationControlNotification_3Hours","value": "2"} + ,{"name": "k_EDurationControlNotification_HalfProgress","value": "3"} + ,{"name": "k_EDurationControlNotification_NoProgress","value": "4"} +]} , {"enumname": "CGameID::EGameIDType","values": [ {"name": "k_EGameIDTypeApp","value": "0"} ,{"name": "k_EGameIDTypeGameMod","value": "1"} @@ -598,6 +614,7 @@ ,{"name": "k_ELobbyTypeFriendsOnly","value": "1"} ,{"name": "k_ELobbyTypePublic","value": "2"} ,{"name": "k_ELobbyTypeInvisible","value": "3"} + ,{"name": "k_ELobbyTypePrivateUnique","value": "4"} ]} , {"enumname": "ELobbyComparison","values": [ {"name": "k_ELobbyComparisonEqualToOrLessThan","value": "-2"} @@ -645,6 +662,7 @@ ,{"name": "k_ERemoteStoragePlatformLinux","value": "8"} ,{"name": "k_ERemoteStoragePlatformReserved2","value": "16"} ,{"name": "k_ERemoteStoragePlatformAndroid","value": "32"} + ,{"name": "k_ERemoteStoragePlatformIOS","value": "64"} ,{"name": "k_ERemoteStoragePlatformAll","value": "-1"} ]} , {"enumname": "ERemoteStoragePublishedFileVisibility","values": [ @@ -974,7 +992,7 @@ ,{"name": "k_EInputActionOrigin_PS4_Gyro_Pitch","value": "100"} ,{"name": "k_EInputActionOrigin_PS4_Gyro_Yaw","value": "101"} ,{"name": "k_EInputActionOrigin_PS4_Gyro_Roll","value": "102"} - ,{"name": "k_EInputActionOrigin_PS4_Reserved0","value": "103"} + ,{"name": "k_EInputActionOrigin_PS4_DPad_Move","value": "103"} ,{"name": "k_EInputActionOrigin_PS4_Reserved1","value": "104"} ,{"name": "k_EInputActionOrigin_PS4_Reserved2","value": "105"} ,{"name": "k_EInputActionOrigin_PS4_Reserved3","value": "106"} @@ -1013,7 +1031,7 @@ ,{"name": "k_EInputActionOrigin_XBoxOne_DPad_South","value": "139"} ,{"name": "k_EInputActionOrigin_XBoxOne_DPad_West","value": "140"} ,{"name": "k_EInputActionOrigin_XBoxOne_DPad_East","value": "141"} - ,{"name": "k_EInputActionOrigin_XBoxOne_Reserved0","value": "142"} + ,{"name": "k_EInputActionOrigin_XBoxOne_DPad_Move","value": "142"} ,{"name": "k_EInputActionOrigin_XBoxOne_Reserved1","value": "143"} ,{"name": "k_EInputActionOrigin_XBoxOne_Reserved2","value": "144"} ,{"name": "k_EInputActionOrigin_XBoxOne_Reserved3","value": "145"} @@ -1052,7 +1070,7 @@ ,{"name": "k_EInputActionOrigin_XBox360_DPad_South","value": "178"} ,{"name": "k_EInputActionOrigin_XBox360_DPad_West","value": "179"} ,{"name": "k_EInputActionOrigin_XBox360_DPad_East","value": "180"} - ,{"name": "k_EInputActionOrigin_XBox360_Reserved0","value": "181"} + ,{"name": "k_EInputActionOrigin_XBox360_DPad_Move","value": "181"} ,{"name": "k_EInputActionOrigin_XBox360_Reserved1","value": "182"} ,{"name": "k_EInputActionOrigin_XBox360_Reserved2","value": "183"} ,{"name": "k_EInputActionOrigin_XBox360_Reserved3","value": "184"} @@ -1096,7 +1114,7 @@ ,{"name": "k_EInputActionOrigin_Switch_ProGyro_Pitch","value": "222"} ,{"name": "k_EInputActionOrigin_Switch_ProGyro_Yaw","value": "223"} ,{"name": "k_EInputActionOrigin_Switch_ProGyro_Roll","value": "224"} - ,{"name": "k_EInputActionOrigin_Switch_Reserved0","value": "225"} + ,{"name": "k_EInputActionOrigin_Switch_DPad_Move","value": "225"} ,{"name": "k_EInputActionOrigin_Switch_Reserved1","value": "226"} ,{"name": "k_EInputActionOrigin_Switch_Reserved2","value": "227"} ,{"name": "k_EInputActionOrigin_Switch_Reserved3","value": "228"} @@ -1469,7 +1487,11 @@ ,{"name": "k_EControllerActionOrigin_Switch_LeftGrip_Upper","value": "238"} ,{"name": "k_EControllerActionOrigin_Switch_RightGrip_Lower","value": "239"} ,{"name": "k_EControllerActionOrigin_Switch_RightGrip_Upper","value": "240"} - ,{"name": "k_EControllerActionOrigin_Count","value": "241"} + ,{"name": "k_EControllerActionOrigin_PS4_DPad_Move","value": "241"} + ,{"name": "k_EControllerActionOrigin_XBoxOne_DPad_Move","value": "242"} + ,{"name": "k_EControllerActionOrigin_XBox360_DPad_Move","value": "243"} + ,{"name": "k_EControllerActionOrigin_Switch_DPad_Move","value": "244"} + ,{"name": "k_EControllerActionOrigin_Count","value": "245"} ,{"name": "k_EControllerActionOrigin_MaximumPossibleValue","value": "32767"} ]} , {"enumname": "ESteamControllerLEDFlag","values": [ @@ -1633,6 +1655,12 @@ ,{"name": "k_ESteamItemRemoved","value": "256"} ,{"name": "k_ESteamItemConsumed","value": "512"} ]} +, {"enumname": "ESteamTVRegionBehavior","values": [ + {"name": "k_ESteamVideoRegionBehaviorInvalid","value": "-1"} + ,{"name": "k_ESteamVideoRegionBehaviorHover","value": "0"} + ,{"name": "k_ESteamVideoRegionBehaviorClickPopup","value": "1"} + ,{"name": "k_ESteamVideoRegionBehaviorClickSurroundingRegion","value": "2"} +]} , {"enumname": "EParentalFeature","values": [ {"name": "k_EFeatureInvalid","value": "0"} ,{"name": "k_EFeatureStore","value": "1"} @@ -1678,6 +1706,8 @@ "constname": "k_iSteamNetworkingSocketsCallbacks","consttype": "int", "constval": "1220"} ,{ "constname": "k_iSteamNetworkingMessagesCallbacks","consttype": "int", "constval": "1250"} +,{ + "constname": "k_iSteamNetworkingUtilsCallbacks","consttype": "int", "constval": "1280"} ,{ "constname": "k_iClientRemoteStorageCallbacks","consttype": "int", "constval": "1300"} ,{ @@ -1762,6 +1792,10 @@ "constname": "k_iSteamPartiesCallbacks","consttype": "int", "constval": "5300"} ,{ "constname": "k_iClientPartiesCallbacks","consttype": "int", "constval": "5400"} +,{ + "constname": "k_iSteamSTARCallbacks","consttype": "int", "constval": "5500"} +,{ + "constname": "k_iClientSTARCallbacks","consttype": "int", "constval": "5600"} ,{ "constname": "k_cchPersonaNameMax","consttype": "int", "constval": "128"} ,{ @@ -1782,6 +1816,8 @@ "constname": "k_SteamItemInstanceIDInvalid","consttype": "const SteamItemInstanceID_t", "constval": "18446744073709551615"} ,{ "constname": "k_SteamInventoryResultInvalid","consttype": "const SteamInventoryResult_t", "constval": "-1"} +,{ + "constname": "k_cchBroadcastGameDataMax","consttype": "int", "constval": "8192"} ], "structs":[{"struct": "CSteamID","fields": [ { "fieldname": "m_steamid", "fieldtype": "union SteamID_t"}]} @@ -1837,6 +1873,7 @@ { "fieldname": "m_pSteamHTMLSurface", "fieldtype": "class ISteamHTMLSurface *"}, { "fieldname": "m_pSteamInventory", "fieldtype": "class ISteamInventory *"}, { "fieldname": "m_pSteamVideo", "fieldtype": "class ISteamVideo *"}, +{ "fieldname": "m_pSteamTV", "fieldtype": "class ISteamTV *"}, { "fieldname": "m_pSteamParentalSettings", "fieldtype": "class ISteamParentalSettings *"}, { "fieldname": "m_pSteamInput", "fieldtype": "class ISteamInput *"}]} ,{"struct": "CSteamGameServerAPIContext","fields": [ @@ -1888,6 +1925,13 @@ { "fieldname": "m_rtAllowedAtTime", "fieldtype": "RTime32"}, { "fieldname": "m_cdaySteamGuardRequiredDays", "fieldtype": "int"}, { "fieldname": "m_cdayNewDeviceCooldown", "fieldtype": "int"}]} +,{"struct": "DurationControl_t","fields": [ +{ "fieldname": "m_eResult", "fieldtype": "enum EResult"}, +{ "fieldname": "m_appid", "fieldtype": "AppId_t"}, +{ "fieldname": "m_bApplicable", "fieldtype": "_Bool"}, +{ "fieldname": "m_csecsLast5h", "fieldtype": "int32"}, +{ "fieldname": "m_progress", "fieldtype": "enum EDurationControlProgress"}, +{ "fieldname": "m_notification", "fieldtype": "enum EDurationControlNotification"}]} ,{"struct": "FriendGameInfo_t","fields": [ { "fieldname": "m_gameID", "fieldtype": "class CGameID"}, { "fieldname": "m_unGameIP", "fieldtype": "uint32"}, @@ -2587,8 +2631,6 @@ ,{"struct": "SteamInventoryRequestPricesResult_t","fields": [ { "fieldname": "m_result", "fieldtype": "enum EResult"}, { "fieldname": "m_rgchCurrency", "fieldtype": "char [4]"}]} -,{"struct": "BroadcastUploadStop_t","fields": [ -{ "fieldname": "m_eResult", "fieldtype": "enum EBroadcastUploadResult"}]} ,{"struct": "GetVideoURLResult_t","fields": [ { "fieldname": "m_eResult", "fieldtype": "enum EResult"}, { "fieldname": "m_unVideoAppID", "fieldtype": "AppId_t"}, @@ -2596,6 +2638,15 @@ ,{"struct": "GetOPFSettingsResult_t","fields": [ { "fieldname": "m_eResult", "fieldtype": "enum EResult"}, { "fieldname": "m_unVideoAppID", "fieldtype": "AppId_t"}]} +,{"struct": "SteamTVRegion_t","fields": [ +{ "fieldname": "unMinX", "fieldtype": "uint32"}, +{ "fieldname": "unMinY", "fieldtype": "uint32"}, +{ "fieldname": "unMaxX", "fieldtype": "uint32"}, +{ "fieldname": "unMaxY", "fieldtype": "uint32"}]} +,{"struct": "BroadcastUploadStart_t","fields": [ +{ "fieldname": "m_bIsRTMP", "fieldtype": "_Bool"}]} +,{"struct": "BroadcastUploadStop_t","fields": [ +{ "fieldname": "m_eResult", "fieldtype": "enum EBroadcastUploadResult"}]} ,{"struct": "GSClientApprove_t","fields": [ { "fieldname": "m_SteamID", "fieldtype": "class CSteamID"}, { "fieldname": "m_OwnerSteamID", "fieldtype": "class CSteamID"}]} @@ -3208,6 +3259,11 @@ "methodname": "GetMarketEligibility", "callresult": "MarketEligibilityResponse_t", "returntype": "SteamAPICall_t" } +,{ + "classname": "ISteamUser", + "methodname": "GetDurationControl", "callresult": "DurationControl_t", + "returntype": "SteamAPICall_t" +} ,{ "classname": "ISteamFriends", "methodname": "GetPersonaName", @@ -4003,6 +4059,27 @@ { "paramname": "bEnabled" ,"paramtype": "bool"} ] } +,{ + "classname": "ISteamUtils", + "methodname": "IsSteamChinaLauncher", + "returntype": "bool" +} +,{ + "classname": "ISteamUtils", + "methodname": "InitFilterText", + "returntype": "bool" +} +,{ + "classname": "ISteamUtils", + "methodname": "FilterText", + "returntype": "int", + "params": [ +{ "paramname": "pchOutFilteredText" ,"paramtype": "char *"}, +{ "paramname": "nByteSizeOutFilteredText" ,"paramtype": "uint32"}, +{ "paramname": "pchInputMessage" ,"paramtype": "const char *"}, +{ "paramname": "bLegalOnly" ,"paramtype": "bool"} + ] +} ,{ "classname": "ISteamMatchmaking", "methodname": "GetFavoriteGameCount", @@ -6708,7 +6785,7 @@ "methodname": "GetConnectedControllers", "returntype": "int", "params": [ -{ "paramname": "handlesOut" ,"paramtype": "InputHandle_t *"} +{ "paramname": "handlesOut" ,"out_array_count": "STEAM_INPUT_MAX_COUNT" ,"desc": "Receives list of connected controllers" ,"paramtype": "InputHandle_t *"} ] } ,{ @@ -6768,7 +6845,7 @@ "returntype": "int", "params": [ { "paramname": "inputHandle" ,"paramtype": "InputHandle_t"}, -{ "paramname": "handlesOut" ,"paramtype": "InputActionSetHandle_t *"} +{ "paramname": "handlesOut" ,"out_array_count": "STEAM_INPUT_MAX_ACTIVE_LAYERS" ,"desc": "Receives list of active layers" ,"paramtype": "InputActionSetHandle_t *"} ] } ,{ @@ -6796,7 +6873,7 @@ { "paramname": "inputHandle" ,"paramtype": "InputHandle_t"}, { "paramname": "actionSetHandle" ,"paramtype": "InputActionSetHandle_t"}, { "paramname": "digitalActionHandle" ,"paramtype": "InputDigitalActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EInputActionOrigin *"} +{ "paramname": "originsOut" ,"out_array_count": "STEAM_INPUT_MAX_ORIGINS" ,"desc": "Receives list of action origins" ,"paramtype": "EInputActionOrigin *"} ] } ,{ @@ -6824,7 +6901,7 @@ { "paramname": "inputHandle" ,"paramtype": "InputHandle_t"}, { "paramname": "actionSetHandle" ,"paramtype": "InputActionSetHandle_t"}, { "paramname": "analogActionHandle" ,"paramtype": "InputAnalogActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EInputActionOrigin *"} +{ "paramname": "originsOut" ,"out_array_count": "STEAM_INPUT_MAX_ORIGINS" ,"desc": "Receives list of action origins" ,"paramtype": "EInputActionOrigin *"} ] } ,{ @@ -6971,6 +7048,16 @@ { "paramname": "eSourceOrigin" ,"paramtype": "EInputActionOrigin"} ] } +,{ + "classname": "ISteamInput", + "methodname": "GetDeviceBindingRevision", + "returntype": "bool", + "params": [ +{ "paramname": "inputHandle" ,"paramtype": "InputHandle_t"}, +{ "paramname": "pMajor" ,"paramtype": "int *"}, +{ "paramname": "pMinor" ,"paramtype": "int *"} + ] +} ,{ "classname": "ISteamController", "methodname": "Init", @@ -6991,7 +7078,7 @@ "methodname": "GetConnectedControllers", "returntype": "int", "params": [ -{ "paramname": "handlesOut" ,"paramtype": "ControllerHandle_t *"} +{ "paramname": "handlesOut" ,"out_array_count": "STEAM_CONTROLLER_MAX_COUNT" ,"desc": "Receives list of connected controllers" ,"paramtype": "ControllerHandle_t *"} ] } ,{ @@ -7051,7 +7138,7 @@ "returntype": "int", "params": [ { "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, -{ "paramname": "handlesOut" ,"paramtype": "ControllerActionSetHandle_t *"} +{ "paramname": "handlesOut" ,"out_array_count": "STEAM_CONTROLLER_MAX_ACTIVE_LAYERS" ,"desc": "Receives list of active layers" ,"paramtype": "ControllerActionSetHandle_t *"} ] } ,{ @@ -7079,7 +7166,7 @@ { "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, { "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, { "paramname": "digitalActionHandle" ,"paramtype": "ControllerDigitalActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} +{ "paramname": "originsOut" ,"out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS" ,"desc": "Receives list of aciton origins" ,"paramtype": "EControllerActionOrigin *"} ] } ,{ @@ -7107,7 +7194,7 @@ { "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, { "paramname": "actionSetHandle" ,"paramtype": "ControllerActionSetHandle_t"}, { "paramname": "analogActionHandle" ,"paramtype": "ControllerAnalogActionHandle_t"}, -{ "paramname": "originsOut" ,"paramtype": "EControllerActionOrigin *"} +{ "paramname": "originsOut" ,"out_array_count": "STEAM_CONTROLLER_MAX_ORIGINS" ,"desc": "Receives list of action origins" ,"paramtype": "EControllerActionOrigin *"} ] } ,{ @@ -7254,6 +7341,16 @@ { "paramname": "eSourceOrigin" ,"paramtype": "EControllerActionOrigin"} ] } +,{ + "classname": "ISteamController", + "methodname": "GetControllerBindingRevision", + "returntype": "bool", + "params": [ +{ "paramname": "controllerHandle" ,"paramtype": "ControllerHandle_t"}, +{ "paramname": "pMajor" ,"paramtype": "int *"}, +{ "paramname": "pMinor" ,"paramtype": "int *"} + ] +} ,{ "classname": "ISteamUGC", "methodname": "CreateQueryUserUGCRequest", @@ -7410,6 +7507,18 @@ { "paramname": "cchValueSize" ,"paramtype": "uint32"} ] } +,{ + "classname": "ISteamUGC", + "methodname": "GetQueryUGCKeyValueTag", + "returntype": "bool", + "params": [ +{ "paramname": "handle" ,"paramtype": "UGCQueryHandle_t"}, +{ "paramname": "index" ,"paramtype": "uint32"}, +{ "paramname": "pchKey" ,"paramtype": "const char *"}, +{ "paramname": "pchValue" ,"out_string_count": "cchValueSize" ,"paramtype": "char *"}, +{ "paramname": "cchValueSize" ,"paramtype": "uint32"} + ] +} ,{ "classname": "ISteamUGC", "methodname": "ReleaseQueryUGCRequest", @@ -7680,6 +7789,14 @@ { "paramname": "bAllowLegacyUpload" ,"paramtype": "bool"} ] } +,{ + "classname": "ISteamUGC", + "methodname": "RemoveAllItemKeyValueTags", + "returntype": "bool", + "params": [ +{ "paramname": "handle" ,"paramtype": "UGCUpdateHandle_t"} + ] +} ,{ "classname": "ISteamUGC", "methodname": "RemoveItemKeyValueTags", @@ -8715,6 +8832,67 @@ { "paramname": "pnBufferSize" ,"paramtype": "int32 *"} ] } +,{ + "classname": "ISteamTV", + "methodname": "IsBroadcasting", + "returntype": "bool", + "params": [ +{ "paramname": "pnNumViewers" ,"paramtype": "int *"} + ] +} +,{ + "classname": "ISteamTV", + "methodname": "AddBroadcastGameData", + "returntype": "void", + "params": [ +{ "paramname": "pchKey" ,"paramtype": "const char *"}, +{ "paramname": "pchValue" ,"paramtype": "const char *"} + ] +} +,{ + "classname": "ISteamTV", + "methodname": "RemoveBroadcastGameData", + "returntype": "void", + "params": [ +{ "paramname": "pchKey" ,"paramtype": "const char *"} + ] +} +,{ + "classname": "ISteamTV", + "methodname": "AddTimelineMarker", + "returntype": "void", + "params": [ +{ "paramname": "pchTemplateName" ,"paramtype": "const char *"}, +{ "paramname": "bPersistent" ,"paramtype": "bool"}, +{ "paramname": "nColorR" ,"paramtype": "uint8"}, +{ "paramname": "nColorG" ,"paramtype": "uint8"}, +{ "paramname": "nColorB" ,"paramtype": "uint8"} + ] +} +,{ + "classname": "ISteamTV", + "methodname": "RemoveTimelineMarker", + "returntype": "void" +} +,{ + "classname": "ISteamTV", + "methodname": "AddRegion", + "returntype": "uint32", + "params": [ +{ "paramname": "pchElementName" ,"paramtype": "const char *"}, +{ "paramname": "pchTimelineDataSection" ,"paramtype": "const char *"}, +{ "paramname": "pSteamTVRegion" ,"paramtype": "const struct SteamTVRegion_t *"}, +{ "paramname": "eSteamTVRegionBehavior" ,"paramtype": "ESteamTVRegionBehavior"} + ] +} +,{ + "classname": "ISteamTV", + "methodname": "RemoveRegion", + "returntype": "void", + "params": [ +{ "paramname": "unRegionHandle" ,"paramtype": "uint32"} + ] +} ,{ "classname": "ISteamParentalSettings", "methodname": "BIsParentalLockEnabled", diff --git a/public/steam/steam_api_flat.h b/public/steam/steam_api_flat.h index b8c579e..cad264e 100644 --- a/public/steam/steam_api_flat.h +++ b/public/steam/steam_api_flat.h @@ -93,6 +93,7 @@ int const_k_iSteamUserStatsCallbacks = 1100; int const_k_iSteamNetworkingCallbacks = 1200; int const_k_iSteamNetworkingSocketsCallbacks = 1220; int const_k_iSteamNetworkingMessagesCallbacks = 1250; +int const_k_iSteamNetworkingUtilsCallbacks = 1280; int const_k_iClientRemoteStorageCallbacks = 1300; int const_k_iClientDepotBuilderCallbacks = 1400; int const_k_iSteamGameServerItemsCallbacks = 1500; @@ -135,6 +136,8 @@ int const_k_iClientShaderCallbacks = 5100; int const_k_iSteamGameSearchCallbacks = 5200; int const_k_iSteamPartiesCallbacks = 5300; int const_k_iClientPartiesCallbacks = 5400; +int const_k_iSteamSTARCallbacks = 5500; +int const_k_iClientSTARCallbacks = 5600; int const_k_cchPersonaNameMax = 128; int const_k_cwchPersonaNameMax = 32; int const_k_cchMaxRichPresenceKeys = 30; @@ -145,6 +148,7 @@ int const_k_cchLeaderboardNameMax = 128; int const_k_cLeaderboardDetailsMax = 64; unsigned long const_k_SteamItemInstanceIDInvalid = 0xffffffff; int const_k_SteamInventoryResultInvalid = -1; +int const_k_cchBroadcastGameDataMax = 8192; @@ -218,6 +222,7 @@ S_API bool SteamAPI_ISteamUser_BIsTwoFactorEnabled(intptr_t instancePtr); S_API bool SteamAPI_ISteamUser_BIsPhoneIdentifying(intptr_t instancePtr); S_API bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(intptr_t instancePtr); S_API SteamAPICall_t SteamAPI_ISteamUser_GetMarketEligibility(intptr_t instancePtr); +S_API SteamAPICall_t SteamAPI_ISteamUser_GetDurationControl(intptr_t instancePtr); S_API const char * SteamAPI_ISteamFriends_GetPersonaName(intptr_t instancePtr); S_API SteamAPICall_t SteamAPI_ISteamFriends_SetPersonaName(intptr_t instancePtr, const char * pchPersonaName); S_API EPersonaState SteamAPI_ISteamFriends_GetPersonaState(intptr_t instancePtr); @@ -320,6 +325,9 @@ S_API bool SteamAPI_ISteamUtils_IsSteamInBigPictureMode(intptr_t instancePtr); S_API void SteamAPI_ISteamUtils_StartVRDashboard(intptr_t instancePtr); S_API bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled(intptr_t instancePtr); S_API void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled(intptr_t instancePtr, bool bEnabled); +S_API bool SteamAPI_ISteamUtils_IsSteamChinaLauncher(intptr_t instancePtr); +S_API bool SteamAPI_ISteamUtils_InitFilterText(intptr_t instancePtr); +S_API int SteamAPI_ISteamUtils_FilterText(intptr_t instancePtr, char * pchOutFilteredText, uint32 nByteSizeOutFilteredText, const char * pchInputMessage, bool bLegalOnly); S_API int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(intptr_t instancePtr); S_API bool SteamAPI_ISteamMatchmaking_GetFavoriteGame(intptr_t instancePtr, int iGame, AppId_t * pnAppID, uint32 * pnIP, uint16 * pnConnPort, uint16 * pnQueryPort, uint32 * punFlags, uint32 * pRTime32LastPlayedOnServer); S_API int SteamAPI_ISteamMatchmaking_AddFavoriteGame(intptr_t instancePtr, AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer); @@ -668,6 +676,7 @@ S_API const char * SteamAPI_ISteamInput_GetStringForXboxOrigin(intptr_t instance S_API const char * SteamAPI_ISteamInput_GetGlyphForXboxOrigin(intptr_t instancePtr, EXboxOrigin eOrigin); S_API EInputActionOrigin SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin(intptr_t instancePtr, InputHandle_t inputHandle, EXboxOrigin eOrigin); S_API EInputActionOrigin SteamAPI_ISteamInput_TranslateActionOrigin(intptr_t instancePtr, ESteamInputType eDestinationInputType, EInputActionOrigin eSourceOrigin); +S_API bool SteamAPI_ISteamInput_GetDeviceBindingRevision(intptr_t instancePtr, InputHandle_t inputHandle, int * pMajor, int * pMinor); S_API bool SteamAPI_ISteamController_Init(intptr_t instancePtr); S_API bool SteamAPI_ISteamController_Shutdown(intptr_t instancePtr); S_API void SteamAPI_ISteamController_RunFrame(intptr_t instancePtr); @@ -701,6 +710,7 @@ S_API const char * SteamAPI_ISteamController_GetStringForXboxOrigin(intptr_t ins S_API const char * SteamAPI_ISteamController_GetGlyphForXboxOrigin(intptr_t instancePtr, EXboxOrigin eOrigin); S_API EControllerActionOrigin SteamAPI_ISteamController_GetActionOriginFromXboxOrigin(intptr_t instancePtr, ControllerHandle_t controllerHandle, EXboxOrigin eOrigin); S_API EControllerActionOrigin SteamAPI_ISteamController_TranslateActionOrigin(intptr_t instancePtr, ESteamInputType eDestinationInputType, EControllerActionOrigin eSourceOrigin); +S_API bool SteamAPI_ISteamController_GetControllerBindingRevision(intptr_t instancePtr, ControllerHandle_t controllerHandle, int * pMajor, int * pMinor); S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(intptr_t instancePtr, AccountID_t unAccountID, EUserUGCList eListType, EUGCMatchingUGCType eMatchingUGCType, EUserUGCListSortOrder eSortOrder, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequest(intptr_t instancePtr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, uint32 unPage); S_API UGCQueryHandle_t SteamAPI_ISteamUGC_CreateQueryAllUGCRequest0(intptr_t instancePtr, EUGCQuery eQueryType, EUGCMatchingUGCType eMatchingeMatchingUGCTypeFileType, AppId_t nCreatorAppID, AppId_t nConsumerAppID, const char * pchCursor); @@ -715,6 +725,7 @@ S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumAdditionalPreviews(intptr_t instan S_API bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 previewIndex, char * pchURLOrVideoID, uint32 cchURLSize, char * pchOriginalFileName, uint32 cchOriginalFileNameSize, EItemPreviewType * pPreviewType); S_API uint32 SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index); S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, uint32 keyValueTagIndex, char * pchKey, uint32 cchKeySize, char * pchValue, uint32 cchValueSize); +S_API bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag0(intptr_t instancePtr, UGCQueryHandle_t handle, uint32 index, const char * pchKey, char * pchValue, uint32 cchValueSize); S_API bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(intptr_t instancePtr, UGCQueryHandle_t handle); S_API bool SteamAPI_ISteamUGC_AddRequiredTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); S_API bool SteamAPI_ISteamUGC_AddExcludedTag(intptr_t instancePtr, UGCQueryHandle_t handle, const char * pTagName); @@ -745,6 +756,7 @@ S_API bool SteamAPI_ISteamUGC_SetItemTags(intptr_t instancePtr, UGCUpdateHandle_ S_API bool SteamAPI_ISteamUGC_SetItemContent(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszContentFolder); S_API bool SteamAPI_ISteamUGC_SetItemPreview(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile); S_API bool SteamAPI_ISteamUGC_SetAllowLegacyUpload(intptr_t instancePtr, UGCUpdateHandle_t handle, bool bAllowLegacyUpload); +S_API bool SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags(intptr_t instancePtr, UGCUpdateHandle_t handle); S_API bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey); S_API bool SteamAPI_ISteamUGC_AddItemKeyValueTag(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pchKey, const char * pchValue); S_API bool SteamAPI_ISteamUGC_AddItemPreviewFile(intptr_t instancePtr, UGCUpdateHandle_t handle, const char * pszPreviewFile, EItemPreviewType type); @@ -860,6 +872,13 @@ S_API void SteamAPI_ISteamVideo_GetVideoURL(intptr_t instancePtr, AppId_t unVide S_API bool SteamAPI_ISteamVideo_IsBroadcasting(intptr_t instancePtr, int * pnNumViewers); S_API void SteamAPI_ISteamVideo_GetOPFSettings(intptr_t instancePtr, AppId_t unVideoAppID); S_API bool SteamAPI_ISteamVideo_GetOPFStringForApp(intptr_t instancePtr, AppId_t unVideoAppID, char * pchBuffer, int32 * pnBufferSize); +S_API bool SteamAPI_ISteamTV_IsBroadcasting(intptr_t instancePtr, int * pnNumViewers); +S_API void SteamAPI_ISteamTV_AddBroadcastGameData(intptr_t instancePtr, const char * pchKey, const char * pchValue); +S_API void SteamAPI_ISteamTV_RemoveBroadcastGameData(intptr_t instancePtr, const char * pchKey); +S_API void SteamAPI_ISteamTV_AddTimelineMarker(intptr_t instancePtr, const char * pchTemplateName, bool bPersistent, uint8 nColorR, uint8 nColorG, uint8 nColorB); +S_API void SteamAPI_ISteamTV_RemoveTimelineMarker(intptr_t instancePtr); +S_API uint32 SteamAPI_ISteamTV_AddRegion(intptr_t instancePtr, const char * pchElementName, const char * pchTimelineDataSection, const struct SteamTVRegion_t * pSteamTVRegion, ESteamTVRegionBehavior eSteamTVRegionBehavior); +S_API void SteamAPI_ISteamTV_RemoveRegion(intptr_t instancePtr, uint32 unRegionHandle); S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled(intptr_t instancePtr); S_API bool SteamAPI_ISteamParentalSettings_BIsParentalLockLocked(intptr_t instancePtr); S_API bool SteamAPI_ISteamParentalSettings_BIsAppBlocked(intptr_t instancePtr, AppId_t nAppID); diff --git a/public/steam/steam_api_internal.h b/public/steam/steam_api_internal.h index 6c98b25..50ec618 100644 --- a/public/steam/steam_api_internal.h +++ b/public/steam/steam_api_internal.h @@ -196,6 +196,7 @@ class ISteamParentalSettings; class ISteamGameSearch; class ISteamInput; class ISteamParties; +class ISteamTV; //----------------------------------------------------------------------------- // Purpose: Base values for callback identifiers, each callback must @@ -215,6 +216,7 @@ enum { k_iSteamUserStatsCallbacks = 1100 }; enum { k_iSteamNetworkingCallbacks = 1200 }; enum { k_iSteamNetworkingSocketsCallbacks = 1220 }; enum { k_iSteamNetworkingMessagesCallbacks = 1250 }; +enum { k_iSteamNetworkingUtilsCallbacks = 1280 }; enum { k_iClientRemoteStorageCallbacks = 1300 }; enum { k_iClientDepotBuilderCallbacks = 1400 }; enum { k_iSteamGameServerItemsCallbacks = 1500 }; @@ -257,6 +259,8 @@ enum { k_iClientShaderCallbacks = 5100 }; enum { k_iSteamGameSearchCallbacks = 5200 }; enum { k_iSteamPartiesCallbacks = 5300 }; enum { k_iClientPartiesCallbacks = 5400 }; +enum { k_iSteamSTARCallbacks = 5500 }; +enum { k_iClientSTARCallbacks = 5600 }; // Macro used to define a type-safe accessor that will always return the version // of the interface of the *header file* you are compiling with! We also bounce @@ -325,6 +329,7 @@ public: ISteamHTMLSurface* SteamHTMLSurface() const { return m_pSteamHTMLSurface; } ISteamInventory* SteamInventory() const { return m_pSteamInventory; } ISteamVideo* SteamVideo() const { return m_pSteamVideo; } + ISteamTV* SteamTV() const { return m_pSteamTV; } ISteamParentalSettings* SteamParentalSettings() const { return m_pSteamParentalSettings; } ISteamInput* SteamInput() const { return m_pSteamInput; } private: @@ -349,6 +354,7 @@ private: ISteamHTMLSurface *m_pSteamHTMLSurface; ISteamInventory *m_pSteamInventory; ISteamVideo *m_pSteamVideo; + ISteamTV *m_pSteamTV; ISteamParentalSettings *m_pSteamParentalSettings; ISteamInput *m_pSteamInput; }; diff --git a/public/steam/steam_api_interop.cs b/public/steam/steam_api_interop.cs index 52bff12..43e6b2d 100644 --- a/public/steam/steam_api_interop.cs +++ b/public/steam/steam_api_interop.cs @@ -147,6 +147,8 @@ internal static extern bool SteamAPI_ISteamUser_BIsPhoneIdentifying(IntPtr insta internal static extern bool SteamAPI_ISteamUser_BIsPhoneRequiringVerification(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetMarketEligibility")] internal static extern ulong SteamAPI_ISteamUser_GetMarketEligibility(IntPtr instancePtr); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUser_GetDurationControl")] +internal static extern ulong SteamAPI_ISteamUser_GetDurationControl(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_GetPersonaName")] internal static extern IntPtr SteamAPI_ISteamFriends_GetPersonaName(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamFriends_SetPersonaName")] @@ -351,6 +353,12 @@ internal static extern void SteamAPI_ISteamUtils_StartVRDashboard(IntPtr instanc internal static extern bool SteamAPI_ISteamUtils_IsVRHeadsetStreamingEnabled(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled")] internal static extern void SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled(IntPtr instancePtr, bool bEnabled); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_IsSteamChinaLauncher")] +internal static extern bool SteamAPI_ISteamUtils_IsSteamChinaLauncher(IntPtr instancePtr); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_InitFilterText")] +internal static extern bool SteamAPI_ISteamUtils_InitFilterText(IntPtr instancePtr); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUtils_FilterText")] +internal static extern int SteamAPI_ISteamUtils_FilterText(IntPtr instancePtr, string pchOutFilteredText, uint nByteSizeOutFilteredText, string pchInputMessage, bool bLegalOnly); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGameCount")] internal static extern int SteamAPI_ISteamMatchmaking_GetFavoriteGameCount(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamMatchmaking_GetFavoriteGame")] @@ -988,7 +996,7 @@ internal static extern bool SteamAPI_ISteamInput_Shutdown(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_RunFrame")] internal static extern void SteamAPI_ISteamInput_RunFrame(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetConnectedControllers")] -internal static extern int SteamAPI_ISteamInput_GetConnectedControllers(IntPtr instancePtr, ref ulong handlesOut); +internal static extern int SteamAPI_ISteamInput_GetConnectedControllers(IntPtr instancePtr, [In, Out] ulong[] handlesOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetActionSetHandle")] internal static extern ulong SteamAPI_ISteamInput_GetActionSetHandle(IntPtr instancePtr, string pszActionSetName); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_ActivateActionSet")] @@ -1002,19 +1010,19 @@ internal static extern void SteamAPI_ISteamInput_DeactivateActionSetLayer(IntPtr [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_DeactivateAllActionSetLayers")] internal static extern void SteamAPI_ISteamInput_DeactivateAllActionSetLayers(IntPtr instancePtr, ulong inputHandle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetActiveActionSetLayers")] -internal static extern int SteamAPI_ISteamInput_GetActiveActionSetLayers(IntPtr instancePtr, ulong inputHandle, ref ulong handlesOut); +internal static extern int SteamAPI_ISteamInput_GetActiveActionSetLayers(IntPtr instancePtr, ulong inputHandle, [In, Out] ulong[] handlesOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetDigitalActionHandle")] internal static extern ulong SteamAPI_ISteamInput_GetDigitalActionHandle(IntPtr instancePtr, string pszActionName); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetDigitalActionData")] internal static extern InputDigitalActionData_t SteamAPI_ISteamInput_GetDigitalActionData(IntPtr instancePtr, ulong inputHandle, ulong digitalActionHandle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetDigitalActionOrigins")] -internal static extern int SteamAPI_ISteamInput_GetDigitalActionOrigins(IntPtr instancePtr, ulong inputHandle, ulong actionSetHandle, ulong digitalActionHandle, ref uint originsOut); +internal static extern int SteamAPI_ISteamInput_GetDigitalActionOrigins(IntPtr instancePtr, ulong inputHandle, ulong actionSetHandle, ulong digitalActionHandle, [In, Out] uint[] originsOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetAnalogActionHandle")] internal static extern ulong SteamAPI_ISteamInput_GetAnalogActionHandle(IntPtr instancePtr, string pszActionName); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetAnalogActionData")] internal static extern InputAnalogActionData_t SteamAPI_ISteamInput_GetAnalogActionData(IntPtr instancePtr, ulong inputHandle, ulong analogActionHandle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetAnalogActionOrigins")] -internal static extern int SteamAPI_ISteamInput_GetAnalogActionOrigins(IntPtr instancePtr, ulong inputHandle, ulong actionSetHandle, ulong analogActionHandle, ref uint originsOut); +internal static extern int SteamAPI_ISteamInput_GetAnalogActionOrigins(IntPtr instancePtr, ulong inputHandle, ulong actionSetHandle, ulong analogActionHandle, [In, Out] uint[] originsOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetGlyphForActionOrigin")] internal static extern IntPtr SteamAPI_ISteamInput_GetGlyphForActionOrigin(IntPtr instancePtr, uint eOrigin); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetStringForActionOrigin")] @@ -1047,6 +1055,8 @@ internal static extern IntPtr SteamAPI_ISteamInput_GetGlyphForXboxOrigin(IntPtr internal static extern uint SteamAPI_ISteamInput_GetActionOriginFromXboxOrigin(IntPtr instancePtr, ulong inputHandle, uint eOrigin); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_TranslateActionOrigin")] internal static extern uint SteamAPI_ISteamInput_TranslateActionOrigin(IntPtr instancePtr, uint eDestinationInputType, uint eSourceOrigin); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamInput_GetDeviceBindingRevision")] +internal static extern bool SteamAPI_ISteamInput_GetDeviceBindingRevision(IntPtr instancePtr, ulong inputHandle, ref int pMajor, ref int pMinor); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Init")] internal static extern bool SteamAPI_ISteamController_Init(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_Shutdown")] @@ -1054,7 +1064,7 @@ internal static extern bool SteamAPI_ISteamController_Shutdown(IntPtr instancePt [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_RunFrame")] internal static extern void SteamAPI_ISteamController_RunFrame(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetConnectedControllers")] -internal static extern int SteamAPI_ISteamController_GetConnectedControllers(IntPtr instancePtr, ref ulong handlesOut); +internal static extern int SteamAPI_ISteamController_GetConnectedControllers(IntPtr instancePtr, [In, Out] ulong[] handlesOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetActionSetHandle")] internal static extern ulong SteamAPI_ISteamController_GetActionSetHandle(IntPtr instancePtr, string pszActionSetName); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_ActivateActionSet")] @@ -1068,19 +1078,19 @@ internal static extern void SteamAPI_ISteamController_DeactivateActionSetLayer(I [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_DeactivateAllActionSetLayers")] internal static extern void SteamAPI_ISteamController_DeactivateAllActionSetLayers(IntPtr instancePtr, ulong controllerHandle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetActiveActionSetLayers")] -internal static extern int SteamAPI_ISteamController_GetActiveActionSetLayers(IntPtr instancePtr, ulong controllerHandle, ref ulong handlesOut); +internal static extern int SteamAPI_ISteamController_GetActiveActionSetLayers(IntPtr instancePtr, ulong controllerHandle, [In, Out] ulong[] handlesOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionHandle")] internal static extern ulong SteamAPI_ISteamController_GetDigitalActionHandle(IntPtr instancePtr, string pszActionName); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionData")] internal static extern InputDigitalActionData_t SteamAPI_ISteamController_GetDigitalActionData(IntPtr instancePtr, ulong controllerHandle, ulong digitalActionHandle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetDigitalActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong digitalActionHandle, ref uint originsOut); +internal static extern int SteamAPI_ISteamController_GetDigitalActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong digitalActionHandle, [In, Out] uint[] originsOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionHandle")] internal static extern ulong SteamAPI_ISteamController_GetAnalogActionHandle(IntPtr instancePtr, string pszActionName); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionData")] internal static extern InputAnalogActionData_t SteamAPI_ISteamController_GetAnalogActionData(IntPtr instancePtr, ulong controllerHandle, ulong analogActionHandle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetAnalogActionOrigins")] -internal static extern int SteamAPI_ISteamController_GetAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong analogActionHandle, ref uint originsOut); +internal static extern int SteamAPI_ISteamController_GetAnalogActionOrigins(IntPtr instancePtr, ulong controllerHandle, ulong actionSetHandle, ulong analogActionHandle, [In, Out] uint[] originsOut); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetGlyphForActionOrigin")] internal static extern IntPtr SteamAPI_ISteamController_GetGlyphForActionOrigin(IntPtr instancePtr, uint eOrigin); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetStringForActionOrigin")] @@ -1113,6 +1123,8 @@ internal static extern IntPtr SteamAPI_ISteamController_GetGlyphForXboxOrigin(In internal static extern uint SteamAPI_ISteamController_GetActionOriginFromXboxOrigin(IntPtr instancePtr, ulong controllerHandle, uint eOrigin); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_TranslateActionOrigin")] internal static extern uint SteamAPI_ISteamController_TranslateActionOrigin(IntPtr instancePtr, uint eDestinationInputType, uint eSourceOrigin); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamController_GetControllerBindingRevision")] +internal static extern bool SteamAPI_ISteamController_GetControllerBindingRevision(IntPtr instancePtr, ulong controllerHandle, ref int pMajor, ref int pMinor); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryUserUGCRequest")] internal static extern ulong SteamAPI_ISteamUGC_CreateQueryUserUGCRequest(IntPtr instancePtr, uint unAccountID, uint eListType, uint eMatchingUGCType, uint eSortOrder, uint nCreatorAppID, uint nConsumerAppID, uint unPage); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_CreateQueryAllUGCRequest")] @@ -1141,6 +1153,8 @@ internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCAdditionalPreview(IntP internal static extern uint SteamAPI_ISteamUGC_GetQueryUGCNumKeyValueTags(IntPtr instancePtr, ulong handle, uint index); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag")] internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag(IntPtr instancePtr, ulong handle, uint index, uint keyValueTagIndex, System.Text.StringBuilder pchKey, uint cchKeySize, System.Text.StringBuilder pchValue, uint cchValueSize); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag0")] +internal static extern bool SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag0(IntPtr instancePtr, ulong handle, uint index, string pchKey, System.Text.StringBuilder pchValue, uint cchValueSize); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_ReleaseQueryUGCRequest")] internal static extern bool SteamAPI_ISteamUGC_ReleaseQueryUGCRequest(IntPtr instancePtr, ulong handle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddRequiredTag")] @@ -1201,6 +1215,8 @@ internal static extern bool SteamAPI_ISteamUGC_SetItemContent(IntPtr instancePtr internal static extern bool SteamAPI_ISteamUGC_SetItemPreview(IntPtr instancePtr, ulong handle, string pszPreviewFile); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_SetAllowLegacyUpload")] internal static extern bool SteamAPI_ISteamUGC_SetAllowLegacyUpload(IntPtr instancePtr, ulong handle, bool bAllowLegacyUpload); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags")] +internal static extern bool SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags(IntPtr instancePtr, ulong handle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_RemoveItemKeyValueTags")] internal static extern bool SteamAPI_ISteamUGC_RemoveItemKeyValueTags(IntPtr instancePtr, ulong handle, string pchKey); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamUGC_AddItemKeyValueTag")] @@ -1431,6 +1447,20 @@ internal static extern bool SteamAPI_ISteamVideo_IsBroadcasting(IntPtr instanceP internal static extern void SteamAPI_ISteamVideo_GetOPFSettings(IntPtr instancePtr, uint unVideoAppID); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamVideo_GetOPFStringForApp")] internal static extern bool SteamAPI_ISteamVideo_GetOPFStringForApp(IntPtr instancePtr, uint unVideoAppID, string pchBuffer, ref int pnBufferSize); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamTV_IsBroadcasting")] +internal static extern bool SteamAPI_ISteamTV_IsBroadcasting(IntPtr instancePtr, ref int pnNumViewers); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamTV_AddBroadcastGameData")] +internal static extern void SteamAPI_ISteamTV_AddBroadcastGameData(IntPtr instancePtr, string pchKey, string pchValue); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamTV_RemoveBroadcastGameData")] +internal static extern void SteamAPI_ISteamTV_RemoveBroadcastGameData(IntPtr instancePtr, string pchKey); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamTV_AddTimelineMarker")] +internal static extern void SteamAPI_ISteamTV_AddTimelineMarker(IntPtr instancePtr, string pchTemplateName, bool bPersistent, byte nColorR, byte nColorG, byte nColorB); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamTV_RemoveTimelineMarker")] +internal static extern void SteamAPI_ISteamTV_RemoveTimelineMarker(IntPtr instancePtr); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamTV_AddRegion")] +internal static extern uint SteamAPI_ISteamTV_AddRegion(IntPtr instancePtr, string pchElementName, string pchTimelineDataSection, ref SteamTVRegion_t pSteamTVRegion, uint eSteamTVRegionBehavior); +[DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamTV_RemoveRegion")] +internal static extern void SteamAPI_ISteamTV_RemoveRegion(IntPtr instancePtr, uint unRegionHandle); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled")] internal static extern bool SteamAPI_ISteamParentalSettings_BIsParentalLockEnabled(IntPtr instancePtr); [DllImportAttribute("Steam_api", EntryPoint = "SteamAPI_ISteamParentalSettings_BIsParentalLockLocked")] @@ -1766,11 +1796,11 @@ public delegate void SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallRe public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoteStorageEnumerateWorkshopFilesResult_t_CallResult func); [DllImportAttribute("Steam_api", EntryPoint = "CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult")] public static extern ulong CRemoteStorageEnumerateWorkshopFilesResult_t_RemoveCallResult(ulong handle); -public delegate void SteamAPI_RemoveUGCDependencyResult_t_CallResult(RemoveUGCDependencyResult_t pRemoveUGCDependencyResult_t, bool bIOFailure); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoveUGCDependencyResult_t_SetCallResult")] -public static extern ulong CRemoveUGCDependencyResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoveUGCDependencyResult_t_CallResult func); -[DllImportAttribute("Steam_api", EntryPoint = "CRemoveUGCDependencyResult_t_RemoveCallResult")] -public static extern ulong CRemoveUGCDependencyResult_t_RemoveCallResult(ulong handle); +public delegate void SteamAPI_DurationControl_t_CallResult(DurationControl_t pDurationControl_t, bool bIOFailure); +[DllImportAttribute("Steam_api", EntryPoint = "CDurationControl_t_SetCallResult")] +public static extern ulong CDurationControl_t_SetCallResult(ulong hAPICall, SteamAPI_DurationControl_t_CallResult func); +[DllImportAttribute("Steam_api", EntryPoint = "CDurationControl_t_RemoveCallResult")] +public static extern ulong CDurationControl_t_RemoveCallResult(ulong handle); public delegate void SteamAPI_GSReputation_t_CallResult(GSReputation_t pGSReputation_t, bool bIOFailure); [DllImportAttribute("Steam_api", EntryPoint = "CGSReputation_t_SetCallResult")] public static extern ulong CGSReputation_t_SetCallResult(ulong hAPICall, SteamAPI_GSReputation_t_CallResult func); @@ -1876,6 +1906,11 @@ public delegate void SteamAPI_SteamInventoryEligiblePromoItemDefIDs_t_CallResult public static extern ulong CSteamInventoryEligiblePromoItemDefIDs_t_SetCallResult(ulong hAPICall, SteamAPI_SteamInventoryEligiblePromoItemDefIDs_t_CallResult func); [DllImportAttribute("Steam_api", EntryPoint = "CSteamInventoryEligiblePromoItemDefIDs_t_RemoveCallResult")] public static extern ulong CSteamInventoryEligiblePromoItemDefIDs_t_RemoveCallResult(ulong handle); +public delegate void SteamAPI_RemoveUGCDependencyResult_t_CallResult(RemoveUGCDependencyResult_t pRemoveUGCDependencyResult_t, bool bIOFailure); +[DllImportAttribute("Steam_api", EntryPoint = "CRemoveUGCDependencyResult_t_SetCallResult")] +public static extern ulong CRemoveUGCDependencyResult_t_SetCallResult(ulong hAPICall, SteamAPI_RemoveUGCDependencyResult_t_CallResult func); +[DllImportAttribute("Steam_api", EntryPoint = "CRemoveUGCDependencyResult_t_RemoveCallResult")] +public static extern ulong CRemoveUGCDependencyResult_t_RemoveCallResult(ulong handle); public delegate void SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult(JoinClanChatRoomCompletionResult_t pJoinClanChatRoomCompletionResult_t, bool bIOFailure); [DllImportAttribute("Steam_api", EntryPoint = "CJoinClanChatRoomCompletionResult_t_SetCallResult")] public static extern ulong CJoinClanChatRoomCompletionResult_t_SetCallResult(ulong hAPICall, SteamAPI_JoinClanChatRoomCompletionResult_t_CallResult func); @@ -1968,6 +2003,7 @@ namespace Valve.Steamworks public abstract bool BIsPhoneIdentifying(); public abstract bool BIsPhoneRequiringVerification(); public abstract ulong GetMarketEligibility(); + public abstract ulong GetDurationControl(); } @@ -2082,6 +2118,9 @@ namespace Valve.Steamworks public abstract void StartVRDashboard(); public abstract bool IsVRHeadsetStreamingEnabled(); public abstract void SetVRHeadsetStreamingEnabled(bool bEnabled); + public abstract bool IsSteamChinaLauncher(); + public abstract bool InitFilterText(); + public abstract int FilterText(string pchOutFilteredText,uint nByteSizeOutFilteredText,string pchInputMessage,bool bLegalOnly); } @@ -2502,20 +2541,20 @@ namespace Valve.Steamworks public abstract bool Init(); public abstract bool Shutdown(); public abstract void RunFrame(); - public abstract int GetConnectedControllers(ref ulong handlesOut); + public abstract int GetConnectedControllers(out ulong [] handlesOut); public abstract ulong GetActionSetHandle(string pszActionSetName); public abstract void ActivateActionSet(ulong inputHandle,ulong actionSetHandle); public abstract ulong GetCurrentActionSet(ulong inputHandle); public abstract void ActivateActionSetLayer(ulong inputHandle,ulong actionSetLayerHandle); public abstract void DeactivateActionSetLayer(ulong inputHandle,ulong actionSetLayerHandle); public abstract void DeactivateAllActionSetLayers(ulong inputHandle); - public abstract int GetActiveActionSetLayers(ulong inputHandle,ref ulong handlesOut); + public abstract int GetActiveActionSetLayers(ulong inputHandle,out ulong [] handlesOut); public abstract ulong GetDigitalActionHandle(string pszActionName); public abstract InputDigitalActionData_t GetDigitalActionData(ulong inputHandle,ulong digitalActionHandle); - public abstract int GetDigitalActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut); + public abstract int GetDigitalActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong digitalActionHandle,out uint [] originsOut); public abstract ulong GetAnalogActionHandle(string pszActionName); public abstract InputAnalogActionData_t GetAnalogActionData(ulong inputHandle,ulong analogActionHandle); - public abstract int GetAnalogActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut); + public abstract int GetAnalogActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong analogActionHandle,out uint [] originsOut); public abstract string GetGlyphForActionOrigin(uint eOrigin); public abstract string GetStringForActionOrigin(uint eOrigin); public abstract void StopAnalogActionMomentum(ulong inputHandle,ulong eAction); @@ -2532,6 +2571,7 @@ namespace Valve.Steamworks public abstract string GetGlyphForXboxOrigin(uint eOrigin); public abstract uint GetActionOriginFromXboxOrigin(ulong inputHandle,uint eOrigin); public abstract uint TranslateActionOrigin(uint eDestinationInputType,uint eSourceOrigin); + public abstract bool GetDeviceBindingRevision(ulong inputHandle,ref int pMajor,ref int pMinor); } @@ -2541,20 +2581,20 @@ namespace Valve.Steamworks public abstract bool Init(); public abstract bool Shutdown(); public abstract void RunFrame(); - public abstract int GetConnectedControllers(ref ulong handlesOut); + public abstract int GetConnectedControllers(out ulong [] handlesOut); public abstract ulong GetActionSetHandle(string pszActionSetName); public abstract void ActivateActionSet(ulong controllerHandle,ulong actionSetHandle); public abstract ulong GetCurrentActionSet(ulong controllerHandle); public abstract void ActivateActionSetLayer(ulong controllerHandle,ulong actionSetLayerHandle); public abstract void DeactivateActionSetLayer(ulong controllerHandle,ulong actionSetLayerHandle); public abstract void DeactivateAllActionSetLayers(ulong controllerHandle); - public abstract int GetActiveActionSetLayers(ulong controllerHandle,ref ulong handlesOut); + public abstract int GetActiveActionSetLayers(ulong controllerHandle,out ulong [] handlesOut); public abstract ulong GetDigitalActionHandle(string pszActionName); public abstract InputDigitalActionData_t GetDigitalActionData(ulong controllerHandle,ulong digitalActionHandle); - public abstract int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut); + public abstract int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,out uint [] originsOut); public abstract ulong GetAnalogActionHandle(string pszActionName); public abstract InputAnalogActionData_t GetAnalogActionData(ulong controllerHandle,ulong analogActionHandle); - public abstract int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut); + public abstract int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,out uint [] originsOut); public abstract string GetGlyphForActionOrigin(uint eOrigin); public abstract string GetStringForActionOrigin(uint eOrigin); public abstract void StopAnalogActionMomentum(ulong controllerHandle,ulong eAction); @@ -2571,6 +2611,7 @@ namespace Valve.Steamworks public abstract string GetGlyphForXboxOrigin(uint eOrigin); public abstract uint GetActionOriginFromXboxOrigin(ulong controllerHandle,uint eOrigin); public abstract uint TranslateActionOrigin(uint eDestinationInputType,uint eSourceOrigin); + public abstract bool GetControllerBindingRevision(ulong controllerHandle,ref int pMajor,ref int pMinor); } @@ -2591,6 +2632,7 @@ namespace Valve.Steamworks public abstract bool GetQueryUGCAdditionalPreview(ulong handle,uint index,uint previewIndex,out string pchURLOrVideoID,out string pchOriginalFileName,uint cchOriginalFileNameSize,ref uint pPreviewType); public abstract uint GetQueryUGCNumKeyValueTags(ulong handle,uint index); public abstract bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValueTagIndex,out string pchKey,out string pchValue); + public abstract bool GetQueryUGCKeyValueTag0(ulong handle,uint index,string pchKey,out string pchValue); public abstract bool ReleaseQueryUGCRequest(ulong handle); public abstract bool AddRequiredTag(ulong handle,string pTagName); public abstract bool AddExcludedTag(ulong handle,string pTagName); @@ -2621,6 +2663,7 @@ namespace Valve.Steamworks public abstract bool SetItemContent(ulong handle,string pszContentFolder); public abstract bool SetItemPreview(ulong handle,string pszPreviewFile); public abstract bool SetAllowLegacyUpload(ulong handle,bool bAllowLegacyUpload); + public abstract bool RemoveAllItemKeyValueTags(ulong handle); public abstract bool RemoveItemKeyValueTags(ulong handle,string pchKey); public abstract bool AddItemKeyValueTag(ulong handle,string pchKey,string pchValue); public abstract bool AddItemPreviewFile(ulong handle,string pszPreviewFile,uint type); @@ -2763,6 +2806,19 @@ namespace Valve.Steamworks } + public abstract class ISteamTV + { + public abstract IntPtr GetIntPtr(); + public abstract bool IsBroadcasting(ref int pnNumViewers); + public abstract void AddBroadcastGameData(string pchKey,string pchValue); + public abstract void RemoveBroadcastGameData(string pchKey); + public abstract void AddTimelineMarker(string pchTemplateName,bool bPersistent,byte nColorR,byte nColorG,byte nColorB); + public abstract void RemoveTimelineMarker(); + public abstract uint AddRegion(string pchElementName,string pchTimelineDataSection,ref SteamTVRegion_t pSteamTVRegion,uint eSteamTVRegionBehavior); + public abstract void RemoveRegion(uint unRegionHandle); + } + + public abstract class ISteamParentalSettings { public abstract IntPtr GetIntPtr(); @@ -3266,6 +3322,12 @@ public override ulong GetMarketEligibility() ulong result = NativeEntrypoints.SteamAPI_ISteamUser_GetMarketEligibility(m_pSteamUser); return result; } +public override ulong GetDurationControl() +{ + CheckIfUsable(); + ulong result = NativeEntrypoints.SteamAPI_ISteamUser_GetDurationControl(m_pSteamUser); + return result; +} } @@ -3918,6 +3980,24 @@ public override void SetVRHeadsetStreamingEnabled(bool bEnabled) CheckIfUsable(); NativeEntrypoints.SteamAPI_ISteamUtils_SetVRHeadsetStreamingEnabled(m_pSteamUtils,bEnabled); } +public override bool IsSteamChinaLauncher() +{ + CheckIfUsable(); + bool result = NativeEntrypoints.SteamAPI_ISteamUtils_IsSteamChinaLauncher(m_pSteamUtils); + return result; +} +public override bool InitFilterText() +{ + CheckIfUsable(); + bool result = NativeEntrypoints.SteamAPI_ISteamUtils_InitFilterText(m_pSteamUtils); + return result; +} +public override int FilterText(string pchOutFilteredText,uint nByteSizeOutFilteredText,string pchInputMessage,bool bLegalOnly) +{ + CheckIfUsable(); + int result = NativeEntrypoints.SteamAPI_ISteamUtils_FilterText(m_pSteamUtils,pchOutFilteredText,nByteSizeOutFilteredText,pchInputMessage,bLegalOnly); + return result; +} } @@ -6197,11 +6277,13 @@ public override void RunFrame() CheckIfUsable(); NativeEntrypoints.SteamAPI_ISteamInput_RunFrame(m_pSteamInput); } -public override int GetConnectedControllers(ref ulong handlesOut) +public override int GetConnectedControllers(out ulong [] handlesOut) { CheckIfUsable(); handlesOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamInput_GetConnectedControllers(m_pSteamInput,ref handlesOut); + int result = NativeEntrypoints.SteamAPI_ISteamInput_GetConnectedControllers(m_pSteamInput,null); + handlesOut= new ulong[STEAM_INPUT_MAX_COUNT]; + result = NativeEntrypoints.SteamAPI_ISteamInput_GetConnectedControllers(m_pSteamInput,handlesOut); return result; } public override ulong GetActionSetHandle(string pszActionSetName) @@ -6236,11 +6318,13 @@ public override void DeactivateAllActionSetLayers(ulong inputHandle) CheckIfUsable(); NativeEntrypoints.SteamAPI_ISteamInput_DeactivateAllActionSetLayers(m_pSteamInput,inputHandle); } -public override int GetActiveActionSetLayers(ulong inputHandle,ref ulong handlesOut) +public override int GetActiveActionSetLayers(ulong inputHandle,out ulong [] handlesOut) { CheckIfUsable(); handlesOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamInput_GetActiveActionSetLayers(m_pSteamInput,inputHandle,ref handlesOut); + int result = NativeEntrypoints.SteamAPI_ISteamInput_GetActiveActionSetLayers(m_pSteamInput,inputHandle,null); + handlesOut= new ulong[STEAM_INPUT_MAX_ACTIVE_LAYERS]; + result = NativeEntrypoints.SteamAPI_ISteamInput_GetActiveActionSetLayers(m_pSteamInput,inputHandle,handlesOut); return result; } public override ulong GetDigitalActionHandle(string pszActionName) @@ -6255,11 +6339,13 @@ public override InputDigitalActionData_t GetDigitalActionData(ulong inputHandle, InputDigitalActionData_t result = NativeEntrypoints.SteamAPI_ISteamInput_GetDigitalActionData(m_pSteamInput,inputHandle,digitalActionHandle); return result; } -public override int GetDigitalActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut) +public override int GetDigitalActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong digitalActionHandle,out uint [] originsOut) { CheckIfUsable(); originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamInput_GetDigitalActionOrigins(m_pSteamInput,inputHandle,actionSetHandle,digitalActionHandle,ref originsOut); + int result = NativeEntrypoints.SteamAPI_ISteamInput_GetDigitalActionOrigins(m_pSteamInput,inputHandle,actionSetHandle,digitalActionHandle,null); + originsOut= new uint[STEAM_INPUT_MAX_ORIGINS]; + result = NativeEntrypoints.SteamAPI_ISteamInput_GetDigitalActionOrigins(m_pSteamInput,inputHandle,actionSetHandle,digitalActionHandle,originsOut); return result; } public override ulong GetAnalogActionHandle(string pszActionName) @@ -6274,11 +6360,13 @@ public override InputAnalogActionData_t GetAnalogActionData(ulong inputHandle,ul InputAnalogActionData_t result = NativeEntrypoints.SteamAPI_ISteamInput_GetAnalogActionData(m_pSteamInput,inputHandle,analogActionHandle); return result; } -public override int GetAnalogActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut) +public override int GetAnalogActionOrigins(ulong inputHandle,ulong actionSetHandle,ulong analogActionHandle,out uint [] originsOut) { CheckIfUsable(); originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamInput_GetAnalogActionOrigins(m_pSteamInput,inputHandle,actionSetHandle,analogActionHandle,ref originsOut); + int result = NativeEntrypoints.SteamAPI_ISteamInput_GetAnalogActionOrigins(m_pSteamInput,inputHandle,actionSetHandle,analogActionHandle,null); + originsOut= new uint[STEAM_INPUT_MAX_ORIGINS]; + result = NativeEntrypoints.SteamAPI_ISteamInput_GetAnalogActionOrigins(m_pSteamInput,inputHandle,actionSetHandle,analogActionHandle,originsOut); return result; } public override string GetGlyphForActionOrigin(uint eOrigin) @@ -6372,6 +6460,14 @@ public override uint TranslateActionOrigin(uint eDestinationInputType,uint eSour uint result = NativeEntrypoints.SteamAPI_ISteamInput_TranslateActionOrigin(m_pSteamInput,eDestinationInputType,eSourceOrigin); return result; } +public override bool GetDeviceBindingRevision(ulong inputHandle,ref int pMajor,ref int pMinor) +{ + CheckIfUsable(); + pMajor = 0; + pMinor = 0; + bool result = NativeEntrypoints.SteamAPI_ISteamInput_GetDeviceBindingRevision(m_pSteamInput,inputHandle,ref pMajor,ref pMinor); + return result; +} } @@ -6409,11 +6505,13 @@ public override void RunFrame() CheckIfUsable(); NativeEntrypoints.SteamAPI_ISteamController_RunFrame(m_pSteamController); } -public override int GetConnectedControllers(ref ulong handlesOut) +public override int GetConnectedControllers(out ulong [] handlesOut) { CheckIfUsable(); handlesOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetConnectedControllers(m_pSteamController,ref handlesOut); + int result = NativeEntrypoints.SteamAPI_ISteamController_GetConnectedControllers(m_pSteamController,null); + handlesOut= new ulong[STEAM_CONTROLLER_MAX_COUNT]; + result = NativeEntrypoints.SteamAPI_ISteamController_GetConnectedControllers(m_pSteamController,handlesOut); return result; } public override ulong GetActionSetHandle(string pszActionSetName) @@ -6448,11 +6546,13 @@ public override void DeactivateAllActionSetLayers(ulong controllerHandle) CheckIfUsable(); NativeEntrypoints.SteamAPI_ISteamController_DeactivateAllActionSetLayers(m_pSteamController,controllerHandle); } -public override int GetActiveActionSetLayers(ulong controllerHandle,ref ulong handlesOut) +public override int GetActiveActionSetLayers(ulong controllerHandle,out ulong [] handlesOut) { CheckIfUsable(); handlesOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetActiveActionSetLayers(m_pSteamController,controllerHandle,ref handlesOut); + int result = NativeEntrypoints.SteamAPI_ISteamController_GetActiveActionSetLayers(m_pSteamController,controllerHandle,null); + handlesOut= new ulong[STEAM_CONTROLLER_MAX_ACTIVE_LAYERS]; + result = NativeEntrypoints.SteamAPI_ISteamController_GetActiveActionSetLayers(m_pSteamController,controllerHandle,handlesOut); return result; } public override ulong GetDigitalActionHandle(string pszActionName) @@ -6467,11 +6567,13 @@ public override InputDigitalActionData_t GetDigitalActionData(ulong controllerHa InputDigitalActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionData(m_pSteamController,controllerHandle,digitalActionHandle); return result; } -public override int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,ref uint originsOut) +public override int GetDigitalActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong digitalActionHandle,out uint [] originsOut) { CheckIfUsable(); originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,digitalActionHandle,ref originsOut); + int result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,digitalActionHandle,null); + originsOut= new uint[STEAM_CONTROLLER_MAX_ORIGINS]; + result = NativeEntrypoints.SteamAPI_ISteamController_GetDigitalActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,digitalActionHandle,originsOut); return result; } public override ulong GetAnalogActionHandle(string pszActionName) @@ -6486,11 +6588,13 @@ public override InputAnalogActionData_t GetAnalogActionData(ulong controllerHand InputAnalogActionData_t result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionData(m_pSteamController,controllerHandle,analogActionHandle); return result; } -public override int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,ref uint originsOut) +public override int GetAnalogActionOrigins(ulong controllerHandle,ulong actionSetHandle,ulong analogActionHandle,out uint [] originsOut) { CheckIfUsable(); originsOut = 0; - int result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,analogActionHandle,ref originsOut); + int result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,analogActionHandle,null); + originsOut= new uint[STEAM_CONTROLLER_MAX_ORIGINS]; + result = NativeEntrypoints.SteamAPI_ISteamController_GetAnalogActionOrigins(m_pSteamController,controllerHandle,actionSetHandle,analogActionHandle,originsOut); return result; } public override string GetGlyphForActionOrigin(uint eOrigin) @@ -6584,6 +6688,14 @@ public override uint TranslateActionOrigin(uint eDestinationInputType,uint eSour uint result = NativeEntrypoints.SteamAPI_ISteamController_TranslateActionOrigin(m_pSteamController,eDestinationInputType,eSourceOrigin); return result; } +public override bool GetControllerBindingRevision(ulong controllerHandle,ref int pMajor,ref int pMinor) +{ + CheckIfUsable(); + pMajor = 0; + pMinor = 0; + bool result = NativeEntrypoints.SteamAPI_ISteamController_GetControllerBindingRevision(m_pSteamController,controllerHandle,ref pMajor,ref pMinor); + return result; +} } @@ -6704,6 +6816,14 @@ public override bool GetQueryUGCKeyValueTag(ulong handle,uint index,uint keyValu pchValue = pStrBuffer2.ToString(); return result; } +public override bool GetQueryUGCKeyValueTag0(ulong handle,uint index,string pchKey,out string pchValue) +{ + CheckIfUsable(); + System.Text.StringBuilder pStrBuffer1 = new System.Text.StringBuilder(2048); + bool result = NativeEntrypoints.SteamAPI_ISteamUGC_GetQueryUGCKeyValueTag0(m_pSteamUGC,handle,index,pchKey,pStrBuffer1,2048); + pchValue = pStrBuffer1.ToString(); + return result; +} public override bool ReleaseQueryUGCRequest(ulong handle) { CheckIfUsable(); @@ -6884,6 +7004,12 @@ public override bool SetAllowLegacyUpload(ulong handle,bool bAllowLegacyUpload) bool result = NativeEntrypoints.SteamAPI_ISteamUGC_SetAllowLegacyUpload(m_pSteamUGC,handle,bAllowLegacyUpload); return result; } +public override bool RemoveAllItemKeyValueTags(ulong handle) +{ + CheckIfUsable(); + bool result = NativeEntrypoints.SteamAPI_ISteamUGC_RemoveAllItemKeyValueTags(m_pSteamUGC,handle); + return result; +} public override bool RemoveItemKeyValueTags(ulong handle,string pchKey) { CheckIfUsable(); @@ -7672,6 +7798,64 @@ public override bool GetOPFStringForApp(uint unVideoAppID,string pchBuffer,ref i } +public class CSteamTV : ISteamTV +{ +public CSteamTV(IntPtr SteamTV) +{ + m_pSteamTV = SteamTV; +} +IntPtr m_pSteamTV; + +public override IntPtr GetIntPtr() { return m_pSteamTV; } + +private void CheckIfUsable() +{ + if (m_pSteamTV == IntPtr.Zero) + { + throw new Exception("Steam Pointer not configured"); + } +} +public override bool IsBroadcasting(ref int pnNumViewers) +{ + CheckIfUsable(); + pnNumViewers = 0; + bool result = NativeEntrypoints.SteamAPI_ISteamTV_IsBroadcasting(m_pSteamTV,ref pnNumViewers); + return result; +} +public override void AddBroadcastGameData(string pchKey,string pchValue) +{ + CheckIfUsable(); + NativeEntrypoints.SteamAPI_ISteamTV_AddBroadcastGameData(m_pSteamTV,pchKey,pchValue); +} +public override void RemoveBroadcastGameData(string pchKey) +{ + CheckIfUsable(); + NativeEntrypoints.SteamAPI_ISteamTV_RemoveBroadcastGameData(m_pSteamTV,pchKey); +} +public override void AddTimelineMarker(string pchTemplateName,bool bPersistent,byte nColorR,byte nColorG,byte nColorB) +{ + CheckIfUsable(); + NativeEntrypoints.SteamAPI_ISteamTV_AddTimelineMarker(m_pSteamTV,pchTemplateName,bPersistent,nColorR,nColorG,nColorB); +} +public override void RemoveTimelineMarker() +{ + CheckIfUsable(); + NativeEntrypoints.SteamAPI_ISteamTV_RemoveTimelineMarker(m_pSteamTV); +} +public override uint AddRegion(string pchElementName,string pchTimelineDataSection,ref SteamTVRegion_t pSteamTVRegion,uint eSteamTVRegionBehavior) +{ + CheckIfUsable(); + uint result = NativeEntrypoints.SteamAPI_ISteamTV_AddRegion(m_pSteamTV,pchElementName,pchTimelineDataSection,ref pSteamTVRegion,eSteamTVRegionBehavior); + return result; +} +public override void RemoveRegion(uint unRegionHandle) +{ + CheckIfUsable(); + NativeEntrypoints.SteamAPI_ISteamTV_RemoveRegion(m_pSteamTV,unRegionHandle); +} +} + + public class CSteamParentalSettings : ISteamParentalSettings { public CSteamParentalSettings(IntPtr SteamParentalSettings) @@ -8932,24 +9116,24 @@ public class CRemoteStorageEnumerateWorkshopFilesResult_t_CallResult m_Handle = Valve.Interop.NativeEntrypoints.CRemoteStorageEnumerateWorkshopFilesResult_t_SetCallResult(hAPICall, func); } } -public class CRemoveUGCDependencyResult_t_CallResult +public class CDurationControl_t_CallResult { - public CRemoveUGCDependencyResult_t_CallResult() { } - ~CRemoveUGCDependencyResult_t_CallResult() + public CDurationControl_t_CallResult() { } + ~CDurationControl_t_CallResult() { if(m_Handle != 0) { - Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_RemoveCallResult(m_Handle); + Valve.Interop.NativeEntrypoints.CDurationControl_t_RemoveCallResult(m_Handle); } } ulong m_Handle = 0; - public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoveUGCDependencyResult_t_CallResult func) + public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_DurationControl_t_CallResult func) { if (m_Handle != 0) { - Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_RemoveCallResult(m_Handle); + Valve.Interop.NativeEntrypoints.CDurationControl_t_RemoveCallResult(m_Handle); } - m_Handle = Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_SetCallResult(hAPICall, func); + m_Handle = Valve.Interop.NativeEntrypoints.CDurationControl_t_SetCallResult(hAPICall, func); } } public class CGSReputation_t_CallResult @@ -9372,6 +9556,26 @@ public class CSteamInventoryEligiblePromoItemDefIDs_t_CallResult m_Handle = Valve.Interop.NativeEntrypoints.CSteamInventoryEligiblePromoItemDefIDs_t_SetCallResult(hAPICall, func); } } +public class CRemoveUGCDependencyResult_t_CallResult +{ + public CRemoveUGCDependencyResult_t_CallResult() { } + ~CRemoveUGCDependencyResult_t_CallResult() + { + if(m_Handle != 0) + { + Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_RemoveCallResult(m_Handle); + } + } + ulong m_Handle = 0; + public void Set(ulong hAPICall, Valve.Interop.NativeEntrypoints.SteamAPI_RemoveUGCDependencyResult_t_CallResult func) + { + if (m_Handle != 0) + { + Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_RemoveCallResult(m_Handle); + } + m_Handle = Valve.Interop.NativeEntrypoints.CRemoveUGCDependencyResult_t_SetCallResult(hAPICall, func); + } +} public class CJoinClanChatRoomCompletionResult_t_CallResult { public CJoinClanChatRoomCompletionResult_t_CallResult() { } @@ -9478,6 +9682,8 @@ internal static extern IntPtr SteamHTMLSurface(); internal static extern IntPtr SteamInventory(); [DllImportAttribute("Steam_api", EntryPoint = "SteamVideo")] internal static extern IntPtr SteamVideo(); +[DllImportAttribute("Steam_api", EntryPoint = "SteamTV")] +internal static extern IntPtr SteamTV(); [DllImportAttribute("Steam_api", EntryPoint = "SteamParentalSettings")] internal static extern IntPtr SteamParentalSettings(); [DllImportAttribute("Steam_api", EntryPoint = "SteamGameServer")] @@ -9736,6 +9942,7 @@ public enum EAppType k_EAppType_Music = 8192, k_EAppType_Series = 16384, k_EAppType_Comic = 32768, + k_EAppType_Beta = 65536, k_EAppType_Shortcut = 1073741824, k_EAppType_DepotOnly = -2147483648, } @@ -9861,6 +10068,7 @@ public enum EVRHMDType k_eEVRHMDType_Oculus_DK1 = 21, k_eEVRHMDType_Oculus_DK2 = 22, k_eEVRHMDType_Oculus_Rift = 23, + k_eEVRHMDType_Oculus_RiftS = 24, k_eEVRHMDType_Oculus_Unknown = 40, k_eEVRHMDType_Acer_Unknown = 50, k_eEVRHMDType_Acer_WindowsMR = 51, @@ -9877,7 +10085,9 @@ public enum EVRHMDType k_eEVRHMDType_vridge = 110, k_eEVRHMDType_Huawei_Unknown = 120, k_eEVRHMDType_Huawei_VR2 = 121, - k_eEVRHMDType_Huawei_Unannounced = 129, + k_eEVRHMDType_Huawei_EndOfRange = 129, + k_eEVRHmdType_Valve_Unknown = 130, + k_eEVRHmdType_Valve_Index = 131, } public enum EMarketNotAllowedReasonFlags { @@ -9899,6 +10109,20 @@ public enum EMarketNotAllowedReasonFlags k_EMarketNotAllowedReason_NoRecentPurchases = 16384, k_EMarketNotAllowedReason_AcceptedWalletGift = 32768, } +public enum EDurationControlProgress +{ + k_EDurationControlProgress_Full = 0, + k_EDurationControlProgress_Half = 1, + k_EDurationControlProgress_None = 2, +} +public enum EDurationControlNotification +{ + k_EDurationControlNotification_None = 0, + k_EDurationControlNotification_1Hour = 1, + k_EDurationControlNotification_3Hours = 2, + k_EDurationControlNotification_HalfProgress = 3, + k_EDurationControlNotification_NoProgress = 4, +} public enum EGameSearchErrorCode_t { k_EGameSearchErrorCode_OK = 1, @@ -10041,6 +10265,7 @@ public enum ELobbyType k_ELobbyTypeFriendsOnly = 1, k_ELobbyTypePublic = 2, k_ELobbyTypeInvisible = 3, + k_ELobbyTypePrivateUnique = 4, } public enum ELobbyComparison { @@ -10089,6 +10314,7 @@ public enum ERemoteStoragePlatform k_ERemoteStoragePlatformLinux = 8, k_ERemoteStoragePlatformReserved2 = 16, k_ERemoteStoragePlatformAndroid = 32, + k_ERemoteStoragePlatformIOS = 64, k_ERemoteStoragePlatformAll = -1, } public enum ERemoteStoragePublishedFileVisibility @@ -10441,7 +10667,7 @@ public enum EInputActionOrigin k_EInputActionOrigin_PS4_Gyro_Pitch = 100, k_EInputActionOrigin_PS4_Gyro_Yaw = 101, k_EInputActionOrigin_PS4_Gyro_Roll = 102, - k_EInputActionOrigin_PS4_Reserved0 = 103, + k_EInputActionOrigin_PS4_DPad_Move = 103, k_EInputActionOrigin_PS4_Reserved1 = 104, k_EInputActionOrigin_PS4_Reserved2 = 105, k_EInputActionOrigin_PS4_Reserved3 = 106, @@ -10480,7 +10706,7 @@ public enum EInputActionOrigin k_EInputActionOrigin_XBoxOne_DPad_South = 139, k_EInputActionOrigin_XBoxOne_DPad_West = 140, k_EInputActionOrigin_XBoxOne_DPad_East = 141, - k_EInputActionOrigin_XBoxOne_Reserved0 = 142, + k_EInputActionOrigin_XBoxOne_DPad_Move = 142, k_EInputActionOrigin_XBoxOne_Reserved1 = 143, k_EInputActionOrigin_XBoxOne_Reserved2 = 144, k_EInputActionOrigin_XBoxOne_Reserved3 = 145, @@ -10519,7 +10745,7 @@ public enum EInputActionOrigin k_EInputActionOrigin_XBox360_DPad_South = 178, k_EInputActionOrigin_XBox360_DPad_West = 179, k_EInputActionOrigin_XBox360_DPad_East = 180, - k_EInputActionOrigin_XBox360_Reserved0 = 181, + k_EInputActionOrigin_XBox360_DPad_Move = 181, k_EInputActionOrigin_XBox360_Reserved1 = 182, k_EInputActionOrigin_XBox360_Reserved2 = 183, k_EInputActionOrigin_XBox360_Reserved3 = 184, @@ -10563,7 +10789,7 @@ public enum EInputActionOrigin k_EInputActionOrigin_Switch_ProGyro_Pitch = 222, k_EInputActionOrigin_Switch_ProGyro_Yaw = 223, k_EInputActionOrigin_Switch_ProGyro_Roll = 224, - k_EInputActionOrigin_Switch_Reserved0 = 225, + k_EInputActionOrigin_Switch_DPad_Move = 225, k_EInputActionOrigin_Switch_Reserved1 = 226, k_EInputActionOrigin_Switch_Reserved2 = 227, k_EInputActionOrigin_Switch_Reserved3 = 228, @@ -10943,7 +11169,11 @@ public enum EControllerActionOrigin k_EControllerActionOrigin_Switch_LeftGrip_Upper = 238, k_EControllerActionOrigin_Switch_RightGrip_Lower = 239, k_EControllerActionOrigin_Switch_RightGrip_Upper = 240, - k_EControllerActionOrigin_Count = 241, + k_EControllerActionOrigin_PS4_DPad_Move = 241, + k_EControllerActionOrigin_XBoxOne_DPad_Move = 242, + k_EControllerActionOrigin_XBox360_DPad_Move = 243, + k_EControllerActionOrigin_Switch_DPad_Move = 244, + k_EControllerActionOrigin_Count = 245, k_EControllerActionOrigin_MaximumPossibleValue = 32767, } public enum ESteamControllerLEDFlag @@ -11120,6 +11350,13 @@ public enum ESteamItemFlags k_ESteamItemRemoved = 256, k_ESteamItemConsumed = 512, } +public enum ESteamTVRegionBehavior +{ + k_ESteamVideoRegionBehaviorInvalid = -1, + k_ESteamVideoRegionBehaviorHover = 0, + k_ESteamVideoRegionBehaviorClickPopup = 1, + k_ESteamVideoRegionBehaviorClickSurroundingRegion = 2, +} public enum EParentalFeature { k_EFeatureInvalid = 0, @@ -11205,6 +11442,7 @@ public enum EParentalFeature public IntPtr m_pSteamHTMLSurface; // class ISteamHTMLSurface * public IntPtr m_pSteamInventory; // class ISteamInventory * public IntPtr m_pSteamVideo; // class ISteamVideo * + public IntPtr m_pSteamTV; // class ISteamTV * public IntPtr m_pSteamParentalSettings; // class ISteamParentalSettings * public IntPtr m_pSteamInput; // class ISteamInput * } @@ -11285,6 +11523,16 @@ public enum EParentalFeature public int m_cdaySteamGuardRequiredDays; public int m_cdayNewDeviceCooldown; } +[StructLayout(LayoutKind.Sequential)] public struct DurationControl_t +{ + public EResult m_eResult; + public uint m_appid; + [MarshalAs(UnmanagedType.I1)] + public bool m_bApplicable; + public int m_csecsLast5h; + public EDurationControlProgress m_progress; + public EDurationControlNotification m_notification; +} [StructLayout(LayoutKind.Sequential)] public struct FriendGameInfo_t { public ulong m_gameID; @@ -12395,10 +12643,6 @@ public enum EParentalFeature [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 4)] public string m_rgchCurrency; //char[4] } -[StructLayout(LayoutKind.Sequential)] public struct BroadcastUploadStop_t -{ - public EBroadcastUploadResult m_eResult; -} [StructLayout(LayoutKind.Sequential)] public struct GetVideoURLResult_t { public EResult m_eResult; @@ -12411,6 +12655,22 @@ public enum EParentalFeature public EResult m_eResult; public uint m_unVideoAppID; } +[StructLayout(LayoutKind.Sequential)] public struct SteamTVRegion_t +{ + public uint unMinX; + public uint unMinY; + public uint unMaxX; + public uint unMaxY; +} +[StructLayout(LayoutKind.Sequential)] public struct BroadcastUploadStart_t +{ + [MarshalAs(UnmanagedType.I1)] + public bool m_bIsRTMP; +} +[StructLayout(LayoutKind.Sequential)] public struct BroadcastUploadStop_t +{ + public EBroadcastUploadResult m_eResult; +} [StructLayout(LayoutKind.Sequential)] public struct GSClientApprove_t { public ulong m_SteamID; @@ -12531,6 +12791,7 @@ public const int k_iSteamUserStatsCallbacks = 1100; public const int k_iSteamNetworkingCallbacks = 1200; public const int k_iSteamNetworkingSocketsCallbacks = 1220; public const int k_iSteamNetworkingMessagesCallbacks = 1250; +public const int k_iSteamNetworkingUtilsCallbacks = 1280; public const int k_iClientRemoteStorageCallbacks = 1300; public const int k_iClientDepotBuilderCallbacks = 1400; public const int k_iSteamGameServerItemsCallbacks = 1500; @@ -12573,6 +12834,8 @@ public const int k_iClientShaderCallbacks = 5100; public const int k_iSteamGameSearchCallbacks = 5200; public const int k_iSteamPartiesCallbacks = 5300; public const int k_iClientPartiesCallbacks = 5400; +public const int k_iSteamSTARCallbacks = 5500; +public const int k_iClientSTARCallbacks = 5600; public const int k_cchPersonaNameMax = 128; public const int k_cwchPersonaNameMax = 32; public const int k_cchMaxRichPresenceKeys = 30; @@ -12583,6 +12846,7 @@ public const int k_cchLeaderboardNameMax = 128; public const int k_cLeaderboardDetailsMax = 64; public const ulong k_SteamItemInstanceIDInvalid = 0xffffffffffffffff; public const int k_SteamInventoryResultInvalid = -1; +public const int k_cchBroadcastGameDataMax = 8192; public static ISteamClient SteamClient() { return new CSteamClient(SteamAPIInterop.SteamClient()); @@ -12718,6 +12982,11 @@ public static ISteamVideo SteamVideo() return new CSteamVideo(SteamAPIInterop.SteamVideo()); } +public static ISteamTV SteamTV() +{ +return new CSteamTV(SteamAPIInterop.SteamTV()); +} + public static ISteamParentalSettings SteamParentalSettings() { return new CSteamParentalSettings(SteamAPIInterop.SteamParentalSettings()); diff --git a/public/steam/steamclientpublic.h b/public/steam/steamclientpublic.h index a03f172..deae334 100644 --- a/public/steam/steamclientpublic.h +++ b/public/steam/steamclientpublic.h @@ -301,6 +301,7 @@ enum EAppType k_EAppType_Music = 0x2000, // Music files k_EAppType_Series = 0x4000, // Container app for video series k_EAppType_Comic = 0x8000, // Comic Book + k_EAppType_Beta = 0x10000, // this is a beta version of a game k_EAppType_Shortcut = 0x40000000, // just a shortcut, client side only k_EAppType_DepotOnly = 0x80000000, // placeholder since depots and apps share the same namespace @@ -520,7 +521,8 @@ enum EVRHMDType k_eEVRHMDType_Oculus_DK1 = 21, // Oculus DK1 k_eEVRHMDType_Oculus_DK2 = 22, // Oculus DK2 - k_eEVRHMDType_Oculus_Rift = 23, // Oculus rift + k_eEVRHMDType_Oculus_Rift = 23, // Oculus Rift + k_eEVRHMDType_Oculus_RiftS = 24, // Oculus Rift S k_eEVRHMDType_Oculus_Unknown = 40, // // Oculus unknown HMD @@ -548,6 +550,9 @@ enum EVRHMDType k_eEVRHMDType_Huawei_VR2 = 121, // Huawei VR2 3DOF headset k_eEVRHMDType_Huawei_EndOfRange = 129, // end of Huawei HMD range + k_eEVRHmdType_Valve_Unknown = 130, // Valve Unknown HMD + k_eEVRHmdType_Valve_Index = 131, // Valve Index HMD + }; @@ -556,7 +561,7 @@ enum EVRHMDType //----------------------------------------------------------------------------- static inline bool BIsOculusHMD( EVRHMDType eType ) { - return eType == k_eEVRHMDType_Oculus_DK1 || eType == k_eEVRHMDType_Oculus_DK2 || eType == k_eEVRHMDType_Oculus_Rift || eType == k_eEVRHMDType_Oculus_Unknown; + return eType == k_eEVRHMDType_Oculus_DK1 || eType == k_eEVRHMDType_Oculus_DK2 || eType == k_eEVRHMDType_Oculus_Rift || eType == k_eEVRHMDType_Oculus_RiftS || eType == k_eEVRHMDType_Oculus_Unknown; } @@ -647,6 +652,31 @@ enum EMarketNotAllowedReasonFlags }; +// +// describes XP / progress restrictions to apply for games with duration control / +// anti-indulgence enabled for minor Steam China users. +// +enum EDurationControlProgress +{ + k_EDurationControlProgress_Full, // Full progress + k_EDurationControlProgress_Half, // XP or persistent rewards should be halved + k_EDurationControlProgress_None, // XP or persistent rewards should be stopped +}; + + +// +// describes which notification timer has expired, for steam china duration control feature +// +enum EDurationControlNotification +{ + k_EDurationControlNotification_None, // just informing you about progress, no notification to show + k_EDurationControlNotification_1Hour, // "you've been playing for an hour" + k_EDurationControlNotification_3Hours, // "you've been playing for 3 hours; take a break" + k_EDurationControlNotification_HalfProgress, // "your XP / progress is half normal" + k_EDurationControlNotification_NoProgress, // "your XP / progress is zero" +}; + + #pragma pack( push, 1 ) #define CSTEAMID_DEFINED diff --git a/public/steam/steamdatagram_ticketgen.h b/public/steam/steamdatagram_ticketgen.h deleted file mode 100644 index 5518a9d..0000000 --- a/public/steam/steamdatagram_ticketgen.h +++ /dev/null @@ -1,69 +0,0 @@ -//====== Copyright Valve Corporation, All rights reserved. ==================== -// -// Backend functions to generate authorization tickets for steam datagram -// -//============================================================================= - -#ifndef STEAMDATAGRAM_TICKETGEN_H -#define STEAMDATAGRAM_TICKETGEN_H -#ifdef _WIN32 -#pragma once -#endif - -// Import some common stuff that is useful by both the client -// and the backend ticket-generating authority. -#include "steamdatagram_tickets.h" - -#if defined( STEAMDATAGRAM_TICKETGEN_FOREXPORT ) - #define STEAMDATAGRAM_TICKET_INTERFACE DLL_EXPORT -#elif defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) - #define STEAMDATAGRAM_TICKET_INTERFACE extern "C" -#else - #define STEAMDATAGRAM_TICKET_INTERFACE DLL_IMPORT -#endif - -struct SteamDatagramSignedTicketBlob -{ - int m_sz; - uint8 m_blob[ k_cbSteamDatagramMaxSerializedTicket ]; -}; - -/// Initialize ticket generation with an Ed25519 private key. -/// See: https://ed25519.cr.yp.to/ -/// -/// Input buffer will be securely wiped. -/// -/// You can generate an Ed25519 key using OpenSSH: ssh-keygen -t ed25519 -/// Or with our cert tool: steamnetworkingsockets_certtool gen_keypair -/// -/// The private key should be a PEM-like block of text -/// ("-----BEGIN OPENSSH PRIVATE KEY-----"). -/// Private keys encrypted with a password are not supported. -/// -/// In order for signatures using this key to be accepted by the relay network, -/// you need to send your public key to Valve. This key should be on a single line -/// of text that begins with "ssh-ed25519". (The format used in the .ssh/authorized_keys -/// file.) -STEAMDATAGRAM_TICKET_INTERFACE bool SteamDatagram_InitTicketGenerator_Ed25519( void *pvPrivateKey, size_t cbPrivateKey ); - -/// Serialize the specified auth ticket and attach a signature. -/// Returns false if you did something stupid like forgot to load a key. -/// Will also fail if your ticket is too big. (Probably because you -/// added too many extra fields.) -/// -/// The resulting blob should be sent to the client, who will put it in -/// their ticket cache using ISteamNetworkingSockets::ReceivedRelayAuthTicket -STEAMDATAGRAM_TICKET_INTERFACE bool SteamDatagram_SerializeAndSignTicket( const SteamDatagramRelayAuthTicket &ticket, SteamDatagramSignedTicketBlob &outBlob, SteamNetworkingErrMsg &errMsg ); - -// -// Some ping-related tools that don't have anything to do with tickets. -// But it's something that a backend might find useful, so we're putting it in this library for now. -// - -/// Parse location string. Returns true on success -STEAMDATAGRAM_TICKET_INTERFACE bool SteamDatagram_ParsePingLocation( const char *pszString, SteamNetworkPingLocation_t &outLocation ); - -/// Estimate ping time between two locations. -STEAMDATAGRAM_TICKET_INTERFACE int SteamDatagram_EstimatePingBetweenTwoLocations( const SteamNetworkPingLocation_t &location1, const SteamNetworkPingLocation_t &location2 ); - -#endif // STEAMDATAGRAM_TICKETGEN_H diff --git a/public/steam/steamdatagram_tickets.h b/public/steam/steamdatagram_tickets.h index a72e517..2c40f90 100644 --- a/public/steam/steamdatagram_tickets.h +++ b/public/steam/steamdatagram_tickets.h @@ -36,7 +36,6 @@ const size_t k_cbSteamDatagramMaxSerializedTicket = 512; /// to the intended destination, but otherwise clients really should not /// need to know what's inside. (Indeed, we don't really want them to /// know, as it could reveal information useful to an attacker.) -#ifndef IS_STEAMDATAGRAMROUTER struct SteamDatagramHostedAddress { @@ -73,7 +72,7 @@ struct SteamDatagramHostedAddress /// Convert to/from std::string (or anything that acts like it). /// Useful for interfacing with google protobuf. It's a template /// mainly so that we don't have to include in the header. - /// Note: by "string", we don't mean that it's text. Ut's a binary + /// Note: by "string", we don't mean that it's text. It's a binary /// blob, and it might have zeros in it. (std::string can handle that.) template bool SetFromStdString( const T &str ) { @@ -90,9 +89,7 @@ struct SteamDatagramHostedAddress { str->assign( m_data, m_cbSize ); } - }; -#endif /// Ticket used to gain access to the relay network. struct SteamDatagramRelayAuthTicket @@ -228,7 +225,7 @@ private: if ( m_nExtraFields >= k_nMaxExtraFields ) { assert( false ); - return nullptr; + return NULL; } ExtraField *p = &m_vecExtraFields[ m_nExtraFields++ ]; p->m_eType = eType; @@ -244,4 +241,46 @@ private: #pragma pack(pop) +/// Max size of user data blob +const size_t k_cbMaxSteamDatagramGameCoordinatorServerLoginAppData = 2048; + +/// Max size of serialized data blob +const size_t k_cbMaxSteamDatagramGameCoordinatorServerLoginSerialized = 4096; + +/// Structure that describes a gameserver attempting to authenticate +/// with your central server allocator / matchmaking service ("game coordinator"). +/// This is useful because the game coordinator needs to know: +/// +/// - What data center is the gameserver running in? +/// - The routing blob of the gameserver +/// - Is the gameserver actually trusted? +/// +/// Using this structure, you can securely communicate this information +/// to your server, and you can do this WITHOUT maintaining any +/// whitelists or tables of IP addresses. +/// +/// See ISteamNetworkingSockets::GetGameCoordinatorServerLogin +struct SteamDatagramGameCoordinatorServerLogin +{ + /// Server's identity + SteamNetworkingIdentity m_identity; + + /// Routing info. Note that this includes the POPID + SteamDatagramHostedAddress m_routing; + + /// AppID that the server thinks it is running + AppId_t m_nAppID; + + /// Unix timestamp when this was generated + RTime32 m_rtime; + + /// Size of application data + int m_cbAppData; + + /// Application data. This is any additional information + /// that you need to identify the server not contained above. + /// (E.g. perhaps a public IP as seen by the coordinator service.) + char m_appData[ k_cbMaxSteamDatagramGameCoordinatorServerLoginAppData ]; +}; + #endif // STEAMDATAGRAM_TICKETS_H diff --git a/public/steam/steamencryptedappticket.h b/public/steam/steamencryptedappticket.h index 48c63b4..bedc07b 100644 --- a/public/steam/steamencryptedappticket.h +++ b/public/steam/steamencryptedappticket.h @@ -29,4 +29,6 @@ S_API bool SteamEncryptedAppTicket_BUserOwnsAppInTicket( uint8 *rgubTicketDecryp S_API bool SteamEncryptedAppTicket_BUserIsVacBanned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted ); -S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); \ No newline at end of file +S_API const uint8 *SteamEncryptedAppTicket_GetUserVariableData( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, uint32 *pcubUserData ); + +S_API bool SteamEncryptedAppTicket_BIsTicketSigned( uint8 *rgubTicketDecrypted, uint32 cubTicketDecrypted, const uint8 *pubRSAKey, uint32 cubRSAKey ); diff --git a/public/steam/steamnetworkingtypes.h b/public/steam/steamnetworkingtypes.h index f244c64..f41a857 100644 --- a/public/steam/steamnetworkingtypes.h +++ b/public/steam/steamnetworkingtypes.h @@ -19,8 +19,10 @@ #ifdef STEAMNETWORKINGSOCKETS_STATIC_LINK #define STEAMNETWORKINGSOCKETS_INTERFACE extern #endif +#define STEAMNETWORKINGSOCKETS_STEAMCLIENT #define STEAMNETWORKINGSOCKETS_ENABLE_SDR -#include +#define STEAMNETWORKINGSOCKETS_ENABLE_P2P +#include "steam_api_common.h" // //---------------------------------------- @@ -35,7 +37,10 @@ struct SteamDatagramRelayAuthTicket; struct SteamDatagramHostedAddress; +struct SteamDatagramGameCoordinatorServerLogin; struct SteamNetConnectionStatusChangedCallback_t; +struct SteamNetAuthenticationStatus_t; +struct SteamRelayNetworkStatus_t; /// Handle used to identify a connection to a remote host. typedef uint32 HSteamNetConnection; @@ -63,6 +68,33 @@ typedef uint32 SteamNetworkingPOPID; /// microsecond *resolution*. typedef int64 SteamNetworkingMicroseconds; +/// Describe the status of a particular network resource +enum ESteamNetworkingAvailability +{ + // Negative values indicate a problem. + // + // In general, we will not automatically retry unless you take some action that + // depends on of requests this resource, such as querying the status, attempting + // to initiate a connection, receive a connection, etc. If you do not take any + // action at all, we do not automatically retry in the background. + k_ESteamNetworkingAvailability_CannotTry = -102, // A dependent resource is missing, so this service is unavailable. (E.g. we cannot talk to routers because Internet is down or we don't have the network config.) + k_ESteamNetworkingAvailability_Failed = -101, // We have tried for enough time that we would expect to have been successful by now. We have never been successful + k_ESteamNetworkingAvailability_Previously = -100, // We tried and were successful at one time, but now it looks like we have a problem + + k_ESteamNetworkingAvailability_Retrying = -10, // We previously failed and are currently retrying + + // Not a problem, but not ready either + k_ESteamNetworkingAvailability_NeverTried = 1, // We don't know because we haven't ever checked/tried + k_ESteamNetworkingAvailability_Waiting = 2, // We're waiting on a dependent resource to be acquired. (E.g. we cannot obtain a cert until we are logged into Steam. We cannot measure latency to relays until we have the network config.) + k_ESteamNetworkingAvailability_Attempting = 3, // We're actively trying now, but are not yet successful. + + k_ESteamNetworkingAvailability_Current = 100, // Resource is online/available + + + k_ESteamNetworkingAvailability_Unknown = 0, // Internal dummy/sentinel, or value is not applicable in this context + k_ESteamNetworkingAvailability__Force32bit = 0x7fffffff, +}; + // // Describing network hosts // @@ -70,15 +102,16 @@ typedef int64 SteamNetworkingMicroseconds; /// Different methods of describing the identity of a network host enum ESteamNetworkingIdentityType { - // Dummy/unknown/invalid + // Dummy/empty/invalid. + // Plese note that if we parse a string that we don't recognize + // but that appears reasonable, we will NOT use this type. Instead + // we'll use k_ESteamNetworkingIdentityType_UnknownType. k_ESteamNetworkingIdentityType_Invalid = 0, // // Basic platform-specific identifiers. // k_ESteamNetworkingIdentityType_SteamID = 16, // 64-bit CSteamID - k_ESteamNetworkingIdentityType_XboxPairwiseID = 17, // Publisher-specific user identity, as string - //k_ESteamNetworkingIdentityType_PlaystationSomething = 18, // // Special identifiers. @@ -103,6 +136,13 @@ enum ESteamNetworkingIdentityType k_ESteamNetworkingIdentityType_GenericString = 2, k_ESteamNetworkingIdentityType_GenericBytes = 3, + // This identity type is used when we parse a string that looks like is a + // valid identity, just of a kind that we don't recognize. In this case, we + // can often still communicate with the peer! Allowing such identities + // for types we do not recognize useful is very useful for forward + // compatibility. + k_ESteamNetworkingIdentityType_UnknownType = 4, + // Make sure this enum is stored in an int. k_ESteamNetworkingIdentityType__Force32bit = 0x7fffffff, }; @@ -173,9 +213,6 @@ struct SteamNetworkingIdentity void SetSteamID64( uint64 steamID ); // Takes SteamID as raw 64-bit number uint64 GetSteamID64() const; // Returns 0 if identity is not SteamID - bool SetXboxPairwiseID( const char *pszString ); // Returns false if invalid length - const char *GetXboxPairwiseID() const; // Returns nullptr if not Xbox ID - void SetIPAddr( const SteamNetworkingIPAddr &addr ); // Set to specified IP:port const SteamNetworkingIPAddr *GetIPAddr() const; // returns null if we are not an IP address. @@ -206,7 +243,6 @@ struct SteamNetworkingIdentity enum { k_cchMaxString = 128, // Max length of the buffer needed to hold any identity, formatted in string format by ToString k_cchMaxGenericString = 32, // Max length of the string for generic string identities. Including terminating '\0' - k_cchMaxXboxPairwiseID = 32, // Including terminating '\0' k_cbMaxGenericBytes = 32, }; @@ -220,8 +256,8 @@ struct SteamNetworkingIdentity union { uint64 m_steamID64; char m_szGenericString[ k_cchMaxGenericString ]; - char m_szXboxPairwiseID[ k_cchMaxXboxPairwiseID ]; uint8 m_genericBytes[ k_cbMaxGenericBytes ]; + char m_szUnknownRawString[ k_cchMaxString ]; SteamNetworkingIPAddr m_ip; uint32 m_reserved[ 32 ]; // Pad structure to leave easy room for future expansion }; @@ -926,6 +962,15 @@ enum ESteamNetworkingConfigValue /// (You can examine the incoming connection and decide whether to accept it.) k_ESteamNetworkingConfig_IP_AllowWithoutAuth = 23, + /// [connection int32] Do not send UDP packets with a payload of + /// larger than N bytes. If you set this, k_ESteamNetworkingConfig_MTU_DataSize + /// is automatically adjusted + k_ESteamNetworkingConfig_MTU_PacketSize = 32, + + /// [connection int32] (read only) Maximum message size you can send that + /// will not fragment, based on k_ESteamNetworkingConfig_MTU_PacketSize + k_ESteamNetworkingConfig_MTU_DataSize = 33, + // // Settings for SDR relayed connections // @@ -1059,6 +1104,9 @@ inline void GetSteamNetworkingLocationPOPStringFromID( SteamNetworkingPOPID id, szCode[4] = 0; } +/// The POPID "dev" is used in non-production environments for testing. +const SteamNetworkingPOPID k_SteamDatagramPOPID_dev = ( (uint32)'d' << 16U ) | ( (uint32)'e' << 8U ) | (uint32)'v'; + /////////////////////////////////////////////////////////////////////////////// // // Internal stuff @@ -1083,24 +1131,21 @@ inline void SteamNetworkingIdentity::SetSteamID( CSteamID steamID ) { SetSteamID inline CSteamID SteamNetworkingIdentity::GetSteamID() const { return CSteamID( GetSteamID64() ); } inline void SteamNetworkingIdentity::SetSteamID64( uint64 steamID ) { m_eType = k_ESteamNetworkingIdentityType_SteamID; m_cbSize = sizeof( m_steamID64 ); m_steamID64 = steamID; } inline uint64 SteamNetworkingIdentity::GetSteamID64() const { return m_eType == k_ESteamNetworkingIdentityType_SteamID ? m_steamID64 : 0; } -inline bool SteamNetworkingIdentity::SetXboxPairwiseID( const char *pszString ) { size_t l = strlen( pszString ); if ( l < 1 || l >= sizeof(m_szXboxPairwiseID) ) return false; - m_eType = k_ESteamNetworkingIdentityType_XboxPairwiseID; m_cbSize = int(l+1); memcpy( m_szXboxPairwiseID, pszString, m_cbSize ); return true; } -inline const char *SteamNetworkingIdentity::GetXboxPairwiseID() const { return m_eType == k_ESteamNetworkingIdentityType_XboxPairwiseID ? m_szXboxPairwiseID : nullptr; } inline void SteamNetworkingIdentity::SetIPAddr( const SteamNetworkingIPAddr &addr ) { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip = addr; } -inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : nullptr; } +inline const SteamNetworkingIPAddr *SteamNetworkingIdentity::GetIPAddr() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress ? &m_ip : NULL; } inline void SteamNetworkingIdentity::SetLocalHost() { m_eType = k_ESteamNetworkingIdentityType_IPAddress; m_cbSize = (int)sizeof(m_ip); m_ip.SetIPv6LocalHost(); } inline bool SteamNetworkingIdentity::IsLocalHost() const { return m_eType == k_ESteamNetworkingIdentityType_IPAddress && m_ip.IsLocalHost(); } inline bool SteamNetworkingIdentity::SetGenericString( const char *pszString ) { size_t l = strlen( pszString ); if ( l >= sizeof(m_szGenericString) ) return false; m_eType = k_ESteamNetworkingIdentityType_GenericString; m_cbSize = int(l+1); memcpy( m_szGenericString, pszString, m_cbSize ); return true; } -inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : nullptr; } +inline const char *SteamNetworkingIdentity::GetGenericString() const { return m_eType == k_ESteamNetworkingIdentityType_GenericString ? m_szGenericString : NULL; } inline bool SteamNetworkingIdentity::SetGenericBytes( const void *data, size_t cbLen ) { if ( cbLen > sizeof(m_genericBytes) ) return false; m_eType = k_ESteamNetworkingIdentityType_GenericBytes; m_cbSize = int(cbLen); memcpy( m_genericBytes, data, m_cbSize ); return true; } -inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return nullptr; +inline const uint8 *SteamNetworkingIdentity::GetGenericBytes( int &cbLen ) const { if ( m_eType != k_ESteamNetworkingIdentityType_GenericBytes ) return NULL; cbLen = m_cbSize; return m_genericBytes; } inline bool SteamNetworkingIdentity::operator==(const SteamNetworkingIdentity &x ) const { return m_eType == x.m_eType && m_cbSize == x.m_cbSize && memcmp( m_genericBytes, x.m_genericBytes, m_cbSize ) == 0; } inline void SteamNetworkingMessage_t::Release() { (*m_pfnRelease)( this ); } -#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || !defined( STEAMNETWORKINGSOCKETS_STEAM ) +#if defined( STEAMNETWORKINGSOCKETS_STATIC_LINK ) || !defined( STEAMNETWORKINGSOCKETS_STEAMCLIENT ) STEAMNETWORKINGSOCKETS_INTERFACE void SteamAPI_SteamNetworkingIPAddr_ToString( const SteamNetworkingIPAddr *pAddr, char *buf, size_t cbBuf, bool bWithPort ); STEAMNETWORKINGSOCKETS_INTERFACE bool SteamAPI_SteamNetworkingIPAddr_ParseString( SteamNetworkingIPAddr *pAddr, const char *pszStr ); STEAMNETWORKINGSOCKETS_INTERFACE void SteamAPI_SteamNetworkingIdentity_ToString( const SteamNetworkingIdentity &identity, char *buf, size_t cbBuf ); diff --git a/public/steam/steamtypes.h b/public/steam/steamtypes.h index 72d2d17..0660f68 100644 --- a/public/steam/steamtypes.h +++ b/public/steam/steamtypes.h @@ -130,7 +130,6 @@ const JobID_t k_JobIDNil = 0xffffffffffffffffull; // this is baked into client messages and interfaces as an int, // make sure we never break this. typedef uint32 PackageId_t; -const PackageId_t k_uPackageIdFreeSub = 0x0; const PackageId_t k_uPackageIdInvalid = 0xFFFFFFFF; typedef uint32 BundleId_t; diff --git a/redistributable_bin/linux32/libsteam_api.so b/redistributable_bin/linux32/libsteam_api.so index 348a107..6086386 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 eb230a9..f0a6157 100644 Binary files a/redistributable_bin/linux64/libsteam_api.so and b/redistributable_bin/linux64/libsteam_api.so differ diff --git a/redistributable_bin/osx/libsteam_api.dylib b/redistributable_bin/osx/libsteam_api.dylib new file mode 100644 index 0000000..4a06775 Binary files /dev/null and b/redistributable_bin/osx/libsteam_api.dylib differ diff --git a/redistributable_bin/osx32/libsteam_api.dylib b/redistributable_bin/osx32/libsteam_api.dylib deleted file mode 100644 index ce8dc57..0000000 Binary files a/redistributable_bin/osx32/libsteam_api.dylib and /dev/null differ diff --git a/redistributable_bin/steam_api.dll b/redistributable_bin/steam_api.dll index 060b6b9..30d3c91 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 07bf145..22a2ad0 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 328dade..0dcc965 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 6370681..f36eebf 100644 Binary files a/redistributable_bin/win64/steam_api64.lib and b/redistributable_bin/win64/steam_api64.lib differ diff --git a/steamworksexample/Inventory.h b/steamworksexample/Inventory.h index 4f4f933..b09dcb9 100644 --- a/steamworksexample/Inventory.h +++ b/steamworksexample/Inventory.h @@ -11,6 +11,7 @@ #include "SpaceWar.h" #include "GameEngine.h" #include +#include class CSpaceWarItem; diff --git a/steamworksexample/steamworksexample.xcodeproj/project.pbxproj b/steamworksexample/steamworksexample.xcodeproj/project.pbxproj index 27115c3..b50f47c 100644 --- a/steamworksexample/steamworksexample.xcodeproj/project.pbxproj +++ b/steamworksexample/steamworksexample.xcodeproj/project.pbxproj @@ -126,7 +126,7 @@ 503C6D0E1268F49F00B66E3B /* voicechat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = voicechat.h; sourceTree = ""; }; 503C6DAA1268FE1000B66E3B /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = System/Library/Frameworks/OpenAL.framework; sourceTree = SDKROOT; }; 503C6DAB1268FE1000B66E3B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; - 503C6DB31269002800B66E3B /* libsteam_api.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsteam_api.dylib; path = ../redistributable_bin/osx32/libsteam_api.dylib; sourceTree = ""; }; + 503C6DB31269002800B66E3B /* libsteam_api.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libsteam_api.dylib; path = ../redistributable_bin/osx/libsteam_api.dylib; sourceTree = ""; }; 504EDCB4126900D600F96D63 /* steamworksexample-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "steamworksexample-Info.plist"; path = "osx/steamworksexample-Info.plist"; sourceTree = ""; }; 504EDCC01269025A00F96D63 /* steam_appid.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = steam_appid.txt; path = osx/steam_appid.txt; sourceTree = ""; }; 50D642851461EF3200A5739B /* clanchatroom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = clanchatroom.cpp; sourceTree = ""; }; @@ -488,6 +488,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; COPY_PHASE_STRIP = NO; GCC_C_LANGUAGE_STANDARD = gnu99; GCC_DYNAMIC_NO_PIC = NO; @@ -499,7 +500,9 @@ LIBRARY_SEARCH_PATHS = ( ../lib/osx32/release, "\"$(SRCROOT)/../lib/osx32/release\"", - ../redistributable_bin/osx32/, + ../lib/osx/release, + "\"$(SRCROOT)/../lib/osx/release\"", + ../redistributable_bin/osx/, ); MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = steamworksexample; @@ -513,6 +516,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_C_LANGUAGE_STANDARD = gnu99; @@ -525,7 +529,9 @@ LIBRARY_SEARCH_PATHS = ( ../lib/osx32/debug, "\"$(SRCROOT)/../lib/osx32/release\"", - ../redistributable_bin/osx32/, + ../lib/osx/debug, + "\"$(SRCROOT)/../lib/osx/release\"", + ../redistributable_bin/osx/, ); MACOSX_DEPLOYMENT_TARGET = 10.6; PRODUCT_NAME = steamworksexample; diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Breakpad b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Breakpad deleted file mode 100644 index 9fd8b92..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Breakpad +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Breakpad diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Headers b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Headers deleted file mode 100644 index 5bbdca6..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Headers +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Headers diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Resources b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Resources deleted file mode 100644 index 6e50ab9..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Resources +++ /dev/null @@ -1 +0,0 @@ -Versions/Current/Resources diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Breakpad b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Breakpad deleted file mode 100644 index 5159262..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Breakpad and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Headers/Breakpad.h b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Headers/Breakpad.h deleted file mode 100644 index b9c3b78..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Headers/Breakpad.h +++ /dev/null @@ -1,282 +0,0 @@ -// Copyright (c) 2006, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -// -// Framework to provide a simple C API to crash reporting for -// applications. By default, if any machine-level exception (e.g., -// EXC_BAD_ACCESS) occurs, it will be handled by the BreakpadRef -// object as follows: -// -// 1. Create a minidump file (see Breakpad for details) -// 2. Prompt the user (using CFUserNotification) -// 3. Invoke a command line reporting tool to send the minidump to a -// server -// -// By specifying parameters to the BreakpadCreate function, you can -// modify the default behavior to suit your needs and wants and -// desires. - -// A service name associated with the original bootstrap parent port, saved in -// OnDemandServer and restored in Inspector. -#define BREAKPAD_BOOTSTRAP_PARENT_PORT "com.Breakpad.BootstrapParent" - -typedef void *BreakpadRef; - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -#include "BreakpadDefines.h" - -// Optional user-defined function to dec to decide if we should handle -// this crash or forward it along. -// Return true if you want Breakpad to handle it. -// Return false if you want Breakpad to skip it -// The exception handler always returns false, as if SEND_AND_EXIT were false -// (which means the next exception handler will take the exception) -typedef bool (*BreakpadFilterCallback)(int exception_type, - int exception_code, - mach_port_t crashing_thread, - void *context); - -// Create a new BreakpadRef object and install it as an exception -// handler. The |parameters| will typically be the contents of your -// bundle's Info.plist. -// -// You can also specify these additional keys for customizable behavior: -// Key: Value: -// BREAKPAD_PRODUCT Product name (e.g., "MyAwesomeProduct") -// This one is used as the key to identify -// the product when uploading. Falls back to -// CFBundleName if not specified. -// REQUIRED -// -// BREAKPAD_PRODUCT_DISPLAY This is the display name, e.g. a pretty -// name for the product when the crash_sender -// pops up UI for the user. Falls back first to -// CFBundleDisplayName and then to -// BREAKPAD_PRODUCT if not specified. -// -// BREAKPAD_VERSION Product version (e.g., 1.2.3), used -// as metadata for crash report. Falls back to -// CFBundleVersion if not specified. -// REQUIRED -// -// BREAKPAD_VENDOR Vendor name, used in UI (e.g. "A report has -// been created that you can send to ") -// -// BREAKPAD_URL URL destination for reporting -// REQUIRED -// -// BREAKPAD_REPORT_INTERVAL # of seconds between sending -// reports. If an additional report is -// generated within this time, it will -// be ignored. Default: 3600sec. -// Specify 0 to send all reports. -// -// BREAKPAD_SKIP_CONFIRM If true, the reporter will send the report -// without any user intervention. -// Defaults to NO -// -// BREAKPAD_CONFIRM_TIMEOUT Number of seconds before the upload -// confirmation dialog will be automatically -// dismissed (cancelling the upload). -// Default: 300 seconds (min of 60). -// Specify 0 to prevent timeout. -// -// BREAKPAD_SEND_AND_EXIT If true, the handler will exit after sending. -// This will prevent any other handler (e.g., -// CrashReporter) from getting the crash. -// Defaults TO YES -// -// BREAKPAD_DUMP_DIRECTORY The directory to store crash-dumps -// in. By default, we use -// ~/Library/Breakpad/ -// The path you specify here is tilde-expanded. -// -// BREAKPAD_INSPECTOR_LOCATION The full path to the Inspector executable. -// Defaults to /Inspector -// -// BREAKPAD_REPORTER_EXE_LOCATION The full path to the Reporter/sender -// executable. -// Default: -// /crash_report_sender.app -// -// BREAKPAD_LOGFILES Indicates an array of log file paths that -// should be uploaded at crash time. -// -// BREAKPAD_REQUEST_COMMENTS If true, the message dialog will have a -// text box for the user to enter comments. -// Default: NO -// -// BREAKPAD_REQUEST_EMAIL If true and BREAKPAD_REQUEST_COMMENTS is also -// true, the message dialog will have a text -// box for the user to enter their email address. -// Default: NO -// -// BREAKPAD_SERVER_TYPE A parameter that tells Breakpad how to -// rewrite the upload parameters for a specific -// server type. The currently valid values are -// 'socorro' or 'google'. If you want to add -// other types, see the function in -// crash_report_sender.m that maps parameters to -// URL parameters. Defaults to 'google'. -// -// BREAKPAD_SERVER_PARAMETER_DICT A plist dictionary of static -// parameters that are uploaded to the -// server. The parameters are sent as -// is to the crash server. Their -// content isn't added to the minidump -// but pass as URL parameters when -// uploading theminidump to the crash -// server. -//============================================================================= -// The BREAKPAD_PRODUCT, BREAKPAD_VERSION and BREAKPAD_URL are -// required to have non-NULL values. By default, the BREAKPAD_PRODUCT -// will be the CFBundleName and the BREAKPAD_VERSION will be the -// CFBundleVersion when these keys are present in the bundle's -// Info.plist, which is usually passed in to BreakpadCreate() as an -// NSDictionary (you could also pass in another dictionary that had -// the same keys configured). If the BREAKPAD_PRODUCT or -// BREAKPAD_VERSION are ultimately undefined, BreakpadCreate() will -// fail. You have been warned. -// -// If you are running in a debugger, Breakpad will not install, unless the -// BREAKPAD_IGNORE_DEBUGGER envionment variable is set and/or non-zero. -// -// The BREAKPAD_SKIP_CONFIRM and BREAKPAD_SEND_AND_EXIT default -// values are NO and YES. However, they can be controlled by setting their -// values in a user or global plist. -// -// It's easiest to use Breakpad via the Framework, but if you're compiling the -// code in directly, BREAKPAD_INSPECTOR_LOCATION and -// BREAKPAD_REPORTER_EXE_LOCATION allow you to specify custom paths -// to the helper executables. -// -//============================================================================= -// The following are NOT user-supplied but are documented here for -// completeness. They are calculated by Breakpad during initialization & -// crash-dump generation, or entered in by the user. -// -// BREAKPAD_PROCESS_START_TIME The time, in seconds since the Epoch, the -// process started -// -// BREAKPAD_PROCESS_CRASH_TIME The time, in seconds since the Epoch, the -// process crashed. -// -// BREAKPAD_PROCESS_UP_TIME The total time in milliseconds the process -// has been running. This parameter is not -// set until the crash-dump-generation phase. -// -// BREAKPAD_LOGFILE_KEY_PREFIX Used to find out which parameters in the -// parameter dictionary correspond to log -// file paths. -// -// BREAKPAD_SERVER_PARAMETER_PREFIX This prefix is used by Breakpad -// internally, because Breakpad uses -// the same dictionary internally to -// track both its internal -// configuration parameters and -// parameters meant to be uploaded -// to the server. This string is -// used internally by Breakpad to -// prefix user-supplied parameter -// names so those can be sent to the -// server without leaking Breakpad's -// internal values. -// -// BREAKPAD_ON_DEMAND Used internally to indicate to the -// Reporter that we're sending on-demand, -// not as result of a crash. -// -// BREAKPAD_COMMENTS The text the user provided as comments. -// Only used in crash_report_sender. - -// Returns a new BreakpadRef object on success, NULL otherwise. -BreakpadRef BreakpadCreate(NSDictionary *parameters); - -// Uninstall and release the data associated with |ref|. -void BreakpadRelease(BreakpadRef ref); - -// Clients may set an optional callback which gets called when a crash -// occurs. The callback function should return |true| if we should -// handle the crash, generate a crash report, etc. or |false| if we -// should ignore it and forward the crash (normally to CrashReporter). -// Context is a pointer to arbitrary data to make the callback with. -void BreakpadSetFilterCallback(BreakpadRef ref, - BreakpadFilterCallback callback, - void *context); - -// User defined key and value string storage. Generally this is used -// to configure Breakpad's internal operation, such as whether the -// crash_sender should prompt the user, or the filesystem location for -// the minidump file. See Breakpad.h for some parameters that can be -// set. Anything longer than 255 bytes will be truncated. Note that -// the string is converted to UTF8 before truncation, so any multibyte -// character that straddles the 255(256 - 1 for terminator) byte limit -// will be mangled. -// -// A maximum number of 64 key/value pairs are supported. An assert() -// will fire if more than this number are set. Unfortunately, right -// now, the same dictionary is used for both Breakpad's parameters AND -// the Upload parameters. -// -// TODO (nealsid): Investigate how necessary this is if we don't -// automatically upload parameters to the server anymore. -// TODO (nealsid): separate server parameter dictionary from the -// dictionary used to configure Breakpad, and document limits for each -// independently. -void BreakpadSetKeyValue(BreakpadRef ref, NSString *key, NSString *value); -NSString *BreakpadKeyValue(BreakpadRef ref, NSString *key); -void BreakpadRemoveKeyValue(BreakpadRef ref, NSString *key); - -// You can use this method to specify parameters that will be uploaded -// to the crash server. They will be automatically encoded as -// necessary. Note that as mentioned above there are limits on both -// the number of keys and their length. -void BreakpadAddUploadParameter(BreakpadRef ref, NSString *key, - NSString *value); - -// This method will remove a previously-added parameter from the -// upload parameter set. -void BreakpadRemoveUploadParameter(BreakpadRef ref, NSString *key); - -// Add a log file for Breakpad to read and send upon crash dump -void BreakpadAddLogFile(BreakpadRef ref, NSString *logPathname); - -// Generate a minidump and send -void BreakpadGenerateAndSendReport(BreakpadRef ref); - -void BreakpadSetComment( BreakpadRef ref, char const *pchComment ); - -#ifdef __cplusplus -} -#endif diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Headers/BreakpadDefines.h b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Headers/BreakpadDefines.h deleted file mode 100644 index 8986cd1..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Headers/BreakpadDefines.h +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) 2011, Google Inc. -// All rights reserved. -// -// Redistribution and use in source and binary forms, with or without -// modification, are permitted provided that the following conditions are -// met: -// -// * Redistributions of source code must retain the above copyright -// notice, this list of conditions and the following disclaimer. -// * Redistributions in binary form must reproduce the above -// copyright notice, this list of conditions and the following disclaimer -// in the documentation and/or other materials provided with the -// distribution. -// * Neither the name of Google Inc. nor the names of its -// contributors may be used to endorse or promote products derived from -// this software without specific prior written permission. -// -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -// Keys for configuration file -#define kReporterMinidumpDirectoryKey "MinidumpDir" -#define kReporterMinidumpIDKey "MinidumpID" - -// Filename for recording uploaded IDs -#define kReporterLogFilename "uploads.log" - -// The default subdirectory of the Library to put crash dumps in -// The subdirectory is -// ~/Library// -#define kDefaultLibrarySubdirectory "Breakpad" - -// Specify some special keys to be used in the configuration file that is -// generated by Breakpad and consumed by the crash_sender. -#define BREAKPAD_PRODUCT "BreakpadProduct" -#define BREAKPAD_PRODUCT_DISPLAY "BreakpadProductDisplay" -#define BREAKPAD_VERSION "BreakpadVersion" -#define BREAKPAD_VENDOR "BreakpadVendor" -#define BREAKPAD_URL "BreakpadURL" -#define BREAKPAD_REPORT_INTERVAL "BreakpadReportInterval" -#define BREAKPAD_SKIP_CONFIRM "BreakpadSkipConfirm" -#define BREAKPAD_CONFIRM_TIMEOUT "BreakpadConfirmTimeout" -#define BREAKPAD_SEND_AND_EXIT "BreakpadSendAndExit" -#define BREAKPAD_DUMP_DIRECTORY "BreakpadMinidumpLocation" -#define BREAKPAD_INSPECTOR_LOCATION "BreakpadInspectorLocation" -#define BREAKPAD_REPORTER_EXE_LOCATION \ - "BreakpadReporterExeLocation" -#define BREAKPAD_LOGFILES "BreakpadLogFiles" -#define BREAKPAD_LOGFILE_UPLOAD_SIZE "BreakpadLogFileTailSize" -#define BREAKPAD_REQUEST_COMMENTS "BreakpadRequestComments" -#define BREAKPAD_COMMENTS "BreakpadComments" -#define BREAKPAD_REQUEST_EMAIL "BreakpadRequestEmail" -#define BREAKPAD_EMAIL "BreakpadEmail" -#define BREAKPAD_SERVER_TYPE "BreakpadServerType" -#define BREAKPAD_SERVER_PARAMETER_DICT "BreakpadServerParameters" - -// The keys below are NOT user supplied, and are used internally. -#define BREAKPAD_PROCESS_START_TIME "BreakpadProcStartTime" -#define BREAKPAD_PROCESS_UP_TIME "BreakpadProcessUpTime" -#define BREAKPAD_PROCESS_CRASH_TIME "BreakpadProcessCrashTime" -#define BREAKPAD_LOGFILE_KEY_PREFIX "BreakpadAppLogFile" -#define BREAKPAD_SERVER_PARAMETER_PREFIX "BreakpadServerParameterPrefix_" -#define BREAKPAD_ON_DEMAND "BreakpadOnDemand" diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/Info.plist b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/Info.plist deleted file mode 100644 index 1113206..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/Info.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - BuildMachineOSBuild - 11G63 - CFBundleDevelopmentRegion - English - CFBundleExecutable - Breakpad - CFBundleIdentifier - com.googlecode.google-breakpad - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - Breakpad - CFBundlePackageType - FMWK - CFBundleSignature - ???? - CFBundleVersion - 1.0 - DTCompiler - com.apple.compilers.llvm.clang.1_0.compiler - DTPlatformBuild - 4E3002 - DTPlatformVersion - GM - DTSDKBuild - 10K549 - DTSDKName - macosx10.6 - DTXcode - 0433 - DTXcodeBuild - 4E3002 - - diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/Inspector b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/Inspector deleted file mode 100644 index e4d6ca5..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/Inspector and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/breakpadUtilities.dylib b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/breakpadUtilities.dylib deleted file mode 100644 index ba6037a..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/breakpadUtilities.dylib and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Info.plist b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Info.plist deleted file mode 100644 index f802b01..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Info.plist +++ /dev/null @@ -1,48 +0,0 @@ - - - - - BuildMachineOSBuild - 11G63 - CFBundleDevelopmentRegion - English - CFBundleDisplayName - crash_report_sender - CFBundleExecutable - crash_report_sender - CFBundleIconFile - crash_report_sender - CFBundleIdentifier - com.Breakpad.crash_report_sender - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - crash_report_sender - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - DTCompiler - com.apple.compilers.llvm.clang.1_0.compiler - DTPlatformBuild - 4E3002 - DTPlatformVersion - GM - DTSDKBuild - 10K549 - DTSDKName - macosx10.6 - DTXcode - 0433 - DTXcodeBuild - 4E3002 - LSHasLocalizedDisplayName - - NSMainNibFile - MainMenu - NSPrincipalClass - NSApplication - - diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/MacOS/crash_report_sender b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/MacOS/crash_report_sender deleted file mode 100644 index 14abcbf..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/MacOS/crash_report_sender and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/PkgInfo b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/PkgInfo deleted file mode 100644 index bd04210..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/PkgInfo +++ /dev/null @@ -1 +0,0 @@ -APPL???? \ No newline at end of file diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/Breakpad.nib b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/Breakpad.nib deleted file mode 100644 index 432a001..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/Breakpad.nib and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/English.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/English.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/English.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/English.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/English.lproj/Localizable.strings deleted file mode 100644 index b731522..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/English.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/crash_report_sender.icns b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/crash_report_sender.icns deleted file mode 100644 index e8c2124..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/crash_report_sender.icns and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/da.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/da.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/da.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/da.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/da.lproj/Localizable.strings deleted file mode 100644 index 59b0fae..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/da.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/de.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/de.lproj/InfoPlist.strings deleted file mode 100644 index e30f049..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/de.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/de.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/de.lproj/Localizable.strings deleted file mode 100644 index 4fb2a0a..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/de.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/es.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/es.lproj/InfoPlist.strings deleted file mode 100644 index 2ddf311..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/es.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/es.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/es.lproj/Localizable.strings deleted file mode 100644 index ee3c368..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/es.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/fr.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/fr.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/fr.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/fr.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/fr.lproj/Localizable.strings deleted file mode 100644 index 760e85a..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/fr.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/goArrow.png b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/goArrow.png deleted file mode 100644 index f318a56..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/goArrow.png and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/it.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/it.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/it.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/it.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/it.lproj/Localizable.strings deleted file mode 100644 index 9e99cd1..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/it.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/ja.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/ja.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/ja.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/ja.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/ja.lproj/Localizable.strings deleted file mode 100644 index 8d8fd91..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/ja.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/nl.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/nl.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/nl.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/nl.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/nl.lproj/Localizable.strings deleted file mode 100644 index affe56e..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/nl.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/no.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/no.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/no.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/no.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/no.lproj/Localizable.strings deleted file mode 100644 index 8849c0b..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/no.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sl.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sl.lproj/InfoPlist.strings deleted file mode 100644 index a375f9d..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sl.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sl.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sl.lproj/Localizable.strings deleted file mode 100644 index 3ad772d..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sl.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sv.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sv.lproj/InfoPlist.strings deleted file mode 100644 index ae230ab..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sv.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sv.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sv.lproj/Localizable.strings deleted file mode 100644 index ffcce74..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/sv.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/tr.lproj/InfoPlist.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/tr.lproj/InfoPlist.strings deleted file mode 100644 index 3a0f347..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/tr.lproj/InfoPlist.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/tr.lproj/Localizable.strings b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/tr.lproj/Localizable.strings deleted file mode 100644 index 05acb9b..0000000 Binary files a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/A/Resources/crash_report_sender.app/Contents/Resources/tr.lproj/Localizable.strings and /dev/null differ diff --git a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/Current b/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/Current deleted file mode 100644 index f70f10e..0000000 --- a/tools/ContentBuilder/builder_osx/frameworks/Breakpad.framework/Versions/Current +++ /dev/null @@ -1 +0,0 @@ -A diff --git a/tools/drm/drmtool.exe b/tools/drm/drmtool.exe index 38eaead..e91434d 100644 Binary files a/tools/drm/drmtool.exe and b/tools/drm/drmtool.exe differ diff --git a/tools/drm/drmtoolp.exe b/tools/drm/drmtoolp.exe index c93b1ea..915c329 100644 Binary files a/tools/drm/drmtoolp.exe and b/tools/drm/drmtoolp.exe differ diff --git a/tools/drm/ubuntu12_32/drmtoolp b/tools/drm/ubuntu12_32/drmtoolp index 21c5771..bd83621 100644 Binary files a/tools/drm/ubuntu12_32/drmtoolp and b/tools/drm/ubuntu12_32/drmtoolp differ diff --git a/tools/drm/ubuntu12_32/steamdrmp.so b/tools/drm/ubuntu12_32/steamdrmp.so index fdc91ec..afc1ece 100644 Binary files a/tools/drm/ubuntu12_32/steamdrmp.so and b/tools/drm/ubuntu12_32/steamdrmp.so differ diff --git a/tools/drm/ubuntu12_64/drmtoolp b/tools/drm/ubuntu12_64/drmtoolp index 75a41db..73385b9 100644 Binary files a/tools/drm/ubuntu12_64/drmtoolp and b/tools/drm/ubuntu12_64/drmtoolp differ diff --git a/tools/drm/ubuntu12_64/steamdrmp.so b/tools/drm/ubuntu12_64/steamdrmp.so index 4eca84d..557537e 100644 Binary files a/tools/drm/ubuntu12_64/steamdrmp.so and b/tools/drm/ubuntu12_64/steamdrmp.so differ