//========= Copyright Valve Corporation, All rights reserved. ============// // // Purpose: interface to streaming launcher functions in Steam // //============================================================================= #ifndef ISTEAMSTREAMLAUNCHER_H #define ISTEAMSTREAMLAUNCHER_H #ifdef _WIN32 #pragma once #endif #include "isteamclient.h" enum EStreamLauncherResult { k_EStreamLaunchResultSuccess = 0, k_EStreamLaunchResultFailure = 1, // Unknown streaming launch failure k_EStreamLaunchResultAlreadyStreaming = 2, // The UI is already streaming to a different application k_EStreamLaunchResultInvalidLauncher = 3, // The streaming launcher doesn't exist, or failed signature check k_EStreamLaunchResultNotReady = 4, // The UI isn't ready to go into streaming mode (Desktop UI login?) }; //----------------------------------------------------------------------------- // Purpose: interface to streaming launcher functions in Steam //----------------------------------------------------------------------------- class ISteamStreamLauncher { public: // Switch Steam to Big Picture mode and optionally set a launcher to run all games virtual EStreamLauncherResult StartStreaming( const char *pchLauncher = NULL ) = 0; // Switch Steam back to the original mode and clear the launcher virtual void StopStreaming() = 0; }; #define STEAMSTREAMLAUNCHER_INTERFACE_VERSION "SteamStreamLauncher001" // 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 //----------------------------------------------------------------------------- // The big picture window is visible and ready for streaming //----------------------------------------------------------------------------- struct BigPictureStreamingResult_t { enum { k_iCallback = k_iSteamStreamLauncherCallbacks + 1 }; bool m_bSuccess; void *m_hwnd; }; //----------------------------------------------------------------------------- // The user requested that the application stop streaming //----------------------------------------------------------------------------- struct StopStreamingRequest_t { enum { k_iCallback = k_iSteamStreamLauncherCallbacks + 2 }; }; //----------------------------------------------------------------------------- // The big picture window is closed and no longer ready for streaming //----------------------------------------------------------------------------- struct BigPictureStreamingDone_t { enum { k_iCallback = k_iSteamStreamLauncherCallbacks + 3 }; }; //----------------------------------------------------------------------------- // Steam is about to restart, continue streaming when it is available again //----------------------------------------------------------------------------- struct BigPictureStreamRestarting_t { enum { k_iCallback = k_iSteamStreamLauncherCallbacks + 4 }; }; #pragma pack( pop ) #endif // ISTEAMSTREAMLAUNCHER_H