using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using Facepunch.Steamworks.Data;
namespace Facepunch.Steamworks
{
///
/// Undocumented Parental Settings
///
public class SteamVideo : SteamClientClass
{
internal static ISteamVideo Internal => Interface as ISteamVideo;
internal override void InitializeInterface( bool server )
{
SetInterface( server, new ISteamVideo( server ) );
InstallEvents();
}
internal static void InstallEvents()
{
Dispatch.Install( x => OnBroadcastStarted?.Invoke() );
Dispatch.Install( x => OnBroadcastStopped?.Invoke( x.Result ) );
}
public static event Action OnBroadcastStarted;
public static event Action OnBroadcastStopped;
///
/// Return true if currently using Steam's live broadcasting
///
public static bool IsBroadcasting
{
get
{
int viewers = 0;
return Internal.IsBroadcasting( ref viewers );
}
}
///
/// If we're broadcasting, will return the number of live viewers
///
public static int NumViewers
{
get
{
int viewers = 0;
if ( !Internal.IsBroadcasting( ref viewers ) )
return 0;
return viewers;
}
}
}
}