Merge pull request #6063 from akallabeth/expert_settings

Added expert settings /tune and /tune-list
This commit is contained in:
David Fort 2020-05-04 12:09:39 +02:00 committed by GitHub
commit 5b98aa7515
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 2978 additions and 2232 deletions

View File

@ -3186,6 +3186,89 @@ int freerdp_client_settings_parse_command_line_arguments(rdpSettings* settings,
if (!settings->SmartcardLogon)
activate_smartcard_logon_rdp(settings);
}
CommandLineSwitchCase(arg, "tune")
{
size_t x, count;
char** p = CommandLineParseCommaSeparatedValuesEx("tune", arg->Value, &count);
if (!p)
return COMMAND_LINE_ERROR;
for (x = 1; x < count; x++)
{
char* cur = p[x];
char* sep = strchr(cur, ':');
if (!sep)
{
free(p);
return COMMAND_LINE_ERROR;
}
*sep++ = '\0';
if (!freerdp_settings_set_value_for_name(settings, cur, sep))
{
free(p);
return COMMAND_LINE_ERROR;
}
}
free(p);
}
CommandLineSwitchCase(arg, "tune-list")
{
size_t x;
SSIZE_T type = 0;
printf("%s\t%50s\t%s\t%s", "<index>", "<key>", "<type>", "<default value>\n");
for (x = 0; x < FreeRDP_Settings_StableAPI_MAX; x++)
{
const char* name = freerdp_settings_get_name_for_key(x);
type = freerdp_settings_get_type_for_key(x);
switch (type)
{
case RDP_SETTINGS_TYPE_BOOL:
printf("%" PRIuz "\t%50s\tBOOL\t%s\n", x, name,
freerdp_settings_get_bool(settings, x) ? "TRUE" : "FALSE");
break;
case RDP_SETTINGS_TYPE_UINT16:
printf("%" PRIuz "\t%50s\tUINT16\t%" PRIu16 "\n", x, name,
freerdp_settings_get_uint16(settings, x));
break;
case RDP_SETTINGS_TYPE_INT16:
printf("%" PRIuz "\t%50s\tINT16\t%" PRId16 "\n", x, name,
freerdp_settings_get_int16(settings, x));
break;
case RDP_SETTINGS_TYPE_UINT32:
printf("%" PRIuz "\t%50s\tUINT32\t%" PRIu32 "\n", x, name,
freerdp_settings_get_uint32(settings, x));
break;
case RDP_SETTINGS_TYPE_INT32:
printf("%" PRIuz "\t%50s\tINT32\t%" PRId32 "\n", x, name,
freerdp_settings_get_int32(settings, x));
break;
case RDP_SETTINGS_TYPE_UINT64:
printf("%" PRIuz "\t%50s\tUINT64\t%" PRIu64 "\n", x, name,
freerdp_settings_get_uint64(settings, x));
break;
case RDP_SETTINGS_TYPE_INT64:
printf("%" PRIuz "\t%50s\tINT64\t%" PRId64 "\n", x, name,
freerdp_settings_get_int64(settings, x));
break;
case RDP_SETTINGS_TYPE_STRING:
printf("%" PRIuz "\t%50s\tSTRING\t%s"
"\n",
x, name, freerdp_settings_get_string(settings, x));
break;
case RDP_SETTINGS_TYPE_POINTER:
printf("%" PRIuz "\t%50s\tPOINTER\t%p"
"\n",
x, name, freerdp_settings_get_pointer(settings, x));
break;
default:
break;
}
}
return COMMAND_LINE_STATUS_PRINT;
}
CommandLineSwitchDefault(arg)
{
}

View File

@ -344,6 +344,10 @@ static const COMMAND_LINE_ARGUMENT_A args[] = {
"TLS security level - defaults to 1" },
{ "toggle-fullscreen", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueTrue, NULL, -1, NULL,
"Alt+Ctrl+Enter to toggle fullscreen" },
{ "tune", COMMAND_LINE_VALUE_REQUIRED, "<setting:value>,<setting:value>", "", NULL, -1, NULL,
"[experimental] directly manipulate freerdp settings, use with extreme caution!" },
{ "tune-list", COMMAND_LINE_VALUE_FLAG, NULL, NULL, NULL, -1, NULL,
"Print options allowed for /tune" },
{ "u", COMMAND_LINE_VALUE_REQUIRED, "[[<domain>\\]<user>|<user>[@<domain>]]", NULL, NULL, -1,
NULL, "Username" },
{ "unmap-buttons", COMMAND_LINE_VALUE_BOOL, NULL, BoolValueFalse, NULL, -1, NULL,

View File

@ -894,6 +894,7 @@ typedef struct _RDPDR_PARALLEL RDPDR_PARALLEL;
* FreeRDP Settings Data Structure
*/
#define FreeRDP_Settings_StableAPI_MAX 5312
struct rdp_settings
{
/**
@ -1561,6 +1562,19 @@ struct rdp_settings
};
typedef struct rdp_settings rdpSettings;
enum rdp_settings_type
{
RDP_SETTINGS_TYPE_BOOL,
RDP_SETTINGS_TYPE_UINT16,
RDP_SETTINGS_TYPE_INT16,
RDP_SETTINGS_TYPE_UINT32,
RDP_SETTINGS_TYPE_INT32,
RDP_SETTINGS_TYPE_UINT64,
RDP_SETTINGS_TYPE_INT64,
RDP_SETTINGS_TYPE_STRING,
RDP_SETTINGS_TYPE_POINTER
};
#ifdef __cplusplus
extern "C"
{
@ -1670,6 +1684,14 @@ extern "C"
FREERDP_API const void* freerdp_settings_get_pointer(const rdpSettings* settings, size_t id);
FREERDP_API BOOL freerdp_settings_set_value_for_name(rdpSettings* settings, const char* name,
const char* value);
FREERDP_API SSIZE_T freerdp_settings_get_key_for_name(const char* value);
FREERDP_API SSIZE_T freerdp_settings_get_type_for_name(const char* value);
FREERDP_API SSIZE_T freerdp_settings_get_type_for_key(size_t key);
FREERDP_API const char* freerdp_settings_get_name_for_key(size_t key);
#ifdef __cplusplus
}
#endif

View File

@ -22,6 +22,7 @@ set(${MODULE_PREFIX}_SRCS
addin.c
settings.c
settings_getters.c
settings_str.c
assistance.c)
freerdp_module_add(${${MODULE_PREFIX}_SRCS})

View File

@ -25,6 +25,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <winpr/crt.h>
@ -804,3 +805,123 @@ int freerdp_set_param_string(rdpSettings* settings, int id, const char* param)
{
return freerdp_settings_set_string(settings, (size_t)id, param) ? 0 : -1;
}
static BOOL value_to_uint(const char* value, ULONGLONG* result, ULONGLONG min, ULONGLONG max)
{
unsigned long long rc;
if (!value || !result)
return FALSE;
errno = 0;
rc = _strtoui64(value, NULL, 0);
if (errno != 0)
return FALSE;
if ((rc < min) || (rc > max))
return FALSE;
*result = rc;
return TRUE;
}
static BOOL value_to_int(const char* value, LONGLONG* result, LONGLONG min, LONGLONG max)
{
long long rc;
if (!value || !result)
return FALSE;
errno = 0;
rc = _strtoi64(value, NULL, 0);
if (errno != 0)
return FALSE;
if ((rc < min) || (rc > max))
return FALSE;
*result = rc;
return TRUE;
}
static BOOL parsing_fail(const char* key, const char* type, const char* value)
{
WLog_ERR(TAG, "Failed to parse key [%s] of type [%s]: value [%s]", key, type, value);
return FALSE;
}
BOOL freerdp_settings_set_value_for_name(rdpSettings* settings, const char* name, const char* value)
{
ULONGLONG uval;
LONGLONG ival;
SSIZE_T index, type;
if (!settings || !name)
return FALSE;
index = freerdp_settings_get_key_for_name(name);
if (index < 0)
{
WLog_ERR(TAG, "Invalid settings key [%s]", name);
return FALSE;
}
type = freerdp_settings_get_type_for_key((size_t)index);
switch (type)
{
case RDP_SETTINGS_TYPE_BOOL:
{
BOOL val = _strnicmp(value, "TRUE", 5) == 0;
if (!val && _strnicmp(value, "FALSE", 5) != 0)
return parsing_fail(name, "BOOL", value);
return freerdp_settings_set_bool(settings, index, val);
}
case RDP_SETTINGS_TYPE_UINT16:
if (!value_to_uint(value, &uval, 0, UINT16_MAX))
return parsing_fail(name, "UINT16", value);
if (!freerdp_settings_set_uint16(settings, index, uval))
return parsing_fail(name, "UINT16", value);
return TRUE;
case RDP_SETTINGS_TYPE_INT16:
if (!value_to_int(value, &ival, INT16_MIN, INT16_MAX))
return parsing_fail(name, "INT16", value);
if (!freerdp_settings_set_int16(settings, index, ival))
return parsing_fail(name, "INT16", value);
return TRUE;
case RDP_SETTINGS_TYPE_UINT32:
if (!value_to_uint(value, &uval, 0, UINT32_MAX))
return parsing_fail(name, "UINT32", value);
if (!freerdp_settings_set_uint32(settings, index, uval))
return parsing_fail(name, "UINT32", value);
return TRUE;
case RDP_SETTINGS_TYPE_INT32:
if (!value_to_int(value, &ival, INT32_MIN, INT32_MAX))
return parsing_fail(name, "INT32", value);
if (!freerdp_settings_set_int32(settings, index, ival))
return parsing_fail(name, "INT32", value);
return TRUE;
case RDP_SETTINGS_TYPE_UINT64:
if (!value_to_uint(value, &uval, 0, UINT64_MAX))
return parsing_fail(name, "UINT64", value);
if (!freerdp_settings_set_uint64(settings, index, uval))
return parsing_fail(name, "UINT64", value);
return TRUE;
case RDP_SETTINGS_TYPE_INT64:
if (!value_to_int(value, &ival, INT64_MIN, INT64_MAX))
return parsing_fail(name, "INT64", value);
if (!freerdp_settings_set_int64(settings, index, ival))
return parsing_fail(name, "INT64", value);
return TRUE;
case RDP_SETTINGS_TYPE_STRING:
return freerdp_settings_set_string(settings, index, value);
case RDP_SETTINGS_TYPE_POINTER:
return parsing_fail(name, "POINTER", value);
default:
return FALSE;
}
return FALSE;
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,434 @@
/* Generated by */
#include <freerdp/settings.h>
#include <freerdp/log.h>
#define TAG FREERDP_TAG("common.settings")
struct settings_str_entry
{
size_t id;
size_t type;
const char* str;
};
static const struct settings_str_entry settings_map[] = {
{ FreeRDP_AllowCacheWaitingList, 0, "FreeRDP_AllowCacheWaitingList" },
{ FreeRDP_AllowDesktopComposition, 0, "FreeRDP_AllowDesktopComposition" },
{ FreeRDP_AllowFontSmoothing, 0, "FreeRDP_AllowFontSmoothing" },
{ FreeRDP_AllowUnanouncedOrdersFromServer, 0, "FreeRDP_AllowUnanouncedOrdersFromServer" },
{ FreeRDP_AltSecFrameMarkerSupport, 0, "FreeRDP_AltSecFrameMarkerSupport" },
{ FreeRDP_AsyncChannels, 0, "FreeRDP_AsyncChannels" },
{ FreeRDP_AsyncInput, 0, "FreeRDP_AsyncInput" },
{ FreeRDP_AsyncUpdate, 0, "FreeRDP_AsyncUpdate" },
{ FreeRDP_AudioCapture, 0, "FreeRDP_AudioCapture" },
{ FreeRDP_AudioPlayback, 0, "FreeRDP_AudioPlayback" },
{ FreeRDP_Authentication, 0, "FreeRDP_Authentication" },
{ FreeRDP_AuthenticationOnly, 0, "FreeRDP_AuthenticationOnly" },
{ FreeRDP_AutoAcceptCertificate, 0, "FreeRDP_AutoAcceptCertificate" },
{ FreeRDP_AutoDenyCertificate, 0, "FreeRDP_AutoDenyCertificate" },
{ FreeRDP_AutoLogonEnabled, 0, "FreeRDP_AutoLogonEnabled" },
{ FreeRDP_AutoReconnectionEnabled, 0, "FreeRDP_AutoReconnectionEnabled" },
{ FreeRDP_BitmapCacheEnabled, 0, "FreeRDP_BitmapCacheEnabled" },
{ FreeRDP_BitmapCachePersistEnabled, 0, "FreeRDP_BitmapCachePersistEnabled" },
{ FreeRDP_BitmapCacheV3Enabled, 0, "FreeRDP_BitmapCacheV3Enabled" },
{ FreeRDP_BitmapCompressionDisabled, 0, "FreeRDP_BitmapCompressionDisabled" },
{ FreeRDP_ColorPointerFlag, 0, "FreeRDP_ColorPointerFlag" },
{ FreeRDP_CompressionEnabled, 0, "FreeRDP_CompressionEnabled" },
{ FreeRDP_ConsoleSession, 0, "FreeRDP_ConsoleSession" },
{ FreeRDP_CredentialsFromStdin, 0, "FreeRDP_CredentialsFromStdin" },
{ FreeRDP_Decorations, 0, "FreeRDP_Decorations" },
{ FreeRDP_DesktopResize, 0, "FreeRDP_DesktopResize" },
{ FreeRDP_DeviceRedirection, 0, "FreeRDP_DeviceRedirection" },
{ FreeRDP_DisableCredentialsDelegation, 0, "FreeRDP_DisableCredentialsDelegation" },
{ FreeRDP_DisableCtrlAltDel, 0, "FreeRDP_DisableCtrlAltDel" },
{ FreeRDP_DisableCursorBlinking, 0, "FreeRDP_DisableCursorBlinking" },
{ FreeRDP_DisableCursorShadow, 0, "FreeRDP_DisableCursorShadow" },
{ FreeRDP_DisableFullWindowDrag, 0, "FreeRDP_DisableFullWindowDrag" },
{ FreeRDP_DisableMenuAnims, 0, "FreeRDP_DisableMenuAnims" },
{ FreeRDP_DisableRemoteAppCapsCheck, 0, "FreeRDP_DisableRemoteAppCapsCheck" },
{ FreeRDP_DisableThemes, 0, "FreeRDP_DisableThemes" },
{ FreeRDP_DisableWallpaper, 0, "FreeRDP_DisableWallpaper" },
{ FreeRDP_DrawAllowColorSubsampling, 0, "FreeRDP_DrawAllowColorSubsampling" },
{ FreeRDP_DrawAllowDynamicColorFidelity, 0, "FreeRDP_DrawAllowDynamicColorFidelity" },
{ FreeRDP_DrawAllowSkipAlpha, 0, "FreeRDP_DrawAllowSkipAlpha" },
{ FreeRDP_DrawGdiPlusCacheEnabled, 0, "FreeRDP_DrawGdiPlusCacheEnabled" },
{ FreeRDP_DrawGdiPlusEnabled, 0, "FreeRDP_DrawGdiPlusEnabled" },
{ FreeRDP_DrawNineGridEnabled, 0, "FreeRDP_DrawNineGridEnabled" },
{ FreeRDP_DumpRemoteFx, 0, "FreeRDP_DumpRemoteFx" },
{ FreeRDP_DynamicDaylightTimeDisabled, 0, "FreeRDP_DynamicDaylightTimeDisabled" },
{ FreeRDP_DynamicResolutionUpdate, 0, "FreeRDP_DynamicResolutionUpdate" },
{ FreeRDP_EmbeddedWindow, 0, "FreeRDP_EmbeddedWindow" },
{ FreeRDP_EnableWindowsKey, 0, "FreeRDP_EnableWindowsKey" },
{ FreeRDP_EncomspVirtualChannel, 0, "FreeRDP_EncomspVirtualChannel" },
{ FreeRDP_ExtSecurity, 0, "FreeRDP_ExtSecurity" },
{ FreeRDP_ExternalCertificateManagement, 0, "FreeRDP_ExternalCertificateManagement" },
{ FreeRDP_FIPSMode, 0, "FreeRDP_FIPSMode" },
{ FreeRDP_FastPathInput, 0, "FreeRDP_FastPathInput" },
{ FreeRDP_FastPathOutput, 0, "FreeRDP_FastPathOutput" },
{ FreeRDP_ForceEncryptedCsPdu, 0, "FreeRDP_ForceEncryptedCsPdu" },
{ FreeRDP_ForceMultimon, 0, "FreeRDP_ForceMultimon" },
{ FreeRDP_FrameMarkerCommandEnabled, 0, "FreeRDP_FrameMarkerCommandEnabled" },
{ FreeRDP_Fullscreen, 0, "FreeRDP_Fullscreen" },
{ FreeRDP_GatewayBypassLocal, 0, "FreeRDP_GatewayBypassLocal" },
{ FreeRDP_GatewayEnabled, 0, "FreeRDP_GatewayEnabled" },
{ FreeRDP_GatewayHttpTransport, 0, "FreeRDP_GatewayHttpTransport" },
{ FreeRDP_GatewayRpcTransport, 0, "FreeRDP_GatewayRpcTransport" },
{ FreeRDP_GatewayUdpTransport, 0, "FreeRDP_GatewayUdpTransport" },
{ FreeRDP_GatewayUseSameCredentials, 0, "FreeRDP_GatewayUseSameCredentials" },
{ FreeRDP_GfxAVC444, 0, "FreeRDP_GfxAVC444" },
{ FreeRDP_GfxAVC444v2, 0, "FreeRDP_GfxAVC444v2" },
{ FreeRDP_GfxH264, 0, "FreeRDP_GfxH264" },
{ FreeRDP_GfxProgressive, 0, "FreeRDP_GfxProgressive" },
{ FreeRDP_GfxProgressiveV2, 0, "FreeRDP_GfxProgressiveV2" },
{ FreeRDP_GfxSendQoeAck, 0, "FreeRDP_GfxSendQoeAck" },
{ FreeRDP_GfxSmallCache, 0, "FreeRDP_GfxSmallCache" },
{ FreeRDP_GfxThinClient, 0, "FreeRDP_GfxThinClient" },
{ FreeRDP_GrabKeyboard, 0, "FreeRDP_GrabKeyboard" },
{ FreeRDP_HasExtendedMouseEvent, 0, "FreeRDP_HasExtendedMouseEvent" },
{ FreeRDP_HasHorizontalWheel, 0, "FreeRDP_HasHorizontalWheel" },
{ FreeRDP_HasMonitorAttributes, 0, "FreeRDP_HasMonitorAttributes" },
{ FreeRDP_HiDefRemoteApp, 0, "FreeRDP_HiDefRemoteApp" },
{ FreeRDP_IPv6Enabled, 0, "FreeRDP_IPv6Enabled" },
{ FreeRDP_IgnoreCertificate, 0, "FreeRDP_IgnoreCertificate" },
{ FreeRDP_JpegCodec, 0, "FreeRDP_JpegCodec" },
{ FreeRDP_ListMonitors, 0, "FreeRDP_ListMonitors" },
{ FreeRDP_LocalConnection, 0, "FreeRDP_LocalConnection" },
{ FreeRDP_LogonErrors, 0, "FreeRDP_LogonErrors" },
{ FreeRDP_LogonNotify, 0, "FreeRDP_LogonNotify" },
{ FreeRDP_LongCredentialsSupported, 0, "FreeRDP_LongCredentialsSupported" },
{ FreeRDP_LyncRdpMode, 0, "FreeRDP_LyncRdpMode" },
{ FreeRDP_MaximizeShell, 0, "FreeRDP_MaximizeShell" },
{ FreeRDP_MouseAttached, 0, "FreeRDP_MouseAttached" },
{ FreeRDP_MouseHasWheel, 0, "FreeRDP_MouseHasWheel" },
{ FreeRDP_MouseMotion, 0, "FreeRDP_MouseMotion" },
{ FreeRDP_MstscCookieMode, 0, "FreeRDP_MstscCookieMode" },
{ FreeRDP_MultiTouchGestures, 0, "FreeRDP_MultiTouchGestures" },
{ FreeRDP_MultiTouchInput, 0, "FreeRDP_MultiTouchInput" },
{ FreeRDP_NSCodec, 0, "FreeRDP_NSCodec" },
{ FreeRDP_NSCodecAllowDynamicColorFidelity, 0, "FreeRDP_NSCodecAllowDynamicColorFidelity" },
{ FreeRDP_NSCodecAllowSubsampling, 0, "FreeRDP_NSCodecAllowSubsampling" },
{ FreeRDP_NegotiateSecurityLayer, 0, "FreeRDP_NegotiateSecurityLayer" },
{ FreeRDP_NetworkAutoDetect, 0, "FreeRDP_NetworkAutoDetect" },
{ FreeRDP_NlaSecurity, 0, "FreeRDP_NlaSecurity" },
{ FreeRDP_NoBitmapCompressionHeader, 0, "FreeRDP_NoBitmapCompressionHeader" },
{ FreeRDP_OldLicenseBehaviour, 0, "FreeRDP_OldLicenseBehaviour" },
{ FreeRDP_PasswordIsSmartcardPin, 0, "FreeRDP_PasswordIsSmartcardPin" },
{ FreeRDP_PercentScreenUseHeight, 0, "FreeRDP_PercentScreenUseHeight" },
{ FreeRDP_PercentScreenUseWidth, 0, "FreeRDP_PercentScreenUseWidth" },
{ FreeRDP_PlayRemoteFx, 0, "FreeRDP_PlayRemoteFx" },
{ FreeRDP_PreferIPv6OverIPv4, 0, "FreeRDP_PreferIPv6OverIPv4" },
{ FreeRDP_PrintReconnectCookie, 0, "FreeRDP_PrintReconnectCookie" },
{ FreeRDP_PromptForCredentials, 0, "FreeRDP_PromptForCredentials" },
{ FreeRDP_RdpSecurity, 0, "FreeRDP_RdpSecurity" },
{ FreeRDP_RedirectClipboard, 0, "FreeRDP_RedirectClipboard" },
{ FreeRDP_RedirectDrives, 0, "FreeRDP_RedirectDrives" },
{ FreeRDP_RedirectHomeDrive, 0, "FreeRDP_RedirectHomeDrive" },
{ FreeRDP_RedirectParallelPorts, 0, "FreeRDP_RedirectParallelPorts" },
{ FreeRDP_RedirectPrinters, 0, "FreeRDP_RedirectPrinters" },
{ FreeRDP_RedirectSerialPorts, 0, "FreeRDP_RedirectSerialPorts" },
{ FreeRDP_RedirectSmartCards, 0, "FreeRDP_RedirectSmartCards" },
{ FreeRDP_RefreshRect, 0, "FreeRDP_RefreshRect" },
{ FreeRDP_RemdeskVirtualChannel, 0, "FreeRDP_RemdeskVirtualChannel" },
{ FreeRDP_RemoteAppLanguageBarSupported, 0, "FreeRDP_RemoteAppLanguageBarSupported" },
{ FreeRDP_RemoteApplicationMode, 0, "FreeRDP_RemoteApplicationMode" },
{ FreeRDP_RemoteAssistanceMode, 0, "FreeRDP_RemoteAssistanceMode" },
{ FreeRDP_RemoteAssistanceRequestControl, 0, "FreeRDP_RemoteAssistanceRequestControl" },
{ FreeRDP_RemoteConsoleAudio, 0, "FreeRDP_RemoteConsoleAudio" },
{ FreeRDP_RemoteFxCodec, 0, "FreeRDP_RemoteFxCodec" },
{ FreeRDP_RemoteFxImageCodec, 0, "FreeRDP_RemoteFxImageCodec" },
{ FreeRDP_RemoteFxOnly, 0, "FreeRDP_RemoteFxOnly" },
{ FreeRDP_RestrictedAdminModeRequired, 0, "FreeRDP_RestrictedAdminModeRequired" },
{ FreeRDP_SaltedChecksum, 0, "FreeRDP_SaltedChecksum" },
{ FreeRDP_SendPreconnectionPdu, 0, "FreeRDP_SendPreconnectionPdu" },
{ FreeRDP_ServerMode, 0, "FreeRDP_ServerMode" },
{ FreeRDP_SmartSizing, 0, "FreeRDP_SmartSizing" },
{ FreeRDP_SmartcardLogon, 0, "FreeRDP_SmartcardLogon" },
{ FreeRDP_SoftwareGdi, 0, "FreeRDP_SoftwareGdi" },
{ FreeRDP_SoundBeepsEnabled, 0, "FreeRDP_SoundBeepsEnabled" },
{ FreeRDP_SpanMonitors, 0, "FreeRDP_SpanMonitors" },
{ FreeRDP_SupportAsymetricKeys, 0, "FreeRDP_SupportAsymetricKeys" },
{ FreeRDP_SupportDisplayControl, 0, "FreeRDP_SupportDisplayControl" },
{ FreeRDP_SupportDynamicChannels, 0, "FreeRDP_SupportDynamicChannels" },
{ FreeRDP_SupportDynamicTimeZone, 0, "FreeRDP_SupportDynamicTimeZone" },
{ FreeRDP_SupportEchoChannel, 0, "FreeRDP_SupportEchoChannel" },
{ FreeRDP_SupportErrorInfoPdu, 0, "FreeRDP_SupportErrorInfoPdu" },
{ FreeRDP_SupportGeometryTracking, 0, "FreeRDP_SupportGeometryTracking" },
{ FreeRDP_SupportGraphicsPipeline, 0, "FreeRDP_SupportGraphicsPipeline" },
{ FreeRDP_SupportHeartbeatPdu, 0, "FreeRDP_SupportHeartbeatPdu" },
{ FreeRDP_SupportMonitorLayoutPdu, 0, "FreeRDP_SupportMonitorLayoutPdu" },
{ FreeRDP_SupportMultitransport, 0, "FreeRDP_SupportMultitransport" },
{ FreeRDP_SupportSSHAgentChannel, 0, "FreeRDP_SupportSSHAgentChannel" },
{ FreeRDP_SupportStatusInfoPdu, 0, "FreeRDP_SupportStatusInfoPdu" },
{ FreeRDP_SupportVideoOptimized, 0, "FreeRDP_SupportVideoOptimized" },
{ FreeRDP_SuppressOutput, 0, "FreeRDP_SuppressOutput" },
{ FreeRDP_SurfaceCommandsEnabled, 0, "FreeRDP_SurfaceCommandsEnabled" },
{ FreeRDP_SurfaceFrameMarkerEnabled, 0, "FreeRDP_SurfaceFrameMarkerEnabled" },
{ FreeRDP_TcpKeepAlive, 0, "FreeRDP_TcpKeepAlive" },
{ FreeRDP_TlsSecurity, 0, "FreeRDP_TlsSecurity" },
{ FreeRDP_ToggleFullscreen, 0, "FreeRDP_ToggleFullscreen" },
{ FreeRDP_UnicodeInput, 0, "FreeRDP_UnicodeInput" },
{ FreeRDP_UnmapButtons, 0, "FreeRDP_UnmapButtons" },
{ FreeRDP_UseMultimon, 0, "FreeRDP_UseMultimon" },
{ FreeRDP_UseRdpSecurityLayer, 0, "FreeRDP_UseRdpSecurityLayer" },
{ FreeRDP_UsingSavedCredentials, 0, "FreeRDP_UsingSavedCredentials" },
{ FreeRDP_VideoDisable, 0, "FreeRDP_VideoDisable" },
{ FreeRDP_VmConnectMode, 0, "FreeRDP_VmConnectMode" },
{ FreeRDP_WaitForOutputBufferFlush, 0, "FreeRDP_WaitForOutputBufferFlush" },
{ FreeRDP_Workarea, 0, "FreeRDP_Workarea" },
{ FreeRDP_DesktopOrientation, 1, "FreeRDP_DesktopOrientation" },
{ FreeRDP_ProxyPort, 1, "FreeRDP_ProxyPort" },
{ FreeRDP_AcceptedCertLength, 3, "FreeRDP_AcceptedCertLength" },
{ FreeRDP_AuthenticationLevel, 3, "FreeRDP_AuthenticationLevel" },
{ FreeRDP_AutoReconnectMaxRetries, 3, "FreeRDP_AutoReconnectMaxRetries" },
{ FreeRDP_BitmapCacheV2NumCells, 3, "FreeRDP_BitmapCacheV2NumCells" },
{ FreeRDP_BitmapCacheV3CodecId, 3, "FreeRDP_BitmapCacheV3CodecId" },
{ FreeRDP_BitmapCacheVersion, 3, "FreeRDP_BitmapCacheVersion" },
{ FreeRDP_BrushSupportLevel, 3, "FreeRDP_BrushSupportLevel" },
{ FreeRDP_ChannelCount, 3, "FreeRDP_ChannelCount" },
{ FreeRDP_ChannelDefArraySize, 3, "FreeRDP_ChannelDefArraySize" },
{ FreeRDP_ClientBuild, 3, "FreeRDP_ClientBuild" },
{ FreeRDP_ClientRandomLength, 3, "FreeRDP_ClientRandomLength" },
{ FreeRDP_ClusterInfoFlags, 3, "FreeRDP_ClusterInfoFlags" },
{ FreeRDP_ColorDepth, 3, "FreeRDP_ColorDepth" },
{ FreeRDP_CompDeskSupportLevel, 3, "FreeRDP_CompDeskSupportLevel" },
{ FreeRDP_CompressionLevel, 3, "FreeRDP_CompressionLevel" },
{ FreeRDP_ConnectionType, 3, "FreeRDP_ConnectionType" },
{ FreeRDP_CookieMaxLength, 3, "FreeRDP_CookieMaxLength" },
{ FreeRDP_DesktopHeight, 3, "FreeRDP_DesktopHeight" },
{ FreeRDP_DesktopPhysicalHeight, 3, "FreeRDP_DesktopPhysicalHeight" },
{ FreeRDP_DesktopPhysicalWidth, 3, "FreeRDP_DesktopPhysicalWidth" },
{ FreeRDP_DesktopPosX, 3, "FreeRDP_DesktopPosX" },
{ FreeRDP_DesktopPosY, 3, "FreeRDP_DesktopPosY" },
{ FreeRDP_DesktopScaleFactor, 3, "FreeRDP_DesktopScaleFactor" },
{ FreeRDP_DesktopWidth, 3, "FreeRDP_DesktopWidth" },
{ FreeRDP_DeviceArraySize, 3, "FreeRDP_DeviceArraySize" },
{ FreeRDP_DeviceCount, 3, "FreeRDP_DeviceCount" },
{ FreeRDP_DeviceScaleFactor, 3, "FreeRDP_DeviceScaleFactor" },
{ FreeRDP_DrawNineGridCacheEntries, 3, "FreeRDP_DrawNineGridCacheEntries" },
{ FreeRDP_DrawNineGridCacheSize, 3, "FreeRDP_DrawNineGridCacheSize" },
{ FreeRDP_DynamicChannelArraySize, 3, "FreeRDP_DynamicChannelArraySize" },
{ FreeRDP_DynamicChannelCount, 3, "FreeRDP_DynamicChannelCount" },
{ FreeRDP_EarlyCapabilityFlags, 3, "FreeRDP_EarlyCapabilityFlags" },
{ FreeRDP_EncryptionLevel, 3, "FreeRDP_EncryptionLevel" },
{ FreeRDP_EncryptionMethods, 3, "FreeRDP_EncryptionMethods" },
{ FreeRDP_ExtEncryptionMethods, 3, "FreeRDP_ExtEncryptionMethods" },
{ FreeRDP_FrameAcknowledge, 3, "FreeRDP_FrameAcknowledge" },
{ FreeRDP_GatewayAcceptedCertLength, 3, "FreeRDP_GatewayAcceptedCertLength" },
{ FreeRDP_GatewayCredentialsSource, 3, "FreeRDP_GatewayCredentialsSource" },
{ FreeRDP_GatewayPort, 3, "FreeRDP_GatewayPort" },
{ FreeRDP_GatewayUsageMethod, 3, "FreeRDP_GatewayUsageMethod" },
{ FreeRDP_GfxCapsFilter, 3, "FreeRDP_GfxCapsFilter" },
{ FreeRDP_GlyphSupportLevel, 3, "FreeRDP_GlyphSupportLevel" },
{ FreeRDP_JpegCodecId, 3, "FreeRDP_JpegCodecId" },
{ FreeRDP_JpegQuality, 3, "FreeRDP_JpegQuality" },
{ FreeRDP_KeyboardCodePage, 3, "FreeRDP_KeyboardCodePage" },
{ FreeRDP_KeyboardFunctionKey, 3, "FreeRDP_KeyboardFunctionKey" },
{ FreeRDP_KeyboardHook, 3, "FreeRDP_KeyboardHook" },
{ FreeRDP_KeyboardLayout, 3, "FreeRDP_KeyboardLayout" },
{ FreeRDP_KeyboardSubType, 3, "FreeRDP_KeyboardSubType" },
{ FreeRDP_KeyboardType, 3, "FreeRDP_KeyboardType" },
{ FreeRDP_LargePointerFlag, 3, "FreeRDP_LargePointerFlag" },
{ FreeRDP_LoadBalanceInfoLength, 3, "FreeRDP_LoadBalanceInfoLength" },
{ FreeRDP_MaxTimeInCheckLoop, 3, "FreeRDP_MaxTimeInCheckLoop" },
{ FreeRDP_MonitorCount, 3, "FreeRDP_MonitorCount" },
{ FreeRDP_MonitorDefArraySize, 3, "FreeRDP_MonitorDefArraySize" },
{ FreeRDP_MonitorLocalShiftX, 3, "FreeRDP_MonitorLocalShiftX" },
{ FreeRDP_MonitorLocalShiftY, 3, "FreeRDP_MonitorLocalShiftY" },
{ FreeRDP_MultifragMaxRequestSize, 3, "FreeRDP_MultifragMaxRequestSize" },
{ FreeRDP_MultitransportFlags, 3, "FreeRDP_MultitransportFlags" },
{ FreeRDP_NSCodecColorLossLevel, 3, "FreeRDP_NSCodecColorLossLevel" },
{ FreeRDP_NSCodecId, 3, "FreeRDP_NSCodecId" },
{ FreeRDP_NegotiationFlags, 3, "FreeRDP_NegotiationFlags" },
{ FreeRDP_NumMonitorIds, 3, "FreeRDP_NumMonitorIds" },
{ FreeRDP_OffscreenCacheEntries, 3, "FreeRDP_OffscreenCacheEntries" },
{ FreeRDP_OffscreenCacheSize, 3, "FreeRDP_OffscreenCacheSize" },
{ FreeRDP_OffscreenSupportLevel, 3, "FreeRDP_OffscreenSupportLevel" },
{ FreeRDP_OsMajorType, 3, "FreeRDP_OsMajorType" },
{ FreeRDP_OsMinorType, 3, "FreeRDP_OsMinorType" },
{ FreeRDP_Password51Length, 3, "FreeRDP_Password51Length" },
{ FreeRDP_PduSource, 3, "FreeRDP_PduSource" },
{ FreeRDP_PercentScreen, 3, "FreeRDP_PercentScreen" },
{ FreeRDP_PerformanceFlags, 3, "FreeRDP_PerformanceFlags" },
{ FreeRDP_PointerCacheSize, 3, "FreeRDP_PointerCacheSize" },
{ FreeRDP_PreconnectionId, 3, "FreeRDP_PreconnectionId" },
{ FreeRDP_ProxyType, 3, "FreeRDP_ProxyType" },
{ FreeRDP_RdpVersion, 3, "FreeRDP_RdpVersion" },
{ FreeRDP_ReceivedCapabilitiesSize, 3, "FreeRDP_ReceivedCapabilitiesSize" },
{ FreeRDP_RedirectedSessionId, 3, "FreeRDP_RedirectedSessionId" },
{ FreeRDP_RedirectionAcceptedCertLength, 3, "FreeRDP_RedirectionAcceptedCertLength" },
{ FreeRDP_RedirectionFlags, 3, "FreeRDP_RedirectionFlags" },
{ FreeRDP_RedirectionPasswordLength, 3, "FreeRDP_RedirectionPasswordLength" },
{ FreeRDP_RedirectionPreferType, 3, "FreeRDP_RedirectionPreferType" },
{ FreeRDP_RedirectionTsvUrlLength, 3, "FreeRDP_RedirectionTsvUrlLength" },
{ FreeRDP_RemoteAppNumIconCacheEntries, 3, "FreeRDP_RemoteAppNumIconCacheEntries" },
{ FreeRDP_RemoteAppNumIconCaches, 3, "FreeRDP_RemoteAppNumIconCaches" },
{ FreeRDP_RemoteApplicationExpandCmdLine, 3, "FreeRDP_RemoteApplicationExpandCmdLine" },
{ FreeRDP_RemoteApplicationExpandWorkingDir, 3, "FreeRDP_RemoteApplicationExpandWorkingDir" },
{ FreeRDP_RemoteApplicationSupportLevel, 3, "FreeRDP_RemoteApplicationSupportLevel" },
{ FreeRDP_RemoteApplicationSupportMask, 3, "FreeRDP_RemoteApplicationSupportMask" },
{ FreeRDP_RemoteFxCaptureFlags, 3, "FreeRDP_RemoteFxCaptureFlags" },
{ FreeRDP_RemoteFxCodecId, 3, "FreeRDP_RemoteFxCodecId" },
{ FreeRDP_RemoteFxCodecMode, 3, "FreeRDP_RemoteFxCodecMode" },
{ FreeRDP_RemoteWndSupportLevel, 3, "FreeRDP_RemoteWndSupportLevel" },
{ FreeRDP_RequestedProtocols, 3, "FreeRDP_RequestedProtocols" },
{ FreeRDP_SelectedProtocol, 3, "FreeRDP_SelectedProtocol" },
{ FreeRDP_ServerCertificateLength, 3, "FreeRDP_ServerCertificateLength" },
{ FreeRDP_ServerPort, 3, "FreeRDP_ServerPort" },
{ FreeRDP_ServerRandomLength, 3, "FreeRDP_ServerRandomLength" },
{ FreeRDP_ShareId, 3, "FreeRDP_ShareId" },
{ FreeRDP_SmartSizingHeight, 3, "FreeRDP_SmartSizingHeight" },
{ FreeRDP_SmartSizingWidth, 3, "FreeRDP_SmartSizingWidth" },
{ FreeRDP_StaticChannelArraySize, 3, "FreeRDP_StaticChannelArraySize" },
{ FreeRDP_StaticChannelCount, 3, "FreeRDP_StaticChannelCount" },
{ FreeRDP_TargetNetAddressCount, 3, "FreeRDP_TargetNetAddressCount" },
{ FreeRDP_TcpAckTimeout, 3, "FreeRDP_TcpAckTimeout" },
{ FreeRDP_TcpKeepAliveDelay, 3, "FreeRDP_TcpKeepAliveDelay" },
{ FreeRDP_TcpKeepAliveInterval, 3, "FreeRDP_TcpKeepAliveInterval" },
{ FreeRDP_TcpKeepAliveRetries, 3, "FreeRDP_TcpKeepAliveRetries" },
{ FreeRDP_TlsSecLevel, 3, "FreeRDP_TlsSecLevel" },
{ FreeRDP_VirtualChannelChunkSize, 3, "FreeRDP_VirtualChannelChunkSize" },
{ FreeRDP_VirtualChannelCompressionFlags, 3, "FreeRDP_VirtualChannelCompressionFlags" },
{ FreeRDP_XPan, 4, "FreeRDP_XPan" },
{ FreeRDP_YPan, 4, "FreeRDP_YPan" },
{ FreeRDP_ParentWindowId, 5, "FreeRDP_ParentWindowId" },
{ FreeRDP_AcceptedCert, 7, "FreeRDP_AcceptedCert" },
{ FreeRDP_AllowedTlsCiphers, 7, "FreeRDP_AllowedTlsCiphers" },
{ FreeRDP_AlternateShell, 7, "FreeRDP_AlternateShell" },
{ FreeRDP_AssistanceFile, 7, "FreeRDP_AssistanceFile" },
{ FreeRDP_AuthenticationServiceClass, 7, "FreeRDP_AuthenticationServiceClass" },
{ FreeRDP_CertificateAcceptedFingerprints, 7, "FreeRDP_CertificateAcceptedFingerprints" },
{ FreeRDP_CertificateContent, 7, "FreeRDP_CertificateContent" },
{ FreeRDP_CertificateFile, 7, "FreeRDP_CertificateFile" },
{ FreeRDP_CertificateName, 7, "FreeRDP_CertificateName" },
{ FreeRDP_ClientAddress, 7, "FreeRDP_ClientAddress" },
{ FreeRDP_ClientDir, 7, "FreeRDP_ClientDir" },
{ FreeRDP_ClientHostname, 7, "FreeRDP_ClientHostname" },
{ FreeRDP_ClientProductId, 7, "FreeRDP_ClientProductId" },
{ FreeRDP_ComputerName, 7, "FreeRDP_ComputerName" },
{ FreeRDP_ConfigPath, 7, "FreeRDP_ConfigPath" },
{ FreeRDP_ConnectionFile, 7, "FreeRDP_ConnectionFile" },
{ FreeRDP_CurrentPath, 7, "FreeRDP_CurrentPath" },
{ FreeRDP_Domain, 7, "FreeRDP_Domain" },
{ FreeRDP_DrivesToRedirect, 7, "FreeRDP_DrivesToRedirect" },
{ FreeRDP_DumpRemoteFxFile, 7, "FreeRDP_DumpRemoteFxFile" },
{ FreeRDP_DynamicDSTTimeZoneKeyName, 7, "FreeRDP_DynamicDSTTimeZoneKeyName" },
{ FreeRDP_GatewayAcceptedCert, 7, "FreeRDP_GatewayAcceptedCert" },
{ FreeRDP_GatewayAccessToken, 7, "FreeRDP_GatewayAccessToken" },
{ FreeRDP_GatewayDomain, 7, "FreeRDP_GatewayDomain" },
{ FreeRDP_GatewayHostname, 7, "FreeRDP_GatewayHostname" },
{ FreeRDP_GatewayPassword, 7, "FreeRDP_GatewayPassword" },
{ FreeRDP_GatewayUsername, 7, "FreeRDP_GatewayUsername" },
{ FreeRDP_HomePath, 7, "FreeRDP_HomePath" },
{ FreeRDP_ImeFileName, 7, "FreeRDP_ImeFileName" },
{ FreeRDP_KerberosKdc, 7, "FreeRDP_KerberosKdc" },
{ FreeRDP_KerberosRealm, 7, "FreeRDP_KerberosRealm" },
{ FreeRDP_NtlmSamFile, 7, "FreeRDP_NtlmSamFile" },
{ FreeRDP_Password, 7, "FreeRDP_Password" },
{ FreeRDP_PasswordHash, 7, "FreeRDP_PasswordHash" },
{ FreeRDP_PlayRemoteFxFile, 7, "FreeRDP_PlayRemoteFxFile" },
{ FreeRDP_PreconnectionBlob, 7, "FreeRDP_PreconnectionBlob" },
{ FreeRDP_PrivateKeyContent, 7, "FreeRDP_PrivateKeyContent" },
{ FreeRDP_PrivateKeyFile, 7, "FreeRDP_PrivateKeyFile" },
{ FreeRDP_ProxyHostname, 7, "FreeRDP_ProxyHostname" },
{ FreeRDP_ProxyPassword, 7, "FreeRDP_ProxyPassword" },
{ FreeRDP_ProxyUsername, 7, "FreeRDP_ProxyUsername" },
{ FreeRDP_RDP2TCPArgs, 7, "FreeRDP_RDP2TCPArgs" },
{ FreeRDP_RdpKeyContent, 7, "FreeRDP_RdpKeyContent" },
{ FreeRDP_RdpKeyFile, 7, "FreeRDP_RdpKeyFile" },
{ FreeRDP_RedirectionAcceptedCert, 7, "FreeRDP_RedirectionAcceptedCert" },
{ FreeRDP_RedirectionDomain, 7, "FreeRDP_RedirectionDomain" },
{ FreeRDP_RedirectionTargetFQDN, 7, "FreeRDP_RedirectionTargetFQDN" },
{ FreeRDP_RedirectionTargetNetBiosName, 7, "FreeRDP_RedirectionTargetNetBiosName" },
{ FreeRDP_RedirectionUsername, 7, "FreeRDP_RedirectionUsername" },
{ FreeRDP_RemoteApplicationCmdLine, 7, "FreeRDP_RemoteApplicationCmdLine" },
{ FreeRDP_RemoteApplicationFile, 7, "FreeRDP_RemoteApplicationFile" },
{ FreeRDP_RemoteApplicationGuid, 7, "FreeRDP_RemoteApplicationGuid" },
{ FreeRDP_RemoteApplicationIcon, 7, "FreeRDP_RemoteApplicationIcon" },
{ FreeRDP_RemoteApplicationName, 7, "FreeRDP_RemoteApplicationName" },
{ FreeRDP_RemoteApplicationProgram, 7, "FreeRDP_RemoteApplicationProgram" },
{ FreeRDP_RemoteApplicationWorkingDir, 7, "FreeRDP_RemoteApplicationWorkingDir" },
{ FreeRDP_RemoteAssistancePassStub, 7, "FreeRDP_RemoteAssistancePassStub" },
{ FreeRDP_RemoteAssistancePassword, 7, "FreeRDP_RemoteAssistancePassword" },
{ FreeRDP_RemoteAssistanceRCTicket, 7, "FreeRDP_RemoteAssistanceRCTicket" },
{ FreeRDP_RemoteAssistanceSessionId, 7, "FreeRDP_RemoteAssistanceSessionId" },
{ FreeRDP_ServerHostname, 7, "FreeRDP_ServerHostname" },
{ FreeRDP_ShellWorkingDirectory, 7, "FreeRDP_ShellWorkingDirectory" },
{ FreeRDP_TargetNetAddress, 7, "FreeRDP_TargetNetAddress" },
{ FreeRDP_Username, 7, "FreeRDP_Username" },
{ FreeRDP_WindowTitle, 7, "FreeRDP_WindowTitle" },
{ FreeRDP_WmClass, 7, "FreeRDP_WmClass" },
{ FreeRDP_BitmapCacheV2CellInfo, 8, "FreeRDP_BitmapCacheV2CellInfo" },
{ FreeRDP_ChannelDefArray, 8, "FreeRDP_ChannelDefArray" },
{ FreeRDP_ClientAutoReconnectCookie, 8, "FreeRDP_ClientAutoReconnectCookie" },
{ FreeRDP_ClientRandom, 8, "FreeRDP_ClientRandom" },
{ FreeRDP_ClientTimeZone, 8, "FreeRDP_ClientTimeZone" },
{ FreeRDP_DeviceArray, 8, "FreeRDP_DeviceArray" },
{ FreeRDP_DynamicChannelArray, 8, "FreeRDP_DynamicChannelArray" },
{ FreeRDP_FragCache, 8, "FreeRDP_FragCache" },
{ FreeRDP_GlyphCache, 8, "FreeRDP_GlyphCache" },
{ FreeRDP_LoadBalanceInfo, 8, "FreeRDP_LoadBalanceInfo" },
{ FreeRDP_MonitorDefArray, 8, "FreeRDP_MonitorDefArray" },
{ FreeRDP_MonitorIds, 8, "FreeRDP_MonitorIds" },
{ FreeRDP_OrderSupport, 8, "FreeRDP_OrderSupport" },
{ FreeRDP_Password51, 8, "FreeRDP_Password51" },
{ FreeRDP_RdpServerCertificate, 8, "FreeRDP_RdpServerCertificate" },
{ FreeRDP_RdpServerRsaKey, 8, "FreeRDP_RdpServerRsaKey" },
{ FreeRDP_ReceivedCapabilities, 8, "FreeRDP_ReceivedCapabilities" },
{ FreeRDP_RedirectionPassword, 8, "FreeRDP_RedirectionPassword" },
{ FreeRDP_RedirectionTsvUrl, 8, "FreeRDP_RedirectionTsvUrl" },
{ FreeRDP_ServerAutoReconnectCookie, 8, "FreeRDP_ServerAutoReconnectCookie" },
{ FreeRDP_ServerCertificate, 8, "FreeRDP_ServerCertificate" },
{ FreeRDP_ServerRandom, 8, "FreeRDP_ServerRandom" },
{ FreeRDP_StaticChannelArray, 8, "FreeRDP_StaticChannelArray" },
{ FreeRDP_TargetNetAddresses, 8, "FreeRDP_TargetNetAddresses" },
{ FreeRDP_TargetNetPorts, 8, "FreeRDP_TargetNetPorts" },
{ FreeRDP_instance, 8, "FreeRDP_instance" },
};
SSIZE_T freerdp_settings_get_key_for_name(const char* value)
{
size_t x;
for (x = 0; x < ARRAYSIZE(settings_map); x++)
{
const struct settings_str_entry* cur = &settings_map[x];
if (strcmp(value, cur->str) == 0)
return cur->id;
}
return -1;
}
SSIZE_T freerdp_settings_get_type_for_name(const char* value)
{
size_t x;
for (x = 0; x < ARRAYSIZE(settings_map); x++)
{
const struct settings_str_entry* cur = &settings_map[x];
if (strcmp(value, cur->str) == 0)
return cur->type;
}
return -1;
}
SSIZE_T freerdp_settings_get_type_for_key(size_t key)
{
size_t x;
for (x = 0; x < ARRAYSIZE(settings_map); x++)
{
const struct settings_str_entry* cur = &settings_map[x];
if (cur->id == key)
return cur->type;
}
return -1;
}
const char* freerdp_settings_get_name_for_key(size_t key)
{
size_t x;
for (x = 0; x < ARRAYSIZE(settings_map); x++)
{
const struct settings_str_entry* cur = &settings_map[x];
if (cur->id == key)
return cur->str;
}
return NULL;
}

View File

@ -3,169 +3,169 @@
#define have_bool_list_indices
static const size_t bool_list_indices[] = {
FreeRDP_ServerMode,
FreeRDP_WaitForOutputBufferFlush,
FreeRDP_NetworkAutoDetect,
FreeRDP_SupportAsymetricKeys,
FreeRDP_SupportErrorInfoPdu,
FreeRDP_SupportStatusInfoPdu,
FreeRDP_SupportMonitorLayoutPdu,
FreeRDP_SupportGraphicsPipeline,
FreeRDP_SupportDynamicTimeZone,
FreeRDP_SupportHeartbeatPdu,
FreeRDP_UseRdpSecurityLayer,
FreeRDP_ConsoleSession,
FreeRDP_SpanMonitors,
FreeRDP_UseMultimon,
FreeRDP_ForceMultimon,
FreeRDP_ListMonitors,
FreeRDP_HasMonitorAttributes,
FreeRDP_SupportMultitransport,
FreeRDP_AutoLogonEnabled,
FreeRDP_CompressionEnabled,
FreeRDP_DisableCtrlAltDel,
FreeRDP_EnableWindowsKey,
FreeRDP_MaximizeShell,
FreeRDP_LogonNotify,
FreeRDP_LogonErrors,
FreeRDP_MouseAttached,
FreeRDP_MouseHasWheel,
FreeRDP_RemoteConsoleAudio,
FreeRDP_AudioPlayback,
FreeRDP_AudioCapture,
FreeRDP_VideoDisable,
FreeRDP_PasswordIsSmartcardPin,
FreeRDP_UsingSavedCredentials,
FreeRDP_ForceEncryptedCsPdu,
FreeRDP_HiDefRemoteApp,
FreeRDP_IPv6Enabled,
FreeRDP_AutoReconnectionEnabled,
FreeRDP_PrintReconnectCookie,
FreeRDP_DynamicDaylightTimeDisabled,
FreeRDP_AllowFontSmoothing,
FreeRDP_DisableWallpaper,
FreeRDP_DisableFullWindowDrag,
FreeRDP_DisableMenuAnims,
FreeRDP_DisableThemes,
FreeRDP_DisableCursorShadow,
FreeRDP_DisableCursorBlinking,
FreeRDP_AllowCacheWaitingList,
FreeRDP_AllowDesktopComposition,
FreeRDP_RemoteAssistanceMode,
FreeRDP_EncomspVirtualChannel,
FreeRDP_RemdeskVirtualChannel,
FreeRDP_LyncRdpMode,
FreeRDP_RemoteAssistanceRequestControl,
FreeRDP_TlsSecurity,
FreeRDP_NlaSecurity,
FreeRDP_RdpSecurity,
FreeRDP_ExtSecurity,
FreeRDP_Authentication,
FreeRDP_NegotiateSecurityLayer,
FreeRDP_RestrictedAdminModeRequired,
FreeRDP_DisableCredentialsDelegation,
FreeRDP_VmConnectMode,
FreeRDP_FIPSMode,
FreeRDP_MstscCookieMode,
FreeRDP_SendPreconnectionPdu,
FreeRDP_SmartcardLogon,
FreeRDP_PromptForCredentials,
FreeRDP_IgnoreCertificate,
FreeRDP_ExternalCertificateManagement,
FreeRDP_AutoAcceptCertificate,
FreeRDP_AutoDenyCertificate,
FreeRDP_Workarea,
FreeRDP_Fullscreen,
FreeRDP_GrabKeyboard,
FreeRDP_Decorations,
FreeRDP_MouseMotion,
FreeRDP_AllowFontSmoothing,
FreeRDP_AllowUnanouncedOrdersFromServer,
FreeRDP_AltSecFrameMarkerSupport,
FreeRDP_AsyncChannels,
FreeRDP_AsyncInput,
FreeRDP_AsyncUpdate,
FreeRDP_AsyncChannels,
FreeRDP_ToggleFullscreen,
FreeRDP_EmbeddedWindow,
FreeRDP_SmartSizing,
FreeRDP_PercentScreenUseWidth,
FreeRDP_PercentScreenUseHeight,
FreeRDP_DynamicResolutionUpdate,
FreeRDP_SoftwareGdi,
FreeRDP_LocalConnection,
FreeRDP_AudioCapture,
FreeRDP_AudioPlayback,
FreeRDP_Authentication,
FreeRDP_AuthenticationOnly,
FreeRDP_CredentialsFromStdin,
FreeRDP_UnmapButtons,
FreeRDP_OldLicenseBehaviour,
FreeRDP_DumpRemoteFx,
FreeRDP_PlayRemoteFx,
FreeRDP_GatewayUseSameCredentials,
FreeRDP_GatewayEnabled,
FreeRDP_GatewayBypassLocal,
FreeRDP_GatewayRpcTransport,
FreeRDP_GatewayHttpTransport,
FreeRDP_GatewayUdpTransport,
FreeRDP_RemoteApplicationMode,
FreeRDP_DisableRemoteAppCapsCheck,
FreeRDP_RemoteAppLanguageBarSupported,
FreeRDP_RefreshRect,
FreeRDP_SuppressOutput,
FreeRDP_FastPathOutput,
FreeRDP_SaltedChecksum,
FreeRDP_LongCredentialsSupported,
FreeRDP_NoBitmapCompressionHeader,
FreeRDP_BitmapCompressionDisabled,
FreeRDP_DesktopResize,
FreeRDP_DrawAllowDynamicColorFidelity,
FreeRDP_DrawAllowColorSubsampling,
FreeRDP_DrawAllowSkipAlpha,
FreeRDP_BitmapCacheV3Enabled,
FreeRDP_AltSecFrameMarkerSupport,
FreeRDP_AllowUnanouncedOrdersFromServer,
FreeRDP_AutoAcceptCertificate,
FreeRDP_AutoDenyCertificate,
FreeRDP_AutoLogonEnabled,
FreeRDP_AutoReconnectionEnabled,
FreeRDP_BitmapCacheEnabled,
FreeRDP_AllowCacheWaitingList,
FreeRDP_BitmapCachePersistEnabled,
FreeRDP_BitmapCacheV3Enabled,
FreeRDP_BitmapCompressionDisabled,
FreeRDP_ColorPointerFlag,
FreeRDP_UnicodeInput,
FreeRDP_CompressionEnabled,
FreeRDP_ConsoleSession,
FreeRDP_CredentialsFromStdin,
FreeRDP_Decorations,
FreeRDP_DesktopResize,
FreeRDP_DeviceRedirection,
FreeRDP_DisableCredentialsDelegation,
FreeRDP_DisableCtrlAltDel,
FreeRDP_DisableCursorBlinking,
FreeRDP_DisableCursorShadow,
FreeRDP_DisableFullWindowDrag,
FreeRDP_DisableMenuAnims,
FreeRDP_DisableRemoteAppCapsCheck,
FreeRDP_DisableThemes,
FreeRDP_DisableWallpaper,
FreeRDP_DrawAllowColorSubsampling,
FreeRDP_DrawAllowDynamicColorFidelity,
FreeRDP_DrawAllowSkipAlpha,
FreeRDP_DrawGdiPlusCacheEnabled,
FreeRDP_DrawGdiPlusEnabled,
FreeRDP_DrawNineGridEnabled,
FreeRDP_DumpRemoteFx,
FreeRDP_DynamicDaylightTimeDisabled,
FreeRDP_DynamicResolutionUpdate,
FreeRDP_EmbeddedWindow,
FreeRDP_EnableWindowsKey,
FreeRDP_EncomspVirtualChannel,
FreeRDP_ExtSecurity,
FreeRDP_ExternalCertificateManagement,
FreeRDP_FIPSMode,
FreeRDP_FastPathInput,
FreeRDP_MultiTouchInput,
FreeRDP_MultiTouchGestures,
FreeRDP_HasHorizontalWheel,
FreeRDP_HasExtendedMouseEvent,
FreeRDP_SoundBeepsEnabled,
FreeRDP_SurfaceCommandsEnabled,
FreeRDP_FastPathOutput,
FreeRDP_ForceEncryptedCsPdu,
FreeRDP_ForceMultimon,
FreeRDP_FrameMarkerCommandEnabled,
FreeRDP_SurfaceFrameMarkerEnabled,
FreeRDP_RemoteFxOnly,
FreeRDP_RemoteFxCodec,
FreeRDP_RemoteFxImageCodec,
FreeRDP_NSCodec,
FreeRDP_NSCodecAllowSubsampling,
FreeRDP_NSCodecAllowDynamicColorFidelity,
FreeRDP_JpegCodec,
FreeRDP_GfxThinClient,
FreeRDP_GfxSmallCache,
FreeRDP_Fullscreen,
FreeRDP_GatewayBypassLocal,
FreeRDP_GatewayEnabled,
FreeRDP_GatewayHttpTransport,
FreeRDP_GatewayRpcTransport,
FreeRDP_GatewayUdpTransport,
FreeRDP_GatewayUseSameCredentials,
FreeRDP_GfxAVC444,
FreeRDP_GfxAVC444v2,
FreeRDP_GfxH264,
FreeRDP_GfxProgressive,
FreeRDP_GfxProgressiveV2,
FreeRDP_GfxH264,
FreeRDP_GfxAVC444,
FreeRDP_GfxSendQoeAck,
FreeRDP_GfxAVC444v2,
FreeRDP_DrawNineGridEnabled,
FreeRDP_DrawGdiPlusEnabled,
FreeRDP_DrawGdiPlusCacheEnabled,
FreeRDP_DeviceRedirection,
FreeRDP_GfxSmallCache,
FreeRDP_GfxThinClient,
FreeRDP_GrabKeyboard,
FreeRDP_HasExtendedMouseEvent,
FreeRDP_HasHorizontalWheel,
FreeRDP_HasMonitorAttributes,
FreeRDP_HiDefRemoteApp,
FreeRDP_IPv6Enabled,
FreeRDP_IgnoreCertificate,
FreeRDP_JpegCodec,
FreeRDP_ListMonitors,
FreeRDP_LocalConnection,
FreeRDP_LogonErrors,
FreeRDP_LogonNotify,
FreeRDP_LongCredentialsSupported,
FreeRDP_LyncRdpMode,
FreeRDP_MaximizeShell,
FreeRDP_MouseAttached,
FreeRDP_MouseHasWheel,
FreeRDP_MouseMotion,
FreeRDP_MstscCookieMode,
FreeRDP_MultiTouchGestures,
FreeRDP_MultiTouchInput,
FreeRDP_NSCodec,
FreeRDP_NSCodecAllowDynamicColorFidelity,
FreeRDP_NSCodecAllowSubsampling,
FreeRDP_NegotiateSecurityLayer,
FreeRDP_NetworkAutoDetect,
FreeRDP_NlaSecurity,
FreeRDP_NoBitmapCompressionHeader,
FreeRDP_OldLicenseBehaviour,
FreeRDP_PasswordIsSmartcardPin,
FreeRDP_PercentScreenUseHeight,
FreeRDP_PercentScreenUseWidth,
FreeRDP_PlayRemoteFx,
FreeRDP_PreferIPv6OverIPv4,
FreeRDP_PrintReconnectCookie,
FreeRDP_PromptForCredentials,
FreeRDP_RdpSecurity,
FreeRDP_RedirectClipboard,
FreeRDP_RedirectDrives,
FreeRDP_RedirectHomeDrive,
FreeRDP_RedirectSmartCards,
FreeRDP_RedirectParallelPorts,
FreeRDP_RedirectPrinters,
FreeRDP_RedirectSerialPorts,
FreeRDP_RedirectParallelPorts,
FreeRDP_PreferIPv6OverIPv4,
FreeRDP_RedirectClipboard,
FreeRDP_SupportDynamicChannels,
FreeRDP_SupportEchoChannel,
FreeRDP_RedirectSmartCards,
FreeRDP_RefreshRect,
FreeRDP_RemdeskVirtualChannel,
FreeRDP_RemoteAppLanguageBarSupported,
FreeRDP_RemoteApplicationMode,
FreeRDP_RemoteAssistanceMode,
FreeRDP_RemoteAssistanceRequestControl,
FreeRDP_RemoteConsoleAudio,
FreeRDP_RemoteFxCodec,
FreeRDP_RemoteFxImageCodec,
FreeRDP_RemoteFxOnly,
FreeRDP_RestrictedAdminModeRequired,
FreeRDP_SaltedChecksum,
FreeRDP_SendPreconnectionPdu,
FreeRDP_ServerMode,
FreeRDP_SmartSizing,
FreeRDP_SmartcardLogon,
FreeRDP_SoftwareGdi,
FreeRDP_SoundBeepsEnabled,
FreeRDP_SpanMonitors,
FreeRDP_SupportAsymetricKeys,
FreeRDP_SupportDisplayControl,
FreeRDP_SupportDynamicChannels,
FreeRDP_SupportDynamicTimeZone,
FreeRDP_SupportEchoChannel,
FreeRDP_SupportErrorInfoPdu,
FreeRDP_SupportGeometryTracking,
FreeRDP_SupportGraphicsPipeline,
FreeRDP_SupportHeartbeatPdu,
FreeRDP_SupportMonitorLayoutPdu,
FreeRDP_SupportMultitransport,
FreeRDP_SupportSSHAgentChannel,
FreeRDP_SupportStatusInfoPdu,
FreeRDP_SupportVideoOptimized,
FreeRDP_SuppressOutput,
FreeRDP_SurfaceCommandsEnabled,
FreeRDP_SurfaceFrameMarkerEnabled,
FreeRDP_TcpKeepAlive,
FreeRDP_TlsSecurity,
FreeRDP_ToggleFullscreen,
FreeRDP_UnicodeInput,
FreeRDP_UnmapButtons,
FreeRDP_UseMultimon,
FreeRDP_UseRdpSecurityLayer,
FreeRDP_UsingSavedCredentials,
FreeRDP_VideoDisable,
FreeRDP_VmConnectMode,
FreeRDP_WaitForOutputBufferFlush,
FreeRDP_Workarea,
};
#define have_uint16_list_indices
@ -176,117 +176,117 @@ static const size_t uint16_list_indices[] = {
#define have_uint32_list_indices
static const size_t uint32_list_indices[] = {
FreeRDP_ShareId,
FreeRDP_PduSource,
FreeRDP_ServerPort,
FreeRDP_MaxTimeInCheckLoop,
FreeRDP_AcceptedCertLength,
FreeRDP_RdpVersion,
FreeRDP_DesktopWidth,
FreeRDP_DesktopHeight,
FreeRDP_ColorDepth,
FreeRDP_ConnectionType,
FreeRDP_ClientBuild,
FreeRDP_EarlyCapabilityFlags,
FreeRDP_DesktopPhysicalWidth,
FreeRDP_DesktopPhysicalHeight,
FreeRDP_DesktopScaleFactor,
FreeRDP_DeviceScaleFactor,
FreeRDP_EncryptionMethods,
FreeRDP_ExtEncryptionMethods,
FreeRDP_EncryptionLevel,
FreeRDP_ServerRandomLength,
FreeRDP_ServerCertificateLength,
FreeRDP_ClientRandomLength,
FreeRDP_AuthenticationLevel,
FreeRDP_AutoReconnectMaxRetries,
FreeRDP_BitmapCacheV2NumCells,
FreeRDP_BitmapCacheV3CodecId,
FreeRDP_BitmapCacheVersion,
FreeRDP_BrushSupportLevel,
FreeRDP_ChannelCount,
FreeRDP_ChannelDefArraySize,
FreeRDP_ClientBuild,
FreeRDP_ClientRandomLength,
FreeRDP_ClusterInfoFlags,
FreeRDP_RedirectedSessionId,
FreeRDP_MonitorCount,
FreeRDP_MonitorDefArraySize,
FreeRDP_ColorDepth,
FreeRDP_CompDeskSupportLevel,
FreeRDP_CompressionLevel,
FreeRDP_ConnectionType,
FreeRDP_CookieMaxLength,
FreeRDP_DesktopHeight,
FreeRDP_DesktopPhysicalHeight,
FreeRDP_DesktopPhysicalWidth,
FreeRDP_DesktopPosX,
FreeRDP_DesktopPosY,
FreeRDP_NumMonitorIds,
FreeRDP_MonitorLocalShiftX,
FreeRDP_MonitorLocalShiftY,
FreeRDP_MultitransportFlags,
FreeRDP_CompressionLevel,
FreeRDP_AutoReconnectMaxRetries,
FreeRDP_PerformanceFlags,
FreeRDP_RequestedProtocols,
FreeRDP_SelectedProtocol,
FreeRDP_NegotiationFlags,
FreeRDP_AuthenticationLevel,
FreeRDP_TlsSecLevel,
FreeRDP_CookieMaxLength,
FreeRDP_PreconnectionId,
FreeRDP_RedirectionFlags,
FreeRDP_LoadBalanceInfoLength,
FreeRDP_RedirectionPasswordLength,
FreeRDP_RedirectionTsvUrlLength,
FreeRDP_TargetNetAddressCount,
FreeRDP_RedirectionAcceptedCertLength,
FreeRDP_RedirectionPreferType,
FreeRDP_Password51Length,
FreeRDP_PercentScreen,
FreeRDP_SmartSizingWidth,
FreeRDP_SmartSizingHeight,
FreeRDP_GatewayUsageMethod,
FreeRDP_GatewayPort,
FreeRDP_GatewayCredentialsSource,
FreeRDP_GatewayAcceptedCertLength,
FreeRDP_ProxyType,
FreeRDP_RemoteApplicationExpandCmdLine,
FreeRDP_RemoteApplicationExpandWorkingDir,
FreeRDP_RemoteAppNumIconCaches,
FreeRDP_RemoteAppNumIconCacheEntries,
FreeRDP_RemoteWndSupportLevel,
FreeRDP_RemoteApplicationSupportLevel,
FreeRDP_RemoteApplicationSupportMask,
FreeRDP_ReceivedCapabilitiesSize,
FreeRDP_OsMajorType,
FreeRDP_OsMinorType,
FreeRDP_BitmapCacheVersion,
FreeRDP_BitmapCacheV2NumCells,
FreeRDP_PointerCacheSize,
FreeRDP_KeyboardCodePage,
FreeRDP_KeyboardLayout,
FreeRDP_KeyboardType,
FreeRDP_KeyboardSubType,
FreeRDP_KeyboardFunctionKey,
FreeRDP_KeyboardHook,
FreeRDP_BrushSupportLevel,
FreeRDP_GlyphSupportLevel,
FreeRDP_OffscreenSupportLevel,
FreeRDP_OffscreenCacheSize,
FreeRDP_OffscreenCacheEntries,
FreeRDP_VirtualChannelCompressionFlags,
FreeRDP_VirtualChannelChunkSize,
FreeRDP_MultifragMaxRequestSize,
FreeRDP_LargePointerFlag,
FreeRDP_CompDeskSupportLevel,
FreeRDP_RemoteFxCodecId,
FreeRDP_RemoteFxCodecMode,
FreeRDP_RemoteFxCaptureFlags,
FreeRDP_NSCodecId,
FreeRDP_DesktopScaleFactor,
FreeRDP_DesktopWidth,
FreeRDP_DeviceArraySize,
FreeRDP_DeviceCount,
FreeRDP_DeviceScaleFactor,
FreeRDP_DrawNineGridCacheEntries,
FreeRDP_DrawNineGridCacheSize,
FreeRDP_DynamicChannelArraySize,
FreeRDP_DynamicChannelCount,
FreeRDP_EarlyCapabilityFlags,
FreeRDP_EncryptionLevel,
FreeRDP_EncryptionMethods,
FreeRDP_ExtEncryptionMethods,
FreeRDP_FrameAcknowledge,
FreeRDP_NSCodecColorLossLevel,
FreeRDP_GatewayAcceptedCertLength,
FreeRDP_GatewayCredentialsSource,
FreeRDP_GatewayPort,
FreeRDP_GatewayUsageMethod,
FreeRDP_GfxCapsFilter,
FreeRDP_GlyphSupportLevel,
FreeRDP_JpegCodecId,
FreeRDP_JpegQuality,
FreeRDP_GfxCapsFilter,
FreeRDP_BitmapCacheV3CodecId,
FreeRDP_DrawNineGridCacheSize,
FreeRDP_DrawNineGridCacheEntries,
FreeRDP_DeviceCount,
FreeRDP_DeviceArraySize,
FreeRDP_StaticChannelCount,
FreeRDP_KeyboardCodePage,
FreeRDP_KeyboardFunctionKey,
FreeRDP_KeyboardHook,
FreeRDP_KeyboardLayout,
FreeRDP_KeyboardSubType,
FreeRDP_KeyboardType,
FreeRDP_LargePointerFlag,
FreeRDP_LoadBalanceInfoLength,
FreeRDP_MaxTimeInCheckLoop,
FreeRDP_MonitorCount,
FreeRDP_MonitorDefArraySize,
FreeRDP_MonitorLocalShiftX,
FreeRDP_MonitorLocalShiftY,
FreeRDP_MultifragMaxRequestSize,
FreeRDP_MultitransportFlags,
FreeRDP_NSCodecColorLossLevel,
FreeRDP_NSCodecId,
FreeRDP_NegotiationFlags,
FreeRDP_NumMonitorIds,
FreeRDP_OffscreenCacheEntries,
FreeRDP_OffscreenCacheSize,
FreeRDP_OffscreenSupportLevel,
FreeRDP_OsMajorType,
FreeRDP_OsMinorType,
FreeRDP_Password51Length,
FreeRDP_PduSource,
FreeRDP_PercentScreen,
FreeRDP_PerformanceFlags,
FreeRDP_PointerCacheSize,
FreeRDP_PreconnectionId,
FreeRDP_ProxyType,
FreeRDP_RdpVersion,
FreeRDP_ReceivedCapabilitiesSize,
FreeRDP_RedirectedSessionId,
FreeRDP_RedirectionAcceptedCertLength,
FreeRDP_RedirectionFlags,
FreeRDP_RedirectionPasswordLength,
FreeRDP_RedirectionPreferType,
FreeRDP_RedirectionTsvUrlLength,
FreeRDP_RemoteAppNumIconCacheEntries,
FreeRDP_RemoteAppNumIconCaches,
FreeRDP_RemoteApplicationExpandCmdLine,
FreeRDP_RemoteApplicationExpandWorkingDir,
FreeRDP_RemoteApplicationSupportLevel,
FreeRDP_RemoteApplicationSupportMask,
FreeRDP_RemoteFxCaptureFlags,
FreeRDP_RemoteFxCodecId,
FreeRDP_RemoteFxCodecMode,
FreeRDP_RemoteWndSupportLevel,
FreeRDP_RequestedProtocols,
FreeRDP_SelectedProtocol,
FreeRDP_ServerCertificateLength,
FreeRDP_ServerPort,
FreeRDP_ServerRandomLength,
FreeRDP_ShareId,
FreeRDP_SmartSizingHeight,
FreeRDP_SmartSizingWidth,
FreeRDP_StaticChannelArraySize,
FreeRDP_DynamicChannelCount,
FreeRDP_DynamicChannelArraySize,
FreeRDP_TcpKeepAliveRetries,
FreeRDP_StaticChannelCount,
FreeRDP_TargetNetAddressCount,
FreeRDP_TcpAckTimeout,
FreeRDP_TcpKeepAliveDelay,
FreeRDP_TcpKeepAliveInterval,
FreeRDP_TcpAckTimeout,
FreeRDP_TcpKeepAliveRetries,
FreeRDP_TlsSecLevel,
FreeRDP_VirtualChannelChunkSize,
FreeRDP_VirtualChannelCompressionFlags,
};
#define have_int32_list_indices
@ -302,102 +302,102 @@ static const size_t uint64_list_indices[] = {
#define have_string_list_indices
static const size_t string_list_indices[] = {
FreeRDP_ServerHostname,
FreeRDP_Username,
FreeRDP_Password,
FreeRDP_Domain,
FreeRDP_PasswordHash,
FreeRDP_AcceptedCert,
FreeRDP_ClientHostname,
FreeRDP_ClientProductId,
FreeRDP_AllowedTlsCiphers,
FreeRDP_AlternateShell,
FreeRDP_ShellWorkingDirectory,
FreeRDP_AssistanceFile,
FreeRDP_AuthenticationServiceClass,
FreeRDP_CertificateAcceptedFingerprints,
FreeRDP_CertificateContent,
FreeRDP_CertificateFile,
FreeRDP_CertificateName,
FreeRDP_ClientAddress,
FreeRDP_ClientDir,
FreeRDP_ClientHostname,
FreeRDP_ClientProductId,
FreeRDP_ComputerName,
FreeRDP_ConfigPath,
FreeRDP_ConnectionFile,
FreeRDP_CurrentPath,
FreeRDP_Domain,
FreeRDP_DrivesToRedirect,
FreeRDP_DumpRemoteFxFile,
FreeRDP_DynamicDSTTimeZoneKeyName,
FreeRDP_RemoteAssistanceSessionId,
FreeRDP_RemoteAssistancePassStub,
FreeRDP_RemoteAssistancePassword,
FreeRDP_RemoteAssistanceRCTicket,
FreeRDP_AuthenticationServiceClass,
FreeRDP_AllowedTlsCiphers,
FreeRDP_GatewayAcceptedCert,
FreeRDP_GatewayAccessToken,
FreeRDP_GatewayDomain,
FreeRDP_GatewayHostname,
FreeRDP_GatewayPassword,
FreeRDP_GatewayUsername,
FreeRDP_HomePath,
FreeRDP_ImeFileName,
FreeRDP_KerberosKdc,
FreeRDP_KerberosRealm,
FreeRDP_NtlmSamFile,
FreeRDP_Password,
FreeRDP_PasswordHash,
FreeRDP_PlayRemoteFxFile,
FreeRDP_PreconnectionBlob,
FreeRDP_TargetNetAddress,
FreeRDP_RedirectionUsername,
FreeRDP_PrivateKeyContent,
FreeRDP_PrivateKeyFile,
FreeRDP_ProxyHostname,
FreeRDP_ProxyPassword,
FreeRDP_ProxyUsername,
FreeRDP_RDP2TCPArgs,
FreeRDP_RdpKeyContent,
FreeRDP_RdpKeyFile,
FreeRDP_RedirectionAcceptedCert,
FreeRDP_RedirectionDomain,
FreeRDP_RedirectionTargetFQDN,
FreeRDP_RedirectionTargetNetBiosName,
FreeRDP_RedirectionAcceptedCert,
FreeRDP_KerberosKdc,
FreeRDP_KerberosRealm,
FreeRDP_CertificateName,
FreeRDP_CertificateFile,
FreeRDP_PrivateKeyFile,
FreeRDP_RdpKeyFile,
FreeRDP_CertificateContent,
FreeRDP_PrivateKeyContent,
FreeRDP_RdpKeyContent,
FreeRDP_CertificateAcceptedFingerprints,
FreeRDP_WindowTitle,
FreeRDP_WmClass,
FreeRDP_ComputerName,
FreeRDP_ConnectionFile,
FreeRDP_AssistanceFile,
FreeRDP_HomePath,
FreeRDP_ConfigPath,
FreeRDP_CurrentPath,
FreeRDP_DumpRemoteFxFile,
FreeRDP_PlayRemoteFxFile,
FreeRDP_GatewayHostname,
FreeRDP_GatewayUsername,
FreeRDP_GatewayPassword,
FreeRDP_GatewayDomain,
FreeRDP_GatewayAccessToken,
FreeRDP_GatewayAcceptedCert,
FreeRDP_ProxyHostname,
FreeRDP_ProxyUsername,
FreeRDP_ProxyPassword,
FreeRDP_RemoteApplicationName,
FreeRDP_RemoteApplicationIcon,
FreeRDP_RemoteApplicationProgram,
FreeRDP_RedirectionUsername,
FreeRDP_RemoteApplicationCmdLine,
FreeRDP_RemoteApplicationFile,
FreeRDP_RemoteApplicationGuid,
FreeRDP_RemoteApplicationCmdLine,
FreeRDP_RemoteApplicationIcon,
FreeRDP_RemoteApplicationName,
FreeRDP_RemoteApplicationProgram,
FreeRDP_RemoteApplicationWorkingDir,
FreeRDP_ImeFileName,
FreeRDP_DrivesToRedirect,
FreeRDP_RDP2TCPArgs,
FreeRDP_RemoteAssistancePassStub,
FreeRDP_RemoteAssistancePassword,
FreeRDP_RemoteAssistanceRCTicket,
FreeRDP_RemoteAssistanceSessionId,
FreeRDP_ServerHostname,
FreeRDP_ShellWorkingDirectory,
FreeRDP_TargetNetAddress,
FreeRDP_Username,
FreeRDP_WindowTitle,
FreeRDP_WmClass,
};
#define have_pointer_list_indices
static const size_t pointer_list_indices[] = {
FreeRDP_StaticChannelArray,
FreeRDP_DynamicChannelArray,
FreeRDP_instance,
FreeRDP_RdpServerCertificate,
FreeRDP_MonitorIds,
FreeRDP_TargetNetPorts,
FreeRDP_DeviceArray,
FreeRDP_ClientAutoReconnectCookie,
FreeRDP_TargetNetAddresses,
FreeRDP_MonitorDefArray,
FreeRDP_BitmapCacheV2CellInfo,
FreeRDP_ServerAutoReconnectCookie,
FreeRDP_ServerRandom,
FreeRDP_ServerCertificate,
FreeRDP_ChannelDefArray,
FreeRDP_ClientAutoReconnectCookie,
FreeRDP_ClientRandom,
FreeRDP_ClientTimeZone,
FreeRDP_DeviceArray,
FreeRDP_DynamicChannelArray,
FreeRDP_FragCache,
FreeRDP_GlyphCache,
FreeRDP_LoadBalanceInfo,
FreeRDP_MonitorDefArray,
FreeRDP_MonitorIds,
FreeRDP_OrderSupport,
FreeRDP_Password51,
FreeRDP_RdpServerCertificate,
FreeRDP_RdpServerRsaKey,
FreeRDP_ReceivedCapabilities,
FreeRDP_RedirectionPassword,
FreeRDP_RedirectionTsvUrl,
FreeRDP_Password51,
FreeRDP_ReceivedCapabilities,
FreeRDP_OrderSupport,
FreeRDP_RdpServerRsaKey,
FreeRDP_GlyphCache,
FreeRDP_FragCache,
FreeRDP_ClientTimeZone,
FreeRDP_ChannelDefArray,
FreeRDP_ServerAutoReconnectCookie,
FreeRDP_ServerCertificate,
FreeRDP_ServerRandom,
FreeRDP_StaticChannelArray,
FreeRDP_TargetNetAddresses,
FreeRDP_TargetNetPorts,
FreeRDP_instance,
};
#endif /* TEST_SETTINGS_PROPERTY_LISTS */

View File

@ -1,4 +1,4 @@
#!/usr/bin/env python
#!/usr/bin/env python3
import os
import sys
@ -12,6 +12,8 @@ def get_values(entry_dict, entry_type):
elif entry_type in dict(entry_dict):
values = entry_dict[entry_type]
entry_dict.pop(entry_type, None)
if values:
return sorted(values)
return values
def write_entry(f, entry_dict, entry_type, entry_name):
@ -28,6 +30,74 @@ def write_entry(f, entry_dict, entry_type, entry_name):
f.write('};\n\n')
def write_str_case(f, entry_type, val):
f.write('\t\t{FreeRDP_' + val + ', ' + str(entry_type) + ', "FreeRDP_' + val + '"},\n')
def write_str(f, entry_dict):
f.write('struct settings_str_entry {\n')
f.write('\tsize_t id;\n')
f.write('\tsize_t type;\n')
f.write('\tconst char* str;\n')
f.write('};\n')
f.write('static const struct settings_str_entry settings_map[] =\n')
f.write('{\n')
entry_types = ['BOOL', 'UINT16', 'INT16', 'UINT32', 'INT32', 'UINT64', 'INT64', 'char*', '*']
for entry_type in entry_types:
values = get_values(entry_dict, entry_type)
if values:
for val in values:
write_str_case(f, entry_types.index(entry_type), val)
f.write('};\n\n')
f.write('SSIZE_T freerdp_settings_get_key_for_name(const char* value)\n')
f.write('{\n')
f.write('\tsize_t x;\n')
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
f.write('\t{\n')
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
f.write('\t\tif (strcmp(value, cur->str) == 0)\n')
f.write('\t\t\treturn cur->id;\n')
f.write('\t}\n')
f.write('\treturn -1;\n')
f.write('}\n')
f.write('\n')
f.write('SSIZE_T freerdp_settings_get_type_for_name(const char* value)\n')
f.write('{\n')
f.write('\tsize_t x;\n')
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
f.write('\t{\n')
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
f.write('\t\tif (strcmp(value, cur->str) == 0)\n')
f.write('\t\t\treturn cur->type;\n')
f.write('\t}\n')
f.write('\treturn -1;\n')
f.write('}\n')
f.write('\n')
f.write('SSIZE_T freerdp_settings_get_type_for_key(size_t key)\n')
f.write('{\n')
f.write('\tsize_t x;\n')
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
f.write('\t{\n')
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
f.write('\t\tif (cur->id == key)\n')
f.write('\t\t\treturn cur->type;\n')
f.write('\t}\n')
f.write('\treturn -1;\n')
f.write('}\n')
f.write('\n')
f.write('const char* freerdp_settings_get_name_for_key(size_t key)\n')
f.write('{\n')
f.write('\tsize_t x;\n')
f.write('\tfor(x=0; x<ARRAYSIZE(settings_map); x++)\n')
f.write('\t{\n')
f.write('\t\tconst struct settings_str_entry* cur = &settings_map[x];\n')
f.write('\t\tif (cur->id == key)\n')
f.write('\t\t\treturn cur->str;\n')
f.write('\t}\n')
f.write('\treturn NULL;\n')
f.write('}\n')
f.write('\n')
def write_getter_case(f, val):
f.write('\t\tcase FreeRDP_' + val + ':\n')
f.write('\t\t\treturn settings->' + val + ';\n\n')
@ -164,6 +234,17 @@ try:
f.write('\n')
with open(name + '/../libfreerdp/common/settings_str.c', 'w+') as f:
f.write('/* Generated by ' + '' + ' */\n\n')
f.write('#include <freerdp/settings.h>\n')
f.write('#include <freerdp/log.h>\n\n')
f.write('#define TAG FREERDP_TAG("common.settings")\n\n')
getter_list = dict(type_list)
write_str(f, getter_list)
f.write('\n')
with open(name + '/../libfreerdp/core/test/settings_property_lists.h', 'w+') as f:
f.write('#ifndef TEST_SETTINGS_PROPERTY_LISTS\n')
f.write('#define TEST_SETTINGS_PROPERTY_LISTS\n\n')