source-engine/public/steam/isteamstreamlauncher.h
2020-10-24 10:23:05 +03:00

86 lines
2.9 KiB
C++

//========= 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