/// <summary> /// <para>/ Returns info about a configuration value. Returns false if the value does not exist.</para> /// <para>/ pOutNextValue can be used to iterate through all of the known configuration values.</para> /// <para>/ (Use GetFirstConfigValue() to begin the iteration, will be k_ESteamNetworkingConfig_Invalid on the last value)</para> /// <para>/ Any of the output parameters can be NULL if you do not need that information.</para> /// <para>/</para> /// <para>/ See k_ESteamNetworkingConfig_EnumerateDevVars for some more info about "dev" variables,</para> /// <para>/ which are usually excluded from the set of variables enumerated using this function.</para> /// </summary> public static bool GetConfigValueInfo(ESteamNetworkingConfigValue eValue, IntPtr pOutName, out ESteamNetworkingConfigDataType pOutDataType, out ESteamNetworkingConfigScope pOutScope, out ESteamNetworkingConfigValue pOutNextValue) { InteropHelp.TestIfAvailableClient(); return(NativeMethods.ISteamNetworkingUtils_GetConfigValueInfo(CSteamAPIContext.GetSteamNetworkingUtils(), eValue, pOutName, out pOutDataType, out pOutScope, out pOutNextValue)); }
/// <summary> /// <para>/ Set a configuration value, using a struct to pass the value.</para> /// <para>/ (This is just a convenience shortcut; see below for the implementation and</para> /// <para>/ a little insight into how SteamNetworkingConfigValue_t is used when</para> /// <para>/ setting config options during listen socket and connection creation.)</para> /// <para>/ Get a configuration value.</para> /// <para>/ - eValue: which value to fetch</para> /// <para>/ - eScopeType: query setting on what type of object</para> /// <para>/ - eScopeArg: the object to query the setting for</para> /// <para>/ - pOutDataType: If non-NULL, the data type of the value is returned.</para> /// <para>/ - pResult: Where to put the result. Pass NULL to query the required buffer size. (k_ESteamNetworkingGetConfigValue_BufferTooSmall will be returned.)</para> /// <para>/ - cbResult: IN: the size of your buffer. OUT: the number of bytes filled in or required.</para> /// </summary> public static ESteamNetworkingGetConfigValueResult GetConfigValue(ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, out ESteamNetworkingConfigDataType pOutDataType, IntPtr pResult, out ulong cbResult) { InteropHelp.TestIfAvailableClient(); return(NativeMethods.ISteamNetworkingUtils_GetConfigValue(CSteamAPIContext.GetSteamNetworkingUtils(), eValue, eScopeType, scopeObj, out pOutDataType, pResult, out cbResult)); }
/// <summary> /// <para>/ Iterate the list of all configuration values in the current environment that it might</para> /// <para>/ be possible to display or edit using a generic UI. To get the first iterable value,</para> /// <para>/ pass k_ESteamNetworkingConfig_Invalid. Returns k_ESteamNetworkingConfig_Invalid</para> /// <para>/ to signal end of list.</para> /// <para>/</para> /// <para>/ The bEnumerateDevVars argument can be used to include "dev" vars. These are vars that</para> /// <para>/ are recommended to only be editable in "debug" or "dev" mode and typically should not be</para> /// <para>/ shown in a retail environment where a malicious local user might use this to cheat.</para> /// </summary> public static ESteamNetworkingConfigValue IterateGenericEditableConfigValues(ESteamNetworkingConfigValue eCurrent, bool bEnumerateDevVars) { InteropHelp.TestIfAvailableClient(); return(NativeMethods.ISteamNetworkingUtils_IterateGenericEditableConfigValues(CSteamAPIContext.GetSteamNetworkingUtils(), eCurrent, bEnumerateDevVars)); }
/// <summary> /// <para> Set and get configuration values, see ESteamNetworkingConfigValue for individual descriptions.</para> /// <para> Shortcuts for common cases. (Implemented as inline functions below)</para> /// <para>/ Set a configuration value.</para> /// <para>/ - eValue: which value is being set</para> /// <para>/ - eScope: Onto what type of object are you applying the setting?</para> /// <para>/ - scopeArg: Which object you want to change? (Ignored for global scope). E.g. connection handle, listen socket handle, interface pointer, etc.</para> /// <para>/ - eDataType: What type of data is in the buffer at pValue? This must match the type of the variable exactly!</para> /// <para>/ - pArg: Value to set it to. You can pass NULL to remove a non-global setting at this scope,</para> /// <para>/ causing the value for that object to use global defaults. Or at global scope, passing NULL</para> /// <para>/ will reset any custom value and restore it to the system default.</para> /// <para>/ NOTE: When setting callback functions, do not pass the function pointer directly.</para> /// <para>/ Your argument should be a pointer to a function pointer.</para> /// </summary> public static bool SetConfigValue(ESteamNetworkingConfigValue eValue, ESteamNetworkingConfigScope eScopeType, IntPtr scopeObj, ESteamNetworkingConfigDataType eDataType, IntPtr pArg) { InteropHelp.TestIfAvailableClient(); return(NativeMethods.ISteamNetworkingUtils_SetConfigValue(CSteamAPIContext.GetSteamNetworkingUtils(), eValue, eScopeType, scopeObj, eDataType, pArg)); }
/// <summary> /// <para>/ Get info about a configuration value. Returns the name of the value,</para> /// <para>/ or NULL if the value doesn't exist. Other output parameters can be NULL</para> /// <para>/ if you do not need them.</para> /// </summary> public static string GetConfigValueInfo(ESteamNetworkingConfigValue eValue, out ESteamNetworkingConfigDataType pOutDataType, out ESteamNetworkingConfigScope pOutScope) { InteropHelp.TestIfAvailableClient(); return(InteropHelp.PtrToStringUTF8(NativeMethods.ISteamNetworkingUtils_GetConfigValueInfo(CSteamAPIContext.GetSteamNetworkingUtils(), eValue, out pOutDataType, out pOutScope))); }