38f1ddb...178a853: v0.8.9.1, removed content folder
This commit is contained in:
@@ -0,0 +1,283 @@
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Linq;
|
||||
|
||||
namespace SteamNative
|
||||
{
|
||||
internal unsafe class SteamClient : IDisposable
|
||||
{
|
||||
//
|
||||
// Holds a platform specific implentation
|
||||
//
|
||||
internal Platform.Interface platform;
|
||||
internal Facepunch.Steamworks.BaseSteamworks steamworks;
|
||||
|
||||
//
|
||||
// Constructor decides which implementation to use based on current platform
|
||||
//
|
||||
internal SteamClient( Facepunch.Steamworks.BaseSteamworks steamworks, IntPtr pointer )
|
||||
{
|
||||
this.steamworks = steamworks;
|
||||
|
||||
if ( Platform.IsWindows64 ) platform = new Platform.Win64( pointer );
|
||||
else if ( Platform.IsWindows32 ) platform = new Platform.Win32( pointer );
|
||||
else if ( Platform.IsLinux32 ) platform = new Platform.Linux32( pointer );
|
||||
else if ( Platform.IsLinux64 ) platform = new Platform.Linux64( pointer );
|
||||
else if ( Platform.IsOsx ) platform = new Platform.Mac( pointer );
|
||||
}
|
||||
|
||||
//
|
||||
// Class is invalid if we don't have a valid implementation
|
||||
//
|
||||
public bool IsValid{ get{ return platform != null && platform.IsValid; } }
|
||||
|
||||
//
|
||||
// When shutting down clear all the internals to avoid accidental use
|
||||
//
|
||||
public virtual void Dispose()
|
||||
{
|
||||
if ( platform != null )
|
||||
{
|
||||
platform.Dispose();
|
||||
platform = null;
|
||||
}
|
||||
}
|
||||
|
||||
// bool
|
||||
public bool BReleaseSteamPipe( HSteamPipe hSteamPipe /*HSteamPipe*/ )
|
||||
{
|
||||
return platform.ISteamClient_BReleaseSteamPipe( hSteamPipe.Value );
|
||||
}
|
||||
|
||||
// bool
|
||||
public bool BShutdownIfAllPipesClosed()
|
||||
{
|
||||
return platform.ISteamClient_BShutdownIfAllPipesClosed();
|
||||
}
|
||||
|
||||
// HSteamUser
|
||||
public HSteamUser ConnectToGlobalUser( HSteamPipe hSteamPipe /*HSteamPipe*/ )
|
||||
{
|
||||
return platform.ISteamClient_ConnectToGlobalUser( hSteamPipe.Value );
|
||||
}
|
||||
|
||||
// HSteamUser
|
||||
public HSteamUser CreateLocalUser( out HSteamPipe phSteamPipe /*HSteamPipe **/, AccountType eAccountType /*EAccountType*/ )
|
||||
{
|
||||
return platform.ISteamClient_CreateLocalUser( out phSteamPipe.Value, eAccountType );
|
||||
}
|
||||
|
||||
// HSteamPipe
|
||||
public HSteamPipe CreateSteamPipe()
|
||||
{
|
||||
return platform.ISteamClient_CreateSteamPipe();
|
||||
}
|
||||
|
||||
// uint
|
||||
public uint GetIPCCallCount()
|
||||
{
|
||||
return platform.ISteamClient_GetIPCCallCount();
|
||||
}
|
||||
|
||||
// ISteamAppList *
|
||||
public SteamAppList GetISteamAppList( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamAppList( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamAppList( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamApps *
|
||||
public SteamApps GetISteamApps( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamApps( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamApps( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamController *
|
||||
public SteamController GetISteamController( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamController( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamController( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamFriends *
|
||||
public SteamFriends GetISteamFriends( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamFriends( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamFriends( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamGameServer *
|
||||
public SteamGameServer GetISteamGameServer( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamGameServer( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamGameServer( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamGameServerStats *
|
||||
public SteamGameServerStats GetISteamGameServerStats( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamGameServerStats( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamGameServerStats( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// IntPtr
|
||||
public IntPtr GetISteamGenericInterface( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
return platform.ISteamClient_GetISteamGenericInterface( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
}
|
||||
|
||||
// ISteamHTMLSurface *
|
||||
public SteamHTMLSurface GetISteamHTMLSurface( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamHTMLSurface( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamHTMLSurface( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamHTTP *
|
||||
public SteamHTTP GetISteamHTTP( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamHTTP( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamHTTP( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamInventory *
|
||||
public SteamInventory GetISteamInventory( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamInventory( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamInventory( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamMatchmaking *
|
||||
public SteamMatchmaking GetISteamMatchmaking( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamMatchmaking( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamMatchmaking( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamMatchmakingServers *
|
||||
public SteamMatchmakingServers GetISteamMatchmakingServers( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamMatchmakingServers( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamMatchmakingServers( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamMusic *
|
||||
public SteamMusic GetISteamMusic( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamMusic( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamMusic( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamMusicRemote *
|
||||
public SteamMusicRemote GetISteamMusicRemote( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamMusicRemote( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamMusicRemote( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamNetworking *
|
||||
public SteamNetworking GetISteamNetworking( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamNetworking( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamNetworking( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamParentalSettings *
|
||||
public SteamParentalSettings GetISteamParentalSettings( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamParentalSettings( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamParentalSettings( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamRemoteStorage *
|
||||
public SteamRemoteStorage GetISteamRemoteStorage( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamRemoteStorage( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamRemoteStorage( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamScreenshots *
|
||||
public SteamScreenshots GetISteamScreenshots( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamScreenshots( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamScreenshots( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamUGC *
|
||||
public SteamUGC GetISteamUGC( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamUGC( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamUGC( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamUser *
|
||||
public SteamUser GetISteamUser( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamUser( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamUser( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamUserStats *
|
||||
public SteamUserStats GetISteamUserStats( HSteamUser hSteamUser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamUserStats( hSteamUser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamUserStats( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamUtils *
|
||||
public SteamUtils GetISteamUtils( HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamUtils( hSteamPipe.Value, pchVersion );
|
||||
return new SteamUtils( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// ISteamVideo *
|
||||
public SteamVideo GetISteamVideo( HSteamUser hSteamuser /*HSteamUser*/, HSteamPipe hSteamPipe /*HSteamPipe*/, string pchVersion /*const char **/ )
|
||||
{
|
||||
IntPtr interface_pointer;
|
||||
interface_pointer = platform.ISteamClient_GetISteamVideo( hSteamuser.Value, hSteamPipe.Value, pchVersion );
|
||||
return new SteamVideo( steamworks, interface_pointer );
|
||||
}
|
||||
|
||||
// void
|
||||
public void ReleaseUser( HSteamPipe hSteamPipe /*HSteamPipe*/, HSteamUser hUser /*HSteamUser*/ )
|
||||
{
|
||||
platform.ISteamClient_ReleaseUser( hSteamPipe.Value, hUser.Value );
|
||||
}
|
||||
|
||||
// void
|
||||
public void SetLocalIPBinding( uint unIP /*uint32*/, ushort usPort /*uint16*/ )
|
||||
{
|
||||
platform.ISteamClient_SetLocalIPBinding( unIP, usPort );
|
||||
}
|
||||
|
||||
// void
|
||||
public void SetWarningMessageHook( IntPtr pFunction /*SteamAPIWarningMessageHook_t*/ )
|
||||
{
|
||||
platform.ISteamClient_SetWarningMessageHook( (IntPtr) pFunction );
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user