summaryrefslogtreecommitdiff
path: root/Assembly_Firstpass/Steamworks/SteamUser.cs
blob: b5cde1438c9cbd8b3f7582aeb6392e19d1524c4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
using System;
using System.Runtime.InteropServices;

namespace Steamworks;

public static class SteamUser
{
	public static HSteamUser GetHSteamUser()
	{
		InteropHelp.TestIfAvailableClient();
		return (HSteamUser)NativeMethods.ISteamUser_GetHSteamUser(CSteamAPIContext.GetSteamUser());
	}

	public static bool BLoggedOn()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BLoggedOn(CSteamAPIContext.GetSteamUser());
	}

	public static CSteamID GetSteamID()
	{
		InteropHelp.TestIfAvailableClient();
		return (CSteamID)NativeMethods.ISteamUser_GetSteamID(CSteamAPIContext.GetSteamUser());
	}

	public static int InitiateGameConnection(byte[] pAuthBlob, int cbMaxAuthBlob, CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer, bool bSecure)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_InitiateGameConnection(CSteamAPIContext.GetSteamUser(), pAuthBlob, cbMaxAuthBlob, steamIDGameServer, unIPServer, usPortServer, bSecure);
	}

	public static void TerminateGameConnection(uint unIPServer, ushort usPortServer)
	{
		InteropHelp.TestIfAvailableClient();
		NativeMethods.ISteamUser_TerminateGameConnection(CSteamAPIContext.GetSteamUser(), unIPServer, usPortServer);
	}

	public static void TrackAppUsageEvent(CGameID gameID, int eAppUsageEvent, string pchExtraInfo = "")
	{
		InteropHelp.TestIfAvailableClient();
		using InteropHelp.UTF8StringHandle pchExtraInfo2 = new InteropHelp.UTF8StringHandle(pchExtraInfo);
		NativeMethods.ISteamUser_TrackAppUsageEvent(CSteamAPIContext.GetSteamUser(), gameID, eAppUsageEvent, pchExtraInfo2);
	}

	public static bool GetUserDataFolder(out string pchBuffer, int cubBuffer)
	{
		InteropHelp.TestIfAvailableClient();
		IntPtr intPtr = Marshal.AllocHGlobal(cubBuffer);
		bool flag = NativeMethods.ISteamUser_GetUserDataFolder(CSteamAPIContext.GetSteamUser(), intPtr, cubBuffer);
		pchBuffer = (flag ? InteropHelp.PtrToStringUTF8(intPtr) : null);
		Marshal.FreeHGlobal(intPtr);
		return flag;
	}

	public static void StartVoiceRecording()
	{
		InteropHelp.TestIfAvailableClient();
		NativeMethods.ISteamUser_StartVoiceRecording(CSteamAPIContext.GetSteamUser());
	}

	public static void StopVoiceRecording()
	{
		InteropHelp.TestIfAvailableClient();
		NativeMethods.ISteamUser_StopVoiceRecording(CSteamAPIContext.GetSteamUser());
	}

	public static EVoiceResult GetAvailableVoice(out uint pcbCompressed)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_GetAvailableVoice(CSteamAPIContext.GetSteamUser(), out pcbCompressed, IntPtr.Zero, 0u);
	}

	public static EVoiceResult GetVoice(bool bWantCompressed, byte[] pDestBuffer, uint cbDestBufferSize, out uint nBytesWritten)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_GetVoice(CSteamAPIContext.GetSteamUser(), bWantCompressed, pDestBuffer, cbDestBufferSize, out nBytesWritten, bWantUncompressed_Deprecated: false, IntPtr.Zero, 0u, IntPtr.Zero, 0u);
	}

	public static EVoiceResult DecompressVoice(byte[] pCompressed, uint cbCompressed, byte[] pDestBuffer, uint cbDestBufferSize, out uint nBytesWritten, uint nDesiredSampleRate)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_DecompressVoice(CSteamAPIContext.GetSteamUser(), pCompressed, cbCompressed, pDestBuffer, cbDestBufferSize, out nBytesWritten, nDesiredSampleRate);
	}

	public static uint GetVoiceOptimalSampleRate()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_GetVoiceOptimalSampleRate(CSteamAPIContext.GetSteamUser());
	}

	public static HAuthTicket GetAuthSessionTicket(byte[] pTicket, int cbMaxTicket, out uint pcbTicket)
	{
		InteropHelp.TestIfAvailableClient();
		return (HAuthTicket)NativeMethods.ISteamUser_GetAuthSessionTicket(CSteamAPIContext.GetSteamUser(), pTicket, cbMaxTicket, out pcbTicket);
	}

	public static EBeginAuthSessionResult BeginAuthSession(byte[] pAuthTicket, int cbAuthTicket, CSteamID steamID)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BeginAuthSession(CSteamAPIContext.GetSteamUser(), pAuthTicket, cbAuthTicket, steamID);
	}

	public static void EndAuthSession(CSteamID steamID)
	{
		InteropHelp.TestIfAvailableClient();
		NativeMethods.ISteamUser_EndAuthSession(CSteamAPIContext.GetSteamUser(), steamID);
	}

	public static void CancelAuthTicket(HAuthTicket hAuthTicket)
	{
		InteropHelp.TestIfAvailableClient();
		NativeMethods.ISteamUser_CancelAuthTicket(CSteamAPIContext.GetSteamUser(), hAuthTicket);
	}

	public static EUserHasLicenseForAppResult UserHasLicenseForApp(CSteamID steamID, AppId_t appID)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_UserHasLicenseForApp(CSteamAPIContext.GetSteamUser(), steamID, appID);
	}

	public static bool BIsBehindNAT()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BIsBehindNAT(CSteamAPIContext.GetSteamUser());
	}

	public static void AdvertiseGame(CSteamID steamIDGameServer, uint unIPServer, ushort usPortServer)
	{
		InteropHelp.TestIfAvailableClient();
		NativeMethods.ISteamUser_AdvertiseGame(CSteamAPIContext.GetSteamUser(), steamIDGameServer, unIPServer, usPortServer);
	}

	public static SteamAPICall_t RequestEncryptedAppTicket(byte[] pDataToInclude, int cbDataToInclude)
	{
		InteropHelp.TestIfAvailableClient();
		return (SteamAPICall_t)NativeMethods.ISteamUser_RequestEncryptedAppTicket(CSteamAPIContext.GetSteamUser(), pDataToInclude, cbDataToInclude);
	}

	public static bool GetEncryptedAppTicket(byte[] pTicket, int cbMaxTicket, out uint pcbTicket)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_GetEncryptedAppTicket(CSteamAPIContext.GetSteamUser(), pTicket, cbMaxTicket, out pcbTicket);
	}

	public static int GetGameBadgeLevel(int nSeries, bool bFoil)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_GetGameBadgeLevel(CSteamAPIContext.GetSteamUser(), nSeries, bFoil);
	}

	public static int GetPlayerSteamLevel()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_GetPlayerSteamLevel(CSteamAPIContext.GetSteamUser());
	}

	public static SteamAPICall_t RequestStoreAuthURL(string pchRedirectURL)
	{
		InteropHelp.TestIfAvailableClient();
		using InteropHelp.UTF8StringHandle pchRedirectURL2 = new InteropHelp.UTF8StringHandle(pchRedirectURL);
		return (SteamAPICall_t)NativeMethods.ISteamUser_RequestStoreAuthURL(CSteamAPIContext.GetSteamUser(), pchRedirectURL2);
	}

	public static bool BIsPhoneVerified()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BIsPhoneVerified(CSteamAPIContext.GetSteamUser());
	}

	public static bool BIsTwoFactorEnabled()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BIsTwoFactorEnabled(CSteamAPIContext.GetSteamUser());
	}

	public static bool BIsPhoneIdentifying()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BIsPhoneIdentifying(CSteamAPIContext.GetSteamUser());
	}

	public static bool BIsPhoneRequiringVerification()
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BIsPhoneRequiringVerification(CSteamAPIContext.GetSteamUser());
	}

	public static SteamAPICall_t GetMarketEligibility()
	{
		InteropHelp.TestIfAvailableClient();
		return (SteamAPICall_t)NativeMethods.ISteamUser_GetMarketEligibility(CSteamAPIContext.GetSteamUser());
	}

	public static SteamAPICall_t GetDurationControl()
	{
		InteropHelp.TestIfAvailableClient();
		return (SteamAPICall_t)NativeMethods.ISteamUser_GetDurationControl(CSteamAPIContext.GetSteamUser());
	}

	public static bool BSetDurationControlOnlineState(EDurationControlOnlineState eNewState)
	{
		InteropHelp.TestIfAvailableClient();
		return NativeMethods.ISteamUser_BSetDurationControlOnlineState(CSteamAPIContext.GetSteamUser(), eNewState);
	}
}