[client] make settings opaque

This commit is contained in:
akallabeth
2023-10-13 09:48:44 +02:00
committed by akallabeth
parent 1f236ade7a
commit 4e438d1c3e
39 changed files with 1443 additions and 902 deletions

View File

@@ -50,7 +50,7 @@ static void ios_OnChannelConnectedEventHandler(void *context, const ChannelConne
if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
if (settings->SoftwareGdi)
if (freerdp_settings_get_bool(settings, FreeRDP_SoftwareGdi))
{
gdi_graphics_pipeline_init(afc->_p.gdi, (RdpgfxClientContext *)e->pInterface);
}
@@ -84,7 +84,7 @@ static void ios_OnChannelDisconnectedEventHandler(void *context,
if (strcmp(e->name, RDPGFX_DVC_CHANNEL_NAME) == 0)
{
if (settings->SoftwareGdi)
if (freerdp_settings_get_bool(settings, FreeRDP_SoftwareGdi))
{
gdi_graphics_pipeline_uninit(afc->_p.gdi, (RdpgfxClientContext *)e->pInterface);
}
@@ -111,14 +111,20 @@ static BOOL ios_pre_connect(freerdp *instance)
settings = instance->context->settings;
WINPR_ASSERT(settings);
settings->AutoLogonEnabled = settings->Password && (strlen(settings->Password) > 0);
const char *Password = freerdp_settings_get_string(settings, FreeRDP_Password);
if (!freerdp_settings_set_bool(settings, FreeRDP_AutoLogonEnabled,
Password && (Password && (strlen(Password) > 0))))
return FALSE;
// Verify screen width/height are sane
if ((settings->DesktopWidth < 64) || (settings->DesktopHeight < 64) ||
(settings->DesktopWidth > 4096) || (settings->DesktopHeight > 4096))
if ((freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth) < 64) ||
(freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight) < 64) ||
(freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth) > 4096) ||
(freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight) > 4096))
{
NSLog(@"%s: invalid dimensions %d %d", __func__, settings->DesktopWidth,
settings->DesktopHeight);
NSLog(@"%s: invalid dimensions %d %d", __func__,
freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth),
freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight));
return FALSE;
}

View File

@@ -30,8 +30,9 @@ static BOOL ios_ui_authenticate_raw(freerdp *instance, char **username, char **p
@"password",
(*domain) ? [NSString stringWithUTF8String:*domain] : @"",
@"domain",
[NSString stringWithUTF8String:instance->context->settings->
ServerHostname],
[NSString stringWithUTF8String:freerdp_settings_get_string(
instance->context->settings,
FreeRDP_ServerHostname)],
@"hostname", // used for the auth prompt message; not changed
nil];
// request auth UI
@@ -160,7 +161,8 @@ BOOL ios_ui_resize_window(rdpContext *context)
settings = context->settings;
gdi = context->gdi;
if (!gdi_resize(gdi, settings->DesktopWidth, settings->DesktopHeight))
if (!gdi_resize(gdi, freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth),
freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight)))
return FALSE;
ios_resize_display_buffer(MFI_FROM_INSTANCE(context->instance));

View File

@@ -299,7 +299,8 @@ out_free:
// Set Screen Size to automatic if widht or height are still 0
rdpSettings *settings = _freerdp->context->settings;
if (settings->DesktopWidth == 0 || settings->DesktopHeight == 0)
if (freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth) == 0 ||
freerdp_settings_get_uint32(settings, FreeRDP_DesktopHeight) == 0)
{
CGSize size = CGSizeZero;
@@ -310,8 +311,8 @@ out_free:
{
[_params setInt:size.width forKey:@"width"];
[_params setInt:size.height forKey:@"height"];
settings->DesktopWidth = size.width;
settings->DesktopHeight = size.height;
freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, size.width);
freerdp_settings_set_uint32(settings, FreeRDP_DesktopHeight, size.height);
}
}
@@ -319,7 +320,10 @@ out_free:
// resolution width
// Otherwise this could result in screen corruption ..
if (freerdp_settings_get_uint32(settings, FreeRDP_ColorDepth) <= 16)
settings->DesktopWidth &= (~1);
{
const UINT32 w = freerdp_settings_get_uint32(settings, FreeRDP_DesktopWidth) & (~1);
freerdp_settings_set_uint32(settings, FreeRDP_DesktopWidth, w);
}
[self performSelectorInBackground:@selector(runSession) withObject:nil];
}
@@ -360,8 +364,8 @@ out_free:
/* RECTANGLE_16 rec;
rec.left = 0;
rec.top = 0;
rec.right = instance->settings->width;
rec.bottom = instance->settings->height;
rec.right = freerdp_settings_get_uint32(instance->settings, FreeRDP_DesktopWidth);
rec.bottom = freerdp_settings_get_uint32(instance->settings, FreeRDP_DesktopHeight);
*/
_suspended = NO;
// instance->update->SuppressOutput(instance->context, 1, &rec);