summaryrefslogtreecommitdiff
path: root/steam/isteamremoteplay.h
diff options
context:
space:
mode:
Diffstat (limited to 'steam/isteamremoteplay.h')
-rw-r--r--steam/isteamremoteplay.h99
1 files changed, 99 insertions, 0 deletions
diff --git a/steam/isteamremoteplay.h b/steam/isteamremoteplay.h
new file mode 100644
index 0000000..df5ca3f
--- /dev/null
+++ b/steam/isteamremoteplay.h
@@ -0,0 +1,99 @@
+//============ Copyright (c) Valve Corporation, All rights reserved. ============
+
+#ifndef ISTEAMREMOTEPLAY_H
+#define ISTEAMREMOTEPLAY_H
+#ifdef _WIN32
+#pragma once
+#endif
+
+#include "steam_api_common.h"
+
+
+//-----------------------------------------------------------------------------
+// Purpose: The form factor of a device
+//-----------------------------------------------------------------------------
+enum ESteamDeviceFormFactor
+{
+ k_ESteamDeviceFormFactorUnknown = 0,
+ k_ESteamDeviceFormFactorPhone = 1,
+ k_ESteamDeviceFormFactorTablet = 2,
+ k_ESteamDeviceFormFactorComputer = 3,
+ k_ESteamDeviceFormFactorTV = 4,
+ k_ESteamDeviceFormFactorVRHeadset = 5,
+};
+
+// Steam Remote Play session ID
+typedef uint32 RemotePlaySessionID_t;
+
+
+//-----------------------------------------------------------------------------
+// Purpose: Functions to provide information about Steam Remote Play sessions
+//-----------------------------------------------------------------------------
+class ISteamRemotePlay
+{
+public:
+ // Get the number of currently connected Steam Remote Play sessions
+ virtual uint32 GetSessionCount() = 0;
+
+ // Get the currently connected Steam Remote Play session ID at the specified index. Returns zero if index is out of bounds.
+ virtual RemotePlaySessionID_t GetSessionID( int iSessionIndex ) = 0;
+
+ // Get the SteamID of the connected user
+ virtual CSteamID GetSessionSteamID( RemotePlaySessionID_t unSessionID ) = 0;
+
+ // Get the name of the session client device
+ // This returns NULL if the sessionID is not valid
+ virtual const char *GetSessionClientName( RemotePlaySessionID_t unSessionID ) = 0;
+
+ // Get the form factor of the session client device
+ virtual ESteamDeviceFormFactor GetSessionClientFormFactor( RemotePlaySessionID_t unSessionID ) = 0;
+
+ // Get the resolution, in pixels, of the session client device
+ // This is set to 0x0 if the resolution is not available
+ virtual bool BGetSessionClientResolution( RemotePlaySessionID_t unSessionID, int *pnResolutionX, int *pnResolutionY ) = 0;
+
+ // Start Remote Play Together and optionally show the UI in the overlay
+ // This returns false if Remote Play Together can't be started or your game is not configured for Remote Play Together
+ virtual bool BStartRemotePlayTogether( bool bShowOverlay = true ) = 0;
+
+ // Invite a friend to Remote Play Together, or create a guest invite if steamIDFriend is empty
+ // This will automatically start Remote Play Together if it hasn't already been started
+ // This returns false if the invite can't be sent or your game is not configured for Remote Play Together
+ virtual bool BSendRemotePlayTogetherInvite( CSteamID steamIDFriend ) = 0;
+};
+
+#define STEAMREMOTEPLAY_INTERFACE_VERSION "STEAMREMOTEPLAY_INTERFACE_VERSION002"
+
+// Global interface accessor
+inline ISteamRemotePlay *SteamRemotePlay();
+STEAM_DEFINE_USER_INTERFACE_ACCESSOR( ISteamRemotePlay *, SteamRemotePlay, STEAMREMOTEPLAY_INTERFACE_VERSION );
+
+// callbacks
+#if defined( VALVE_CALLBACK_PACK_SMALL )
+#pragma pack( push, 4 )
+#elif defined( VALVE_CALLBACK_PACK_LARGE )
+#pragma pack( push, 8 )
+#else
+#error steam_api_common.h should define VALVE_CALLBACK_PACK_xxx
+#endif
+
+
+STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionConnected_t, k_iSteamRemotePlayCallbacks + 1 )
+ STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID )
+STEAM_CALLBACK_END( 0 )
+
+
+STEAM_CALLBACK_BEGIN( SteamRemotePlaySessionDisconnected_t, k_iSteamRemotePlayCallbacks + 2 )
+ STEAM_CALLBACK_MEMBER( 0, RemotePlaySessionID_t, m_unSessionID )
+STEAM_CALLBACK_END( 0 )
+
+
+STEAM_CALLBACK_BEGIN( SteamRemotePlayTogetherGuestInvite_t, k_iSteamRemotePlayCallbacks + 3 )
+ STEAM_CALLBACK_MEMBER_ARRAY( 0, char, m_szConnectURL, 1024 )
+STEAM_CALLBACK_END( 0 )
+
+
+#pragma pack( pop )
+
+
+#endif // #define ISTEAMREMOTEPLAY_H