aboutsummaryrefslogtreecommitdiff
path: root/sp/src/public/steam
diff options
context:
space:
mode:
authorMichael Sartain <[email protected]>2014-10-02 08:25:55 -0700
committerMichael Sartain <[email protected]>2014-10-02 08:25:55 -0700
commit55ed12f8d1eb6887d348be03aee5573d44177ffb (patch)
tree3686f7ca78c780cd9a3d367b79a9d9250c1be7c0 /sp/src/public/steam
parent* Added support for Visual C++ 2013 Express to VPC (diff)
downloadsource-sdk-2013-55ed12f8d1eb6887d348be03aee5573d44177ffb.tar.xz
source-sdk-2013-55ed12f8d1eb6887d348be03aee5573d44177ffb.zip
Updated the SDK with the latest code from the TF and HL2 branches.
Diffstat (limited to 'sp/src/public/steam')
-rw-r--r--sp/src/public/steam/isteamapplist.h4
-rw-r--r--sp/src/public/steam/isteamclient.h112
-rw-r--r--sp/src/public/steam/isteamhtmlsurface.h476
-rw-r--r--sp/src/public/steam/isteammatchmaking.h2
-rw-r--r--sp/src/public/steam/isteammusic.h2
-rw-r--r--sp/src/public/steam/isteammusicremote.h126
-rw-r--r--sp/src/public/steam/isteamremotestorage.h9
-rw-r--r--sp/src/public/steam/isteamugc.h71
-rw-r--r--sp/src/public/steam/steam_api.h25
-rw-r--r--sp/src/public/steam/steam_gameserver.h4
-rw-r--r--sp/src/public/steam/steamclientpublic.h62
-rw-r--r--sp/src/public/steam/steamcontrollerpublic.h11
-rw-r--r--sp/src/public/steam/steamhttpenums.h1
-rw-r--r--sp/src/public/steam/steamtypes.h6
-rw-r--r--sp/src/public/steam/steamvr.h21
15 files changed, 876 insertions, 56 deletions
diff --git a/sp/src/public/steam/isteamapplist.h b/sp/src/public/steam/isteamapplist.h
index b9d71136..e6726c1a 100644
--- a/sp/src/public/steam/isteamapplist.h
+++ b/sp/src/public/steam/isteamapplist.h
@@ -10,8 +10,8 @@
#pragma once
#endif
-#include "steam/isteamclient.h"
-#include "steam/steamtypes.h"
+#include "isteamclient.h"
+#include "steamtypes.h"
//-----------------------------------------------------------------------------
// Purpose: This is a restricted interface that can only be used by previously approved apps,
diff --git a/sp/src/public/steam/isteamclient.h b/sp/src/public/steam/isteamclient.h
index b54ad3dc..44c1df66 100644
--- a/sp/src/public/steam/isteamclient.h
+++ b/sp/src/public/steam/isteamclient.h
@@ -69,7 +69,8 @@ typedef int32 HSteamUser;
#define __cdecl
#endif
extern "C" typedef void (__cdecl *SteamAPIWarningMessageHook_t)(int, const char *);
-
+extern "C" typedef void( *SteamAPI_PostAPIResultInProcess_t )(SteamAPICall_t callHandle, void *, uint32 unCallbackSize, int iCallbackNum);
+extern "C" typedef uint32 ( *SteamAPI_CheckCallbackRegistered_t )( int iCallbackNum );
#if defined( __SNC__ )
#pragma diag_suppress=1700 // warning 1700: class "%s" has virtual functions but non-virtual destructor
#endif
@@ -88,6 +89,7 @@ class ISteamNetworking;
class ISteamRemoteStorage;
class ISteamScreenshots;
class ISteamMusic;
+class ISteamMusicRemote;
class ISteamGameServerStats;
class ISteamPS3OverlayRender;
class ISteamHTTP;
@@ -95,6 +97,7 @@ class ISteamUnifiedMessages;
class ISteamController;
class ISteamUGC;
class ISteamAppList;
+class ISteamHTMLSurface;
//-----------------------------------------------------------------------------
// Purpose: Interface to creating a new steam instance, or to
@@ -167,7 +170,6 @@ public:
// user screenshots
virtual ISteamScreenshots *GetISteamScreenshots( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0;
-
// this needs to be called every frame to process matchmaking results
// redundant if you're already calling SteamAPI_RunCallbacks()
virtual void RunFrame() = 0;
@@ -208,9 +210,20 @@ public:
// Music Player
virtual ISteamMusic *GetISteamMusic( HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion ) = 0;
+
+ // Music Player Remote
+ virtual ISteamMusicRemote *GetISteamMusicRemote(HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion) = 0;
+
+ // html page display
+ virtual ISteamHTMLSurface *GetISteamHTMLSurface(HSteamUser hSteamuser, HSteamPipe hSteamPipe, const char *pchVersion) = 0;
+
+ // Helper functions for internal Steam usage
+ virtual void Set_SteamAPI_CPostAPIResultInProcess( SteamAPI_PostAPIResultInProcess_t func ) = 0;
+ virtual void Remove_SteamAPI_CPostAPIResultInProcess( SteamAPI_PostAPIResultInProcess_t func ) = 0;
+ virtual void Set_SteamAPI_CCheckCallbackRegisteredInProcess( SteamAPI_CheckCallbackRegistered_t func ) = 0;
};
-#define STEAMCLIENT_INTERFACE_VERSION "SteamClient014"
+#define STEAMCLIENT_INTERFACE_VERSION "SteamClient016"
//-----------------------------------------------------------------------------
// Purpose: Base values for callback identifiers, each callback must
@@ -229,7 +242,7 @@ enum { k_iSteamAppsCallbacks = 1000 };
enum { k_iSteamUserStatsCallbacks = 1100 };
enum { k_iSteamNetworkingCallbacks = 1200 };
enum { k_iClientRemoteStorageCallbacks = 1300 };
-enum { k_iSteamUserItemsCallbacks = 1400 };
+enum { k_iClientDepotBuilderCallbacks = 1400 };
enum { k_iSteamGameServerItemsCallbacks = 1500 };
enum { k_iClientUtilsCallbacks = 1600 };
enum { k_iSteamGameCoordinatorCallbacks = 1700 };
@@ -256,7 +269,12 @@ enum { k_iClientShortcutsCallbacks = 3700 };
enum { k_iClientRemoteControlManagerCallbacks = 3800 };
enum { k_iSteamAppListCallbacks = 3900 };
enum { k_iSteamMusicCallbacks = 4000 };
-
+enum { k_iSteamMusicRemoteCallbacks = 4100 };
+enum { k_iClientVRCallbacks = 4200 };
+enum { k_iClientReservedCallbacks = 4300 };
+enum { k_iSteamReservedCallbacks = 4400 };
+enum { k_iSteamHTMLSurfaceCallbacks = 4500 };
+enum { k_iClientVideoCallbacks = 4600 };
//-----------------------------------------------------------------------------
// The CALLBACK macros are for client side callback logging enabled with
@@ -368,7 +386,7 @@ struct callbackname : SteamCallback_t { \
END_CALLBACK_INTERNAL_END()
#define END_DEFINE_CALLBACK_8() \
- END_CALLBACK_INTERNAL_BEGIN( 7 ) \
+ END_CALLBACK_INTERNAL_BEGIN( 8 ) \
END_CALLBACK_INTERNAL_SWITCH( 0 ) \
END_CALLBACK_INTERNAL_SWITCH( 1 ) \
END_CALLBACK_INTERNAL_SWITCH( 2 ) \
@@ -380,7 +398,82 @@ struct callbackname : SteamCallback_t { \
END_CALLBACK_INTERNAL_END()
#define END_DEFINE_CALLBACK_9() \
- END_CALLBACK_INTERNAL_BEGIN( 7 ) \
+ END_CALLBACK_INTERNAL_BEGIN( 9 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 0 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 1 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 2 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 3 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 4 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 5 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 6 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 7 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 8 ) \
+ END_CALLBACK_INTERNAL_END()
+
+#define END_DEFINE_CALLBACK_10() \
+ END_CALLBACK_INTERNAL_BEGIN( 10 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 0 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 1 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 2 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 3 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 4 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 5 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 6 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 7 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 8 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 9 ) \
+ END_CALLBACK_INTERNAL_END()
+
+#define END_DEFINE_CALLBACK_11() \
+ END_CALLBACK_INTERNAL_BEGIN( 11 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 0 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 1 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 2 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 3 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 4 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 5 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 6 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 7 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 8 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 9 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 10 ) \
+ END_CALLBACK_INTERNAL_END()
+
+#define END_DEFINE_CALLBACK_12() \
+ END_CALLBACK_INTERNAL_BEGIN( 12 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 0 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 1 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 2 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 3 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 4 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 5 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 6 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 7 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 8 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 9 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 10 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 11 ) \
+ END_CALLBACK_INTERNAL_END()
+
+#define END_DEFINE_CALLBACK_13() \
+ END_CALLBACK_INTERNAL_BEGIN( 13 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 0 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 1 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 2 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 3 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 4 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 5 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 6 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 7 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 8 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 9 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 10 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 11 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 12 ) \
+ END_CALLBACK_INTERNAL_END()
+
+#define END_DEFINE_CALLBACK_14() \
+ END_CALLBACK_INTERNAL_BEGIN( 14 ) \
END_CALLBACK_INTERNAL_SWITCH( 0 ) \
END_CALLBACK_INTERNAL_SWITCH( 1 ) \
END_CALLBACK_INTERNAL_SWITCH( 2 ) \
@@ -390,6 +483,11 @@ struct callbackname : SteamCallback_t { \
END_CALLBACK_INTERNAL_SWITCH( 6 ) \
END_CALLBACK_INTERNAL_SWITCH( 7 ) \
END_CALLBACK_INTERNAL_SWITCH( 8 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 9 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 10 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 11 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 12 ) \
+ END_CALLBACK_INTERNAL_SWITCH( 13 ) \
END_CALLBACK_INTERNAL_END()
#endif // ISTEAMCLIENT_H
diff --git a/sp/src/public/steam/isteamhtmlsurface.h b/sp/src/public/steam/isteamhtmlsurface.h
new file mode 100644
index 00000000..80216fc9
--- /dev/null
+++ b/sp/src/public/steam/isteamhtmlsurface.h
@@ -0,0 +1,476 @@
+//====== Copyright 1996-2013, Valve Corporation, All rights reserved. =======
+//
+// Purpose: interface to display html pages in a texture
+//
+//=============================================================================
+
+#ifndef ISTEAMHTMLSURFACE_H
+#define ISTEAMHTMLSURFACE_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "isteamclient.h"
+
+typedef uint32 HHTMLBrowser;
+const uint32 INVALID_HTTMLBROWSER = 0;
+
+//-----------------------------------------------------------------------------
+// Purpose: Functions for displaying HTML pages and interacting with them
+//-----------------------------------------------------------------------------
+class ISteamHTMLSurface
+{
+public:
+ virtual ~ISteamHTMLSurface() {}
+
+ // Must call init and shutdown when starting/ending use of the interface
+ virtual bool Init() = 0;
+ virtual bool Shutdown() = 0;
+
+ // Create a browser object for display of a html page, when creation is complete the call handle
+ // will return a HTML_BrowserReady_t callback for the HHTMLBrowser of your new browser.
+ // The user agent string is a substring to be added to the general user agent string so you can
+ // identify your client on web servers.
+ // The userCSS string lets you apply a CSS style sheet to every displayed page, leave null if
+ // you do not require this functionality.
+ virtual SteamAPICall_t CreateBrowser( const char *pchUserAgent, const char *pchUserCSS ) = 0;
+
+ // Call this when you are done with a html surface, this lets us free the resources being used by it
+ virtual void RemoveBrowser( HHTMLBrowser unBrowserHandle ) = 0;
+
+ // Navigate to this URL, results in a HTML_StartRequest_t as the request commences
+ virtual void LoadURL( HHTMLBrowser unBrowserHandle, const char *pchURL, const char *pchPostData ) = 0;
+
+ // Tells the surface the size in pixels to display the surface
+ virtual void SetSize( HHTMLBrowser unBrowserHandle, uint32 unWidth, uint32 unHeight ) = 0;
+
+ // Stop the load of the current html page
+ virtual void StopLoad( HHTMLBrowser unBrowserHandle ) = 0;
+ // Reload (most likely from local cache) the current page
+ virtual void Reload( HHTMLBrowser unBrowserHandle ) = 0;
+ // navigate back in the page history
+ virtual void GoBack( HHTMLBrowser unBrowserHandle ) = 0;
+ // navigate forward in the page history
+ virtual void GoForward( HHTMLBrowser unBrowserHandle ) = 0;
+
+ // add this header to any url requests from this browser
+ virtual void AddHeader( HHTMLBrowser unBrowserHandle, const char *pchKey, const char *pchValue ) = 0;
+ // run this javascript script in the currently loaded page
+ virtual void ExecuteJavascript( HHTMLBrowser unBrowserHandle, const char *pchScript ) = 0;
+
+ enum EHTMLMouseButton
+ {
+ eHTMLMouseButton_Left = 0,
+ eHTMLMouseButton_Right = 1,
+ eHTMLMouseButton_Middle = 2,
+ };
+
+ // Mouse click and mouse movement commands
+ virtual void MouseUp( HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton ) = 0;
+ virtual void MouseDown( HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton ) = 0;
+ virtual void MouseDoubleClick( HHTMLBrowser unBrowserHandle, EHTMLMouseButton eMouseButton ) = 0;
+ // x and y are relative to the HTML bounds
+ virtual void MouseMove( HHTMLBrowser unBrowserHandle, int x, int y ) = 0;
+ // nDelta is pixels of scroll
+ virtual void MouseWheel( HHTMLBrowser unBrowserHandle, int32 nDelta ) = 0;
+
+ enum EMouseCursor
+ {
+ dc_user = 0,
+ dc_none,
+ dc_arrow,
+ dc_ibeam,
+ dc_hourglass,
+ dc_waitarrow,
+ dc_crosshair,
+ dc_up,
+ dc_sizenw,
+ dc_sizese,
+ dc_sizene,
+ dc_sizesw,
+ dc_sizew,
+ dc_sizee,
+ dc_sizen,
+ dc_sizes,
+ dc_sizewe,
+ dc_sizens,
+ dc_sizeall,
+ dc_no,
+ dc_hand,
+ dc_blank, // don't show any custom cursor, just use your default
+ dc_middle_pan,
+ dc_north_pan,
+ dc_north_east_pan,
+ dc_east_pan,
+ dc_south_east_pan,
+ dc_south_pan,
+ dc_south_west_pan,
+ dc_west_pan,
+ dc_north_west_pan,
+ dc_alias,
+ dc_cell,
+ dc_colresize,
+ dc_copycur,
+ dc_verticaltext,
+ dc_rowresize,
+ dc_zoomin,
+ dc_zoomout,
+ dc_help,
+ dc_custom,
+
+ dc_last, // custom cursors start from this value and up
+ };
+
+ enum EHTMLKeyModifiers
+ {
+ eHTMLKeyModifier_None = 0,
+ eHTMLKeyModifier_AltDown = 1 << 0,
+ eHTMLKeyModifier_CrtlDown = 1 << 1,
+ eHTMLKeyModifier_ShiftDown = 1 << 2,
+ };
+
+ // keyboard interactions, native keycode is the virtual key code value from your OS
+ virtual void KeyDown( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0;
+ virtual void KeyUp( HHTMLBrowser unBrowserHandle, uint32 nNativeKeyCode, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0;
+ // cUnicodeChar is the unicode character point for this keypress (and potentially multiple chars per press)
+ virtual void KeyChar( HHTMLBrowser unBrowserHandle, uint32 cUnicodeChar, EHTMLKeyModifiers eHTMLKeyModifiers ) = 0;
+
+ // programmatically scroll this many pixels on the page
+ virtual void SetHorizontalScroll( HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ) = 0;
+ virtual void SetVerticalScroll( HHTMLBrowser unBrowserHandle, uint32 nAbsolutePixelScroll ) = 0;
+
+ // tell the html control if it has key focus currently, controls showing the I-beam cursor in text controls amongst other things
+ virtual void SetKeyFocus( HHTMLBrowser unBrowserHandle, bool bHasKeyFocus ) = 0;
+
+ // open the current pages html code in the local editor of choice, used for debugging
+ virtual void ViewSource( HHTMLBrowser unBrowserHandle ) = 0;
+ // copy the currently selected text on the html page to the local clipboard
+ virtual void CopyToClipboard( HHTMLBrowser unBrowserHandle ) = 0;
+ // paste from the local clipboard to the current html page
+ virtual void PasteFromClipboard( HHTMLBrowser unBrowserHandle ) = 0;
+
+ // find this string in the browser, if bCurrentlyInFind is true then instead cycle to the next matching element
+ virtual void Find( HHTMLBrowser unBrowserHandle, const char *pchSearchStr, bool bCurrentlyInFind, bool bReverse ) = 0;
+ // cancel a currently running find
+ virtual void StopFind( HHTMLBrowser unBrowserHandle ) = 0;
+
+ // return details about the link at position x,y on the current page
+ virtual void GetLinkAtPosition( HHTMLBrowser unBrowserHandle, int x, int y ) = 0;
+
+ // set a webcookie for the hostname in question
+ virtual void SetCookie( const char *pchHostname, const char *pchKey, const char *pchValue, const char *pchPath = "/", RTime32 nExpires = 0, bool bSecure = false, bool bHTTPOnly = false ) = 0;
+
+ // Zoom the current page by flZoom ( from 0.0 to 4.0, so to zoom to 120% use 1.2 ), zooming around point X,Y in the page (use 0,0 if you don't care)
+ virtual void SetPageScaleFactor( HHTMLBrowser unBrowserHandle, float flZoom, int nPointX, int nPointY ) = 0;
+
+ // CALLBACKS
+ //
+ // These set of functions are used as responses to callback requests
+ //
+
+ // You MUST call this in response to a HTML_StartRequest_t callback
+ // Set bAllowed to true to allow this navigation, false to cancel it and stay
+ // on the current page. You can use this feature to limit the valid pages
+ // allowed in your HTML surface.
+ virtual void AllowStartRequest( HHTMLBrowser unBrowserHandle, bool bAllowed ) = 0;
+
+ // You MUST call this in response to a HTML_JSAlert_t or HTML_JSConfirm_t callback
+ // Set bResult to true for the OK option of a confirm, use false otherwise
+ virtual void JSDialogResponse( HHTMLBrowser unBrowserHandle, bool bResult ) = 0;
+
+ // You MUST call this in response to a HTML_FileOpenDialog_t callback
+ virtual void FileLoadDialogResponse( HHTMLBrowser unBrowserHandle, const char **pchSelectedFiles ) = 0;
+};
+
+#define STEAMHTMLSURFACE_INTERFACE_VERSION "STEAMHTMLSURFACE_INTERFACE_VERSION_002"
+
+// callbacks
+#if defined( VALVE_CALLBACK_PACK_SMALL )
+#pragma pack( push, 4 )
+#elif defined( VALVE_CALLBACK_PACK_LARGE )
+#pragma pack( push, 8 )
+#else
+#error isteamclient.h must be included
+#endif
+
+
+//-----------------------------------------------------------------------------
+// Purpose: The browser is ready for use
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_BrowserReady_t, k_iSteamHTMLSurfaceCallbacks + 1 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // this browser is now fully created and ready to navigate to pages
+END_DEFINE_CALLBACK_1()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: the browser has a pending paint
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK(HTML_NeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 2)
+CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the browser that needs the paint
+CALLBACK_MEMBER(1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called
+CALLBACK_MEMBER(2, uint32, unWide) // the total width of the pBGRA texture
+CALLBACK_MEMBER(3, uint32, unTall) // the total height of the pBGRA texture
+CALLBACK_MEMBER(4, uint32, unUpdateX) // the offset in X for the damage rect for this update
+CALLBACK_MEMBER(5, uint32, unUpdateY) // the offset in Y for the damage rect for this update
+CALLBACK_MEMBER(6, uint32, unUpdateWide) // the width of the damage rect for this update
+CALLBACK_MEMBER(7, uint32, unUpdateTall) // the height of the damage rect for this update
+CALLBACK_MEMBER(8, uint32, unScrollX) // the page scroll the browser was at when this texture was rendered
+CALLBACK_MEMBER(9, uint32, unScrollY) // the page scroll the browser was at when this texture was rendered
+CALLBACK_MEMBER(10, float, flPageScale) // the page scale factor on this page when rendered
+CALLBACK_MEMBER(11, uint32, unPageSerial) // incremented on each new page load, you can use this to reject draws while navigating to new pages
+END_DEFINE_CALLBACK_12()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: The browser wanted to navigate to a new page
+// NOTE - you MUST call AllowStartRequest in response to this callback
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK(HTML_StartRequest_t, k_iSteamHTMLSurfaceCallbacks + 3)
+CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface navigating
+CALLBACK_MEMBER(1, const char *, pchURL) // the url they wish to navigate to
+CALLBACK_MEMBER(2, const char *, pchTarget) // the html link target type (i.e _blank, _self, _parent, _top )
+CALLBACK_MEMBER(3, const char *, pchPostData ) // any posted data for the request
+CALLBACK_MEMBER(4, bool, bIsRedirect) // true if this was a http/html redirect from the last load request
+END_DEFINE_CALLBACK_5()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: The browser has been requested to close due to user interaction (usually from a javascript window.close() call)
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK(HTML_CloseBrowser_t, k_iSteamHTMLSurfaceCallbacks + 4)
+CALLBACK_MEMBER(0, HHTMLBrowser, unBrowserHandle) // the handle of the surface
+END_DEFINE_CALLBACK_1()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: the browser is navigating to a new url
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_URLChanged_t, k_iSteamHTMLSurfaceCallbacks + 5 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface navigating
+CALLBACK_MEMBER( 1, const char *, pchURL ) // the url they wish to navigate to
+CALLBACK_MEMBER( 2, const char *, pchPostData ) // any posted data for the request
+CALLBACK_MEMBER( 3, bool, bIsRedirect ) // true if this was a http/html redirect from the last load request
+CALLBACK_MEMBER( 4, const char *, pchPageTitle ) // the title of the page
+CALLBACK_MEMBER( 5, bool, bNewNavigation ) // true if this was from a fresh tab and not a click on an existing page
+END_DEFINE_CALLBACK_6()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: A page is finished loading
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_FinishedRequest_t, k_iSteamHTMLSurfaceCallbacks + 6 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchURL ) //
+CALLBACK_MEMBER( 2, const char *, pchPageTitle ) //
+END_DEFINE_CALLBACK_3()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: a request to load this url in a new tab
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_OpenLinkInNewTab_t, k_iSteamHTMLSurfaceCallbacks + 7 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchURL ) //
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: the page has a new title now
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_ChangedTitle_t, k_iSteamHTMLSurfaceCallbacks + 8 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchTitle ) //
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: results from a search
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_SearchResults_t, k_iSteamHTMLSurfaceCallbacks + 9 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, uint32, unResults ) //
+CALLBACK_MEMBER( 2, uint32, unCurrentMatch ) //
+END_DEFINE_CALLBACK_3()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: page history status changed on the ability to go backwards and forward
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_CanGoBackAndForward_t, k_iSteamHTMLSurfaceCallbacks + 10 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, bool, bCanGoBack ) //
+CALLBACK_MEMBER( 2, bool, bCanGoForward ) //
+END_DEFINE_CALLBACK_3()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: details on the visibility and size of the horizontal scrollbar
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_HorizontalScroll_t, k_iSteamHTMLSurfaceCallbacks + 11 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, uint32, unScrollMax ) //
+CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) //
+CALLBACK_MEMBER( 3, float, flPageScale ) //
+CALLBACK_MEMBER( 4, bool , bVisible ) //
+CALLBACK_MEMBER( 5, uint32, unPageSize ) //
+END_DEFINE_CALLBACK_6()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: details on the visibility and size of the vertical scrollbar
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_VerticalScroll_t, k_iSteamHTMLSurfaceCallbacks + 12 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, uint32, unScrollMax ) //
+CALLBACK_MEMBER( 2, uint32, unScrollCurrent ) //
+CALLBACK_MEMBER( 3, float, flPageScale ) //
+CALLBACK_MEMBER( 4, bool, bVisible ) //
+CALLBACK_MEMBER( 5, uint32, unPageSize ) //
+END_DEFINE_CALLBACK_6()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: response to GetLinkAtPosition call
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_LinkAtPosition_t, k_iSteamHTMLSurfaceCallbacks + 13 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, uint32, x ) //
+CALLBACK_MEMBER( 2, uint32, y ) //
+CALLBACK_MEMBER( 3, const char *, pchURL ) //
+CALLBACK_MEMBER( 4, bool, bInput ) //
+CALLBACK_MEMBER( 5, bool, bLiveLink ) //
+END_DEFINE_CALLBACK_6()
+
+
+
+//-----------------------------------------------------------------------------
+// Purpose: show a Javascript alert dialog, call JSDialogResponse
+// when the user dismisses this dialog (or right away to ignore it)
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_JSAlert_t, k_iSteamHTMLSurfaceCallbacks + 14 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchMessage ) //
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: show a Javascript confirmation dialog, call JSDialogResponse
+// when the user dismisses this dialog (or right away to ignore it)
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_JSConfirm_t, k_iSteamHTMLSurfaceCallbacks + 15 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchMessage ) //
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: show a Javascript confirmation dialog, call JSDialogResponse
+// when the user dismisses this dialog (or right away to ignore it)
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_FileOpenDialog_t, k_iSteamHTMLSurfaceCallbacks + 16 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchTitle ) //
+CALLBACK_MEMBER( 2, const char *, pchInitialFile ) //
+END_DEFINE_CALLBACK_3()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: a popup item (i.e combo box) on the page needs rendering
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_ComboNeedsPaint_t, k_iSteamHTMLSurfaceCallbacks + 17 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pBGRA ) // a pointer to the B8G8R8A8 data for this surface, valid until SteamAPI_RunCallbacks is next called
+CALLBACK_MEMBER( 2, uint32, unWide ) // the total width of the pBGRA texture
+CALLBACK_MEMBER( 3, uint32, unTall ) // the total height of the pBGRA texture
+END_DEFINE_CALLBACK_4()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: a popup (i.e combo box) wants to display
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_ShowPopup_t, k_iSteamHTMLSurfaceCallbacks + 18 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+END_DEFINE_CALLBACK_1()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: a popup (i.e combo box) wants to hide
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_HidePopup_t, k_iSteamHTMLSurfaceCallbacks + 19 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+END_DEFINE_CALLBACK_1()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: a popup (i.e combo box) wants to hide
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_SizePopup_t, k_iSteamHTMLSurfaceCallbacks + 20 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, uint32, unX ) // the x pos into the page to display the popup
+CALLBACK_MEMBER( 2, uint32, unY ) // the y pos into the page to display the popup
+CALLBACK_MEMBER( 3, uint32, unWide ) // the total width of the pBGRA texture
+CALLBACK_MEMBER( 4, uint32, unTall ) // the total height of the pBGRA texture
+END_DEFINE_CALLBACK_5()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: a new html window has been created
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_NewWindow_t, k_iSteamHTMLSurfaceCallbacks + 21 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchURL ) // the page to load
+CALLBACK_MEMBER( 2, uint32, unX ) // the x pos into the page to display the popup
+CALLBACK_MEMBER( 3, uint32, unY ) // the y pos into the page to display the popup
+CALLBACK_MEMBER( 4, uint32, unWide ) // the total width of the pBGRA texture
+CALLBACK_MEMBER( 5, uint32, unTall ) // the total height of the pBGRA texture
+END_DEFINE_CALLBACK_6()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: change the cursor to display
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_SetCursor_t, k_iSteamHTMLSurfaceCallbacks + 22 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, uint32, eMouseCursor ) // the EMouseCursor to display
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: informational message from the browser
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_StatusText_t, k_iSteamHTMLSurfaceCallbacks + 23 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: show a tooltip
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_ShowToolTip_t, k_iSteamHTMLSurfaceCallbacks + 24 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: update the text of an existing tooltip
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_UpdateToolTip_t, k_iSteamHTMLSurfaceCallbacks + 25 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+CALLBACK_MEMBER( 1, const char *, pchMsg ) // the EMouseCursor to display
+END_DEFINE_CALLBACK_2()
+
+
+//-----------------------------------------------------------------------------
+// Purpose: hide the tooltip you are showing
+//-----------------------------------------------------------------------------
+DEFINE_CALLBACK( HTML_HideToolTip_t, k_iSteamHTMLSurfaceCallbacks + 26 )
+CALLBACK_MEMBER( 0, HHTMLBrowser, unBrowserHandle ) // the handle of the surface
+END_DEFINE_CALLBACK_1()
+
+
+#pragma pack( pop )
+
+
+#endif // ISTEAMHTMLSURFACE_H
diff --git a/sp/src/public/steam/isteammatchmaking.h b/sp/src/public/steam/isteammatchmaking.h
index ca381b81..d6380076 100644
--- a/sp/src/public/steam/isteammatchmaking.h
+++ b/sp/src/public/steam/isteammatchmaking.h
@@ -71,7 +71,7 @@ public:
virtual bool GetFavoriteGame( int iGame, AppId_t *pnAppID, uint32 *pnIP, uint16 *pnConnPort, uint16 *pnQueryPort, uint32 *punFlags, uint32 *pRTime32LastPlayedOnServer ) = 0;
// adds the game server to the local list; updates the time played of the server if it already exists in the list
- virtual int AddFavoriteGame( AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer ) =0;
+ virtual int AddFavoriteGame( AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags, uint32 rTime32LastPlayedOnServer ) = 0;
// removes the game server from the local storage; returns true if one was removed
virtual bool RemoveFavoriteGame( AppId_t nAppID, uint32 nIP, uint16 nConnPort, uint16 nQueryPort, uint32 unFlags ) = 0;
diff --git a/sp/src/public/steam/isteammusic.h b/sp/src/public/steam/isteammusic.h
index 23f0b85c..779a4c2e 100644
--- a/sp/src/public/steam/isteammusic.h
+++ b/sp/src/public/steam/isteammusic.h
@@ -6,7 +6,7 @@
#pragma once
#endif
-#include "steam/isteamclient.h"
+#include "isteamclient.h"
//-----------------------------------------------------------------------------
// Purpose:
diff --git a/sp/src/public/steam/isteammusicremote.h b/sp/src/public/steam/isteammusicremote.h
new file mode 100644
index 00000000..fe083da5
--- /dev/null
+++ b/sp/src/public/steam/isteammusicremote.h
@@ -0,0 +1,126 @@
+//============ Copyright (c) Valve Corporation, All rights reserved. ============
+
+#ifndef ISTEAMMUSICREMOTE_H
+#define ISTEAMMUSICREMOTE_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "isteamclient.h"
+#include "isteammusic.h"
+
+#define k_SteamMusicNameMaxLength 255
+#define k_SteamMusicPNGMaxLength 65535
+
+
+class ISteamMusicRemote
+{
+public:
+ // Service Definition
+ virtual bool RegisterSteamMusicRemote( const char *pchName ) = 0;
+ virtual bool DeregisterSteamMusicRemote() = 0;
+ virtual bool BIsCurrentMusicRemote() = 0;
+ virtual bool BActivationSuccess( bool bValue ) = 0;
+
+ virtual bool SetDisplayName( const char *pchDisplayName ) = 0;
+ virtual bool SetPNGIcon_64x64( void *pvBuffer, uint32 cbBufferLength ) = 0;
+
+ // Abilities for the user interface
+ virtual bool EnablePlayPrevious(bool bValue) = 0;
+ virtual bool EnablePlayNext( bool bValue ) = 0;
+ virtual bool EnableShuffled( bool bValue ) = 0;
+ virtual bool EnableLooped( bool bValue ) = 0;
+ virtual bool EnableQueue( bool bValue ) = 0;
+ virtual bool EnablePlaylists( bool bValue ) = 0;
+
+ // Status
+ virtual bool UpdatePlaybackStatus( AudioPlayback_Status nStatus ) = 0;
+ virtual bool UpdateShuffled( bool bValue ) = 0;
+ virtual bool UpdateLooped( bool bValue ) = 0;
+ virtual bool UpdateVolume( float flValue ) = 0; // volume is between 0.0 and 1.0
+
+ // Current Entry
+ virtual bool CurrentEntryWillChange() = 0;
+ virtual bool CurrentEntryIsAvailable( bool bAvailable ) = 0;
+ virtual bool UpdateCurrentEntryText( const char *pchText ) = 0;
+ virtual bool UpdateCurrentEntryElapsedSeconds( int nValue ) = 0;
+ virtual bool UpdateCurrentEntryCoverArt( void *pvBuffer, uint32 cbBufferLength ) = 0;
+ virtual bool CurrentEntryDidChange() = 0;
+
+ // Queue
+ virtual bool QueueWillChange() = 0;
+ virtual bool ResetQueueEntries() = 0;
+ virtual bool SetQueueEntry( int nID, int nPosition, const char *pchEntryText ) = 0;
+ virtual bool SetCurrentQueueEntry( int nID ) = 0;
+ virtual bool QueueDidChange() = 0;
+
+ // Playlist
+ virtual bool PlaylistWillChange() = 0;
+ virtual bool ResetPlaylistEntries() = 0;
+ virtual bool SetPlaylistEntry( int nID, int nPosition, const char *pchEntryText ) = 0;
+ virtual bool SetCurrentPlaylistEntry( int nID ) = 0;
+ virtual bool PlaylistDidChange() = 0;
+};
+
+#define STEAMMUSICREMOTE_INTERFACE_VERSION "STEAMMUSICREMOTE_INTERFACE_VERSION001"
+
+// callbacks
+#if defined( VALVE_CALLBACK_PACK_SMALL )
+#pragma pack( push, 4 )
+#elif defined( VALVE_CALLBACK_PACK_LARGE )
+#pragma pack( push, 8 )
+#else
+#error isteamclient.h must be included
+#endif
+
+
+DEFINE_CALLBACK( MusicPlayerRemoteWillActivate_t, k_iSteamMusicRemoteCallbacks + 1)
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerRemoteWillDeactivate_t, k_iSteamMusicRemoteCallbacks + 2 )
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerRemoteToFront_t, k_iSteamMusicRemoteCallbacks + 3 )
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerWillQuit_t, k_iSteamMusicRemoteCallbacks + 4 )
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerWantsPlay_t, k_iSteamMusicRemoteCallbacks + 5 )
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerWantsPause_t, k_iSteamMusicRemoteCallbacks + 6 )
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerWantsPlayPrevious_t, k_iSteamMusicRemoteCallbacks + 7 )
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerWantsPlayNext_t, k_iSteamMusicRemoteCallbacks + 8 )
+END_DEFINE_CALLBACK_0()
+
+DEFINE_CALLBACK( MusicPlayerWantsShuffled_t, k_iSteamMusicRemoteCallbacks + 9 )
+ CALLBACK_MEMBER( 0, bool, m_bShuffled )
+END_DEFINE_CALLBACK_1()
+
+DEFINE_CALLBACK( MusicPlayerWantsLooped_t, k_iSteamMusicRemoteCallbacks + 10 )
+ CALLBACK_MEMBER(0, bool, m_bLooped )
+END_DEFINE_CALLBACK_1()
+
+DEFINE_CALLBACK( MusicPlayerWantsVolume_t, k_iSteamMusicCallbacks + 11 )
+ CALLBACK_MEMBER(0, float, m_flNewVolume)
+END_DEFINE_CALLBACK_1()
+
+DEFINE_CALLBACK( MusicPlayerSelectsQueueEntry_t, k_iSteamMusicCallbacks + 12 )
+ CALLBACK_MEMBER(0, int, nID )
+END_DEFINE_CALLBACK_1()
+
+DEFINE_CALLBACK( MusicPlayerSelectsPlaylistEntry_t, k_iSteamMusicCallbacks + 13 )
+ CALLBACK_MEMBER(0, int, nID )
+END_DEFINE_CALLBACK_1()
+
+
+#pragma pack( pop )
+
+
+
+#endif // #define ISTEAMMUSICREMOTE_H
diff --git a/sp/src/public/steam/isteamremotestorage.h b/sp/src/public/steam/isteamremotestorage.h
index ed5aa526..c5a005f3 100644
--- a/sp/src/public/steam/isteamremotestorage.h
+++ b/sp/src/public/steam/isteamremotestorage.h
@@ -102,9 +102,10 @@ enum EWorkshopFileType
k_EWorkshopFileTypeMerch = 11,
k_EWorkshopFileTypeControllerBinding = 12,
k_EWorkshopFileTypeSteamworksAccessInvite = 13,
+ k_EWorkshopFileTypeSteamVideo = 14,
- // Update k_EWorkshopFileTypeMax if you add values
- k_EWorkshopFileTypeMax = 14
+ // Update k_EWorkshopFileTypeMax if you add values.
+ k_EWorkshopFileTypeMax = 15
};
@@ -138,10 +139,6 @@ enum EWorkshopVideoProvider
k_EWorkshopVideoProviderYoutube = 1
};
-enum
-{
- k_WorkshopForceLoadPublishedFileDetailsFromCache = -1
-};
enum EUGCReadAction
{
diff --git a/sp/src/public/steam/isteamugc.h b/sp/src/public/steam/isteamugc.h
index ceee8f75..4bab58d6 100644
--- a/sp/src/public/steam/isteamugc.h
+++ b/sp/src/public/steam/isteamugc.h
@@ -91,6 +91,16 @@ enum EUGCQuery
k_EUGCQuery_RankedByTextSearch = 11,
};
+enum EItemUpdateStatus
+{
+ k_EItemUpdateStatusInvalid = 0, // The item update handle was invalid, job might be finished, listen too SubmitItemUpdateResult_t
+ k_EItemUpdateStatusPreparingConfig = 1, // The item update is processing configuration data
+ k_EItemUpdateStatusPreparingContent = 2, // The item update is reading and processing content files
+ k_EItemUpdateStatusUploadingContent = 3, // The item update is uploading content changes to Steam
+ k_EItemUpdateStatusUploadingPreviewFile = 4, // The item update is uploading new preview file image
+ k_EItemUpdateStatusCommittingChanges = 5 // The item update is committing all changes
+};
+
const uint32 kNumUGCResultsPerPage = 50;
@@ -124,6 +134,7 @@ struct SteamUGCDetails_t
uint32 m_unVotesUp; // number of votes up
uint32 m_unVotesDown; // number of votes down
float m_flScore; // calculated score
+ uint32 m_unNumChildren; // if m_eFileType == k_EWorkshopFileTypeCollection, then this number will be the number of children contained within the collection
};
//-----------------------------------------------------------------------------
@@ -165,10 +176,35 @@ public:
// Request full details for one piece of UGC
virtual SteamAPICall_t RequestUGCDetails( PublishedFileId_t nPublishedFileID, uint32 unMaxAgeSeconds ) = 0;
-
+
+ // Steam Workshop Creator API
+ virtual SteamAPICall_t CreateItem( AppId_t nConsumerAppId, EWorkshopFileType eFileType ) = 0; // create new item for this app with no content attached yet
+
+ virtual UGCUpdateHandle_t StartItemUpdate( AppId_t nConsumerAppId, PublishedFileId_t nPublishedFileID ) = 0; // start an UGC item update. Set changed properties before commiting update with CommitItemUpdate()
+
+ virtual bool SetItemTitle( UGCUpdateHandle_t handle, const char *pchTitle ) = 0; // change the title of an UGC item
+ virtual bool SetItemDescription( UGCUpdateHandle_t handle, const char *pchDescription ) = 0; // change the description of an UGC item
+ virtual bool SetItemVisibility( UGCUpdateHandle_t handle, ERemoteStoragePublishedFileVisibility eVisibility ) = 0; // change the visibility of an UGC item
+ virtual bool SetItemTags( UGCUpdateHandle_t updateHandle, const SteamParamStringArray_t *pTags ) = 0; // change the tags of an UGC item
+ 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
+
+ virtual SteamAPICall_t SubmitItemUpdate( UGCUpdateHandle_t handle, const char *pchChangeNote ) = 0; // commit update process started with StartItemUpdate()
+ virtual EItemUpdateStatus GetItemUpdateProgress( UGCUpdateHandle_t handle, uint64 *punBytesProcessed, uint64* punBytesTotal ) = 0;
+
+ // Steam Workshop Consumer API
+ virtual SteamAPICall_t SubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // subscript to this item, will be installed ASAP
+ virtual SteamAPICall_t UnsubscribeItem( PublishedFileId_t nPublishedFileID ) = 0; // unsubscribe from this item, will be uninstalled after game quits
+ virtual uint32 GetNumSubscribedItems() = 0; // number of subscribed items
+ virtual uint32 GetSubscribedItems( PublishedFileId_t* pvecPublishedFileID, uint32 cMaxEntries ) = 0; // all subscribed item PublishFileIDs
+
+ // Get info about the item on disk. If you are supporting items published through the legacy RemoteStorage APIs then *pbLegacyItem will be set to true
+ // and pchFolder will contain the full path to the file rather than the containing folder.
+ virtual bool GetItemInstallInfo( PublishedFileId_t nPublishedFileID, uint64 *punSizeOnDisk, char *pchFolder, uint32 cchFolderSize, bool *pbLegacyItem ) = 0; // returns true if item is installed
+ virtual bool GetItemUpdateInfo( PublishedFileId_t nPublishedFileID, bool *pbNeedsUpdate, bool *pbIsDownloading, uint64 *punBytesDownloaded, uint64 *punBytesTotal ) = 0;
};
-#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION002"
+#define STEAMUGC_INTERFACE_VERSION "STEAMUGC_INTERFACE_VERSION003"
//-----------------------------------------------------------------------------
// Purpose: Callback for querying UGC
@@ -196,8 +232,37 @@ struct SteamUGCRequestUGCDetailsResult_t
//-----------------------------------------------------------------------------
-// Purpose: k_iClientUGCCallbacks + 3 to k_iClientUGCCallbacks + 6 in use
+// Purpose: result for ISteamUGC::CreateItem()
+//-----------------------------------------------------------------------------
+struct CreateItemResult_t
+{
+ enum { k_iCallback = k_iClientUGCCallbacks + 3 };
+ EResult m_eResult;
+ PublishedFileId_t m_nPublishedFileId; // new item got this UGC PublishFileID
+ bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
+};
+
+
+//-----------------------------------------------------------------------------
+// Purpose: result for ISteamUGC::SubmitItemUpdate()
//-----------------------------------------------------------------------------
+struct SubmitItemUpdateResult_t
+{
+ enum { k_iCallback = k_iClientUGCCallbacks + 4 };
+ EResult m_eResult;
+ bool m_bUserNeedsToAcceptWorkshopLegalAgreement;
+};
+
+
+//-----------------------------------------------------------------------------
+// Purpose: a new Workshop item has been installed
+//-----------------------------------------------------------------------------
+struct ItemInstalled_t
+{
+ enum { k_iCallback = k_iClientUGCCallbacks + 5 };
+ AppId_t m_unAppID;
+ PublishedFileId_t m_nPublishedFileId;
+};
#pragma pack( pop )
diff --git a/sp/src/public/steam/steam_api.h b/sp/src/public/steam/steam_api.h
index d1ebd2c2..9850cd7b 100644
--- a/sp/src/public/steam/steam_api.h
+++ b/sp/src/public/steam/steam_api.h
@@ -21,11 +21,13 @@
#include "isteamremotestorage.h"
#include "isteamscreenshots.h"
#include "isteammusic.h"
+#include "isteammusicremote.h"
#include "isteamhttp.h"
#include "isteamunifiedmessages.h"
#include "isteamcontroller.h"
#include "isteamugc.h"
#include "isteamapplist.h"
+#include "isteamhtmlsurface.h"
#if defined( _PS3 )
#include "steamps3params.h"
@@ -124,6 +126,8 @@ S_API ISteamController *S_CALLTYPE SteamController();
S_API ISteamUGC *S_CALLTYPE SteamUGC();
S_API ISteamAppList *S_CALLTYPE SteamAppList();
S_API ISteamMusic *S_CALLTYPE SteamMusic();
+S_API ISteamMusicRemote *S_CALLTYPE SteamMusicRemote();
+S_API ISteamHTMLSurface *S_CALLTYPE SteamHTMLSurface();
#ifdef _PS3
S_API ISteamPS3OverlayRender *S_CALLTYPE SteamPS3OverlayRender();
#endif
@@ -408,6 +412,8 @@ public:
ISteamUGC* SteamUGC() { return m_pSteamUGC; }
ISteamAppList* SteamAppList() { return m_pSteamAppList; }
ISteamMusic* SteamMusic() { return m_pSteamMusic; }
+ ISteamMusicRemote* SteamMusicRemote() { return m_pSteamMusicRemote; }
+ ISteamHTMLSurface* SteamHTMLSurface() { return m_pSteamHTMLSurface; }
#ifdef _PS3
ISteamPS3OverlayRender* SteamPS3OverlayRender() { return m_pSteamPS3OverlayRender; }
#endif
@@ -429,6 +435,8 @@ private:
ISteamUGC *m_pSteamUGC;
ISteamAppList *m_pSteamAppList;
ISteamMusic *m_pSteamMusic;
+ ISteamMusicRemote *m_pSteamMusicRemote;
+ ISteamHTMLSurface *m_pSteamHTMLSurface;
#ifdef _PS3
ISteamPS3OverlayRender *m_pSteamPS3OverlayRender;
#endif
@@ -457,6 +465,9 @@ inline void CSteamAPIContext::Clear()
m_pController = NULL;
m_pSteamUGC = NULL;
m_pSteamAppList = NULL;
+ m_pSteamMusic = NULL;
+ m_pSteamMusicRemote= NULL;
+ m_pSteamHTMLSurface = NULL;
#ifdef _PS3
m_pSteamPS3OverlayRender = NULL;
#endif
@@ -536,7 +547,19 @@ inline bool CSteamAPIContext::Init()
{
return false;
}
-
+
+ m_pSteamMusicRemote = SteamClient()->GetISteamMusicRemote( hSteamUser, hSteamPipe, STEAMMUSICREMOTE_INTERFACE_VERSION );
+ if ( !m_pSteamMusicRemote )
+ {
+ return false;
+ }
+
+ m_pSteamHTMLSurface = SteamClient()->GetISteamHTMLSurface( hSteamUser, hSteamPipe, STEAMHTMLSURFACE_INTERFACE_VERSION );
+ if ( !m_pSteamHTMLSurface )
+ {
+ return false;
+ }
+
#ifdef _PS3
m_pSteamPS3OverlayRender = SteamClient()->GetISteamPS3OverlayRender();
#endif
diff --git a/sp/src/public/steam/steam_gameserver.h b/sp/src/public/steam/steam_gameserver.h
index e031e313..98e26a72 100644
--- a/sp/src/public/steam/steam_gameserver.h
+++ b/sp/src/public/steam/steam_gameserver.h
@@ -1,4 +1,4 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
+//====== Copyright � 1996-2008, Valve Corporation, All rights reserved. =======
//
// Purpose:
//
@@ -151,7 +151,7 @@ inline bool CSteamGameServerAPIContext::Init()
return false;
m_pSteamHTTP = g_pSteamClientGameServer->GetISteamHTTP( hSteamUser, hSteamPipe, STEAMHTTP_INTERFACE_VERSION );
- if ( !m_pSteamGameServerStats )
+ if ( !m_pSteamHTTP )
return false;
return true;
diff --git a/sp/src/public/steam/steamclientpublic.h b/sp/src/public/steam/steamclientpublic.h
index 62eddb76..500bf528 100644
--- a/sp/src/public/steam/steamclientpublic.h
+++ b/sp/src/public/steam/steamclientpublic.h
@@ -109,6 +109,11 @@ enum EResult
k_EResultRestrictedDevice = 82, // The device being used is not allowed to perform this action
k_EResultRegionLocked = 83, // The action could not be complete because it is region restricted
k_EResultRateLimitExceeded = 84, // Temporary rate limit exceeded, try again later, different from k_EResultLimitExceeded which may be permanent
+ k_EResultAccountLoginDeniedNeedTwoFactor = 85, // Need two-factor code to login
+ k_EResultItemDeleted = 86, // The thing we're trying to access has been deleted
+ k_EResultAccountLoginDeniedThrottle = 87, // login attempt failed, try to throttle response to possible attacker
+ k_EResultTwoFactorCodeMismatch = 88, // two factor code mismatch
+ k_EResultTwoFactorActivationCodeMismatch = 89, // activation code for two-factor didn't match
};
// Error codes for use with the voice functions
@@ -173,6 +178,7 @@ typedef enum
k_EAuthSessionResponseAuthTicketCanceled = 6, // The ticket has been canceled by the issuer
k_EAuthSessionResponseAuthTicketInvalidAlreadyUsed = 7, // This ticket has already been used, it is not valid.
k_EAuthSessionResponseAuthTicketInvalid = 8, // This ticket is not from a user instance currently connected to steam.
+ k_EAuthSessionResponsePublisherIssuedBan = 9, // The user is banned for this game. The ban came via the web api and not VAC
} EAuthSessionResponse;
// results from UserHasLicenseForApp
@@ -223,19 +229,21 @@ enum EAppReleaseState
//-----------------------------------------------------------------------------
enum EAppOwnershipFlags
{
- k_EAppOwnershipFlags_None = 0x000, // unknown
- k_EAppOwnershipFlags_OwnsLicense = 0x001, // owns license for this game
- k_EAppOwnershipFlags_FreeLicense = 0x002, // not paid for game
- k_EAppOwnershipFlags_RegionRestricted = 0x004, // owns app, but not allowed to play in current region
- k_EAppOwnershipFlags_LowViolence = 0x008, // only low violence version
- k_EAppOwnershipFlags_InvalidPlatform = 0x010, // app not supported on current platform
- k_EAppOwnershipFlags_SharedLicense = 0x020, // license was granted by authorized local device
- k_EAppOwnershipFlags_FreeWeekend = 0x040, // owned by a free weekend licenses
- k_EAppOwnershipFlags_LicenseLocked = 0x080, // shared license is locked (in use) by other user
- k_EAppOwnershipFlags_LicensePending = 0x100, // owns app, but transaction is still pending. Can't install or play
- k_EAppOwnershipFlags_LicenseExpired = 0x200, // doesn't own app anymore since license expired
- k_EAppOwnershipFlags_LicensePermanent = 0x400, // permanent license, not borrowed, or guest or freeweekend etc
- k_EAppOwnershipFlags_LicenseRecurring = 0x800, // Recurring license, user is charged periodically
+ k_EAppOwnershipFlags_None = 0x0000, // unknown
+ k_EAppOwnershipFlags_OwnsLicense = 0x0001, // owns license for this game
+ k_EAppOwnershipFlags_FreeLicense = 0x0002, // not paid for game
+ k_EAppOwnershipFlags_RegionRestricted = 0x0004, // owns app, but not allowed to play in current region
+ k_EAppOwnershipFlags_LowViolence = 0x0008, // only low violence version
+ k_EAppOwnershipFlags_InvalidPlatform = 0x0010, // app not supported on current platform
+ k_EAppOwnershipFlags_SharedLicense = 0x0020, // license was granted by authorized local device
+ k_EAppOwnershipFlags_FreeWeekend = 0x0040, // owned by a free weekend licenses
+ k_EAppOwnershipFlags_RetailLicense = 0x0080, // has a retail license for game, (CD-Key etc)
+ k_EAppOwnershipFlags_LicenseLocked = 0x0100, // shared license is locked (in use) by other user
+ k_EAppOwnershipFlags_LicensePending = 0x0200, // owns app, but transaction is still pending. Can't install or play
+ k_EAppOwnershipFlags_LicenseExpired = 0x0400, // doesn't own app anymore since license expired
+ k_EAppOwnershipFlags_LicensePermanent = 0x0800, // permanent license, not borrowed, or guest or freeweekend etc
+ k_EAppOwnershipFlags_LicenseRecurring = 0x1000, // Recurring license, user is charged periodically
+ k_EAppOwnershipFlags_LicenseCanceled = 0x2000, // Mark as canceled, but might be still active if recurring
};
@@ -249,17 +257,23 @@ enum EAppType
k_EAppType_Application = 0x002, // software application
k_EAppType_Tool = 0x004, // SDKs, editors & dedicated servers
k_EAppType_Demo = 0x008, // game demo
- k_EAppType_Media = 0x010, // media trailer
+ k_EAppType_Media_DEPRECATED = 0x010, // legacy - was used for game trailers, which are now just videos on the web
k_EAppType_DLC = 0x020, // down loadable content
k_EAppType_Guide = 0x040, // game guide, PDF etc
k_EAppType_Driver = 0x080, // hardware driver updater (ATI, Razor etc)
k_EAppType_Config = 0x100, // hidden app used to config Steam features (backpack, sales, etc)
+ k_EAppType_Film = 0x200, // A Movie (feature film)
+ k_EAppType_TVSeries = 0x400, // A TV or other video series which will have episodes and perhaps seasons
+ k_EAppType_Video = 0x800, // A video component of either a Film or TVSeries (may be the feature, an episode, preview, making-of, etc)
+ k_EAppType_Plugin = 0x1000, // Plug-in types for other Apps
+ k_EAppType_Music = 0x2000, // Music files
k_EAppType_Shortcut = 0x40000000, // just a shortcut, client side only
k_EAppType_DepotOnly = 0x80000000, // placeholder since depots and apps share the same namespace
};
+
//-----------------------------------------------------------------------------
// types of user game stats fields
// WARNING: DO NOT RENUMBER EXISTING VALUES - STORED IN DATABASE
@@ -297,7 +311,8 @@ enum EChatEntryType
k_EChatEntryTypeWasBanned = 9, // user was banned (data: 64-bit steamid of actor performing the ban)
k_EChatEntryTypeDisconnected = 10, // user disconnected
k_EChatEntryTypeHistoricalChat = 11, // a chat message from user's chat history or offilne message
-
+ k_EChatEntryTypeReserved1 = 12,
+ k_EChatEntryTypeReserved2 = 13,
};
@@ -323,18 +338,6 @@ enum EChatRoomEnterResponse
};
-//-----------------------------------------------------------------------------
-// Purpose: Status of a given depot version, these are stored in the DB, don't renumber
-//-----------------------------------------------------------------------------
-enum EStatusDepotVersion
-{
- k_EStatusDepotVersionInvalid = 0,
- k_EStatusDepotVersionDisabled = 1, // version was disabled, no manifest & content available
- k_EStatusDepotVersionAvailable = 2, // manifest & content is available, but not current
- k_EStatusDepotVersionCurrent = 3, // current depot version. The can be multiple, one for public and one for each beta key
-};
-
-
typedef void (*PFNLegacyKeyRegistration)( const char *pchCDKey, const char *pchInstallPath );
typedef bool (*PFNLegacyKeyInstalled)();
@@ -394,6 +397,7 @@ enum ENotificationPosition
#pragma pack( push, 1 )
#define CSTEAMID_DEFINED
+#define CSTEAMID_RENDERLINK_SUPPORT
// Steam ID structure (64 bits total)
class CSteamID
@@ -532,7 +536,7 @@ public:
}
-#if defined( INCLUDED_STEAM_COMMON_STEAMCOMMON_H )
+#if defined( INCLUDED_STEAM2_USERID_STRUCTS )
//-----------------------------------------------------------------------------
// Purpose: Initializes a steam ID from a Steam2 ID structure
// Input: pTSteamGlobalUserID - Steam2 ID to convert
@@ -727,8 +731,10 @@ public:
const char * Render() const; // renders this steam ID to string
static const char * Render( uint64 ulSteamID ); // static method to render a uint64 representation of a steam ID to a string
+#ifdef CSTEAMID_RENDERLINK_SUPPORT
const char * RenderLink() const; // renders this steam ID to an admin console link string
static const char * RenderLink( uint64 ulSteamID ); // static method to render a uint64 representation of a steam ID to a string
+#endif
void SetFromString( const char *pchSteamID, EUniverse eDefaultUniverse );
// SetFromString allows many partially-correct strings, constraining how
diff --git a/sp/src/public/steam/steamcontrollerpublic.h b/sp/src/public/steam/steamcontrollerpublic.h
index 04493332..327ea46a 100644
--- a/sp/src/public/steam/steamcontrollerpublic.h
+++ b/sp/src/public/steam/steamcontrollerpublic.h
@@ -16,10 +16,13 @@
// isteamcontroller.h.
#include "steamtypes.h"
#else
-// Otherwise, we assume it's a firmware build, which doesn't deal with all the
-// things that exist in steamtypes.h, and hardcode the typedefs we need.
-typedef unsigned int uint32;
-typedef unsigned __int64 uint64;
+#include <stdint.h>
+typedef uint32_t uint32;
+#ifdef __C51__
+typedef uint8_t uint64[8];
+#else
+typedef uint64_t uint64;
+#endif
#endif
#pragma pack(1)
diff --git a/sp/src/public/steam/steamhttpenums.h b/sp/src/public/steam/steamhttpenums.h
index 9ac2eeaf..11a4a03a 100644
--- a/sp/src/public/steam/steamhttpenums.h
+++ b/sp/src/public/steam/steamhttpenums.h
@@ -81,6 +81,7 @@ enum EHTTPStatusCode
k_EHTTPStatusCode415UnsupportedMediaType = 415,
k_EHTTPStatusCode416RequestedRangeNotSatisfiable = 416,
k_EHTTPStatusCode417ExpectationFailed = 417,
+ k_EHTTPStatusCode429TooManyRequests = 429,
// Server error codes
k_EHTTPStatusCode500InternalServerError = 500,
diff --git a/sp/src/public/steam/steamtypes.h b/sp/src/public/steam/steamtypes.h
index b26990da..c3320a10 100644
--- a/sp/src/public/steam/steamtypes.h
+++ b/sp/src/public/steam/steamtypes.h
@@ -148,4 +148,10 @@ typedef uint32 AccountID_t;
typedef uint32 PartnerId_t;
const PartnerId_t k_uPartnerIdInvalid = 0;
+// ID for a depot content manifest
+typedef uint64 ManifestId_t;
+const ManifestId_t k_uManifestIdInvalid = 0;
+
+
+
#endif // STEAMTYPES_H
diff --git a/sp/src/public/steam/steamvr.h b/sp/src/public/steam/steamvr.h
index 68a932dd..be62fc86 100644
--- a/sp/src/public/steam/steamvr.h
+++ b/sp/src/public/steam/steamvr.h
@@ -119,6 +119,11 @@ public:
*/
virtual void GetDXGIOutputInfo( int32_t *pnAdapterIndex, int32_t *pnAdapterOutputIndex ) = 0;
+ /** [Windows Only]
+ * Notifies the system that the VR output will appear in a particular window.
+ */
+ virtual void AttachToWindow( void *hWnd ) = 0;
+
// ------------------------------------
// Tracking Methods
// ------------------------------------
@@ -168,7 +173,7 @@ public:
virtual uint32_t GetDisplayId( char *pchBuffer, uint32_t unBufferLen ) = 0;
};
-static const char * const IHmd_Version = "IHmd_004";
+static const char * const IHmd_Version = "IHmd_005";
/** error codes returned by Vr_Init */
enum HmdError
@@ -187,11 +192,16 @@ enum HmdError
HmdError_Init_NotInitialized = 109,
HmdError_Driver_Failed = 200,
+ HmdError_Driver_Unknown = 201,
+ HmdError_Driver_HmdUnknown = 202,
+ HmdError_Driver_NotLoaded = 203,
HmdError_IPC_ServerInitFailed = 300,
HmdError_IPC_ConnectFailed = 301,
HmdError_IPC_SharedStateInitFailed = 302,
+ HmdError_VendorSpecific_UnableToConnectToOculusRuntime = 1000,
+
};
@@ -236,6 +246,15 @@ VR_INTERFACE IHmd *VR_Init( HmdError *peError );
* invalid after this point */
VR_INTERFACE void VR_Shutdown( );
+/** Returns true if there is an HMD attached. This check is as lightweight as possible and
+* can be called outside of VR_Init/VR_Shutdown. It should be used when an application wants
+* to know if initializing VR is a possibility but isn't ready to take that step yet.
+*/
+VR_INTERFACE bool VR_IsHmdPresent();
+
+/** Returns the string version of an HMD error. This function may be called outside of VR_Init()/VR_Shutdown(). */
+VR_INTERFACE const char *VR_GetStringForHmdError( HmdError error );
+
#pragma pack( pop )