FreeRDP
Loading...
Searching...
No Matches
settings_getters.c
1/* Generated by */
2
3#include "../core/settings.h"
4
5#include <winpr/assert.h>
6#include <freerdp/settings.h>
7#include <freerdp/log.h>
8
9#define TAG FREERDP_TAG("common.settings")
10
11static void free_string(char** current, BOOL cleanup)
12{
13 if (cleanup)
14 {
15 if (*current)
16 memset(*current, 0, strlen(*current));
17 free(*current);
18 (*current) = NULL;
19 }
20}
21
22static BOOL alloc_empty_string(char** current, const char* next, size_t next_len)
23{
24 if (!next && (next_len > 0))
25 {
26 *current = calloc(next_len, 1);
27 return (*current != NULL);
28 }
29 return FALSE;
30}
31
32static BOOL update_string_copy_(char** current, const char* next, size_t next_len, BOOL cleanup)
33{
34 free_string(current, cleanup);
35
36 if (alloc_empty_string(current, next, next_len))
37 return TRUE;
38
39 *current = (next ? strndup(next, next_len) : NULL);
40 return !next || (*current != NULL);
41}
42
43static BOOL update_string_(char** current, char* next, size_t next_len)
44{
45 free_string(current, TRUE);
46
47 if (alloc_empty_string(current, next, next_len))
48 return TRUE;
49
50 *current = next;
51 return !next || (*current != NULL);
52}
53
54BOOL freerdp_settings_get_bool(WINPR_ATTR_UNUSED const rdpSettings* settings,
55 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Bool id)
56{
57 WINPR_ASSERT(settings);
58
59 switch (id)
60 {
61 case FreeRDP_AadSecurity:
62 return settings->AadSecurity;
63
64 case FreeRDP_AllowCacheWaitingList:
65 return settings->AllowCacheWaitingList;
66
67 case FreeRDP_AllowDesktopComposition:
68 return settings->AllowDesktopComposition;
69
70 case FreeRDP_AllowFontSmoothing:
71 return settings->AllowFontSmoothing;
72
73 case FreeRDP_AllowUnanouncedOrdersFromServer:
74 return settings->AllowUnanouncedOrdersFromServer;
75
76 case FreeRDP_AltSecFrameMarkerSupport:
77 return settings->AltSecFrameMarkerSupport;
78
79 case FreeRDP_AsyncChannels:
80 return settings->AsyncChannels;
81
82 case FreeRDP_AsyncUpdate:
83 return settings->AsyncUpdate;
84
85 case FreeRDP_AudioCapture:
86 return settings->AudioCapture;
87
88 case FreeRDP_AudioPlayback:
89 return settings->AudioPlayback;
90
91 case FreeRDP_Authentication:
92 return settings->Authentication;
93
94 case FreeRDP_AuthenticationOnly:
95 return settings->AuthenticationOnly;
96
97 case FreeRDP_AutoAcceptCertificate:
98 return settings->AutoAcceptCertificate;
99
100 case FreeRDP_AutoDenyCertificate:
101 return settings->AutoDenyCertificate;
102
103 case FreeRDP_AutoLogonEnabled:
104 return settings->AutoLogonEnabled;
105
106 case FreeRDP_AutoReconnectionEnabled:
107 return settings->AutoReconnectionEnabled;
108
109 case FreeRDP_AutoReconnectionPacketSupported:
110 return settings->AutoReconnectionPacketSupported;
111
112 case FreeRDP_BitmapCacheEnabled:
113 return settings->BitmapCacheEnabled;
114
115 case FreeRDP_BitmapCachePersistEnabled:
116 return settings->BitmapCachePersistEnabled;
117
118 case FreeRDP_BitmapCacheV3Enabled:
119 return settings->BitmapCacheV3Enabled;
120
121 case FreeRDP_BitmapCompressionDisabled:
122 return settings->BitmapCompressionDisabled;
123
124 case FreeRDP_CertificateCallbackPreferPEM:
125 return settings->CertificateCallbackPreferPEM;
126
127 case FreeRDP_CompressionEnabled:
128 return settings->CompressionEnabled;
129
130 case FreeRDP_ConnectChildSession:
131 return settings->ConnectChildSession;
132
133 case FreeRDP_ConsoleSession:
134 return settings->ConsoleSession;
135
136 case FreeRDP_CredentialsFromStdin:
137 return settings->CredentialsFromStdin;
138
139 case FreeRDP_DeactivateClientDecoding:
140 return settings->DeactivateClientDecoding;
141
142 case FreeRDP_Decorations:
143 return settings->Decorations;
144
145 case FreeRDP_DesktopResize:
146 return settings->DesktopResize;
147
148 case FreeRDP_DeviceRedirection:
149 return settings->DeviceRedirection;
150
151 case FreeRDP_DisableCredentialsDelegation:
152 return settings->DisableCredentialsDelegation;
153
154 case FreeRDP_DisableCtrlAltDel:
155 return settings->DisableCtrlAltDel;
156
157 case FreeRDP_DisableCursorBlinking:
158 return settings->DisableCursorBlinking;
159
160 case FreeRDP_DisableCursorShadow:
161 return settings->DisableCursorShadow;
162
163 case FreeRDP_DisableFullWindowDrag:
164 return settings->DisableFullWindowDrag;
165
166 case FreeRDP_DisableMenuAnims:
167 return settings->DisableMenuAnims;
168
169 case FreeRDP_DisableRemoteAppCapsCheck:
170 return settings->DisableRemoteAppCapsCheck;
171
172 case FreeRDP_DisableThemes:
173 return settings->DisableThemes;
174
175 case FreeRDP_DisableWallpaper:
176 return settings->DisableWallpaper;
177
178 case FreeRDP_DrawAllowColorSubsampling:
179 return settings->DrawAllowColorSubsampling;
180
181 case FreeRDP_DrawAllowDynamicColorFidelity:
182 return settings->DrawAllowDynamicColorFidelity;
183
184 case FreeRDP_DrawAllowSkipAlpha:
185 return settings->DrawAllowSkipAlpha;
186
187 case FreeRDP_DrawGdiPlusCacheEnabled:
188 return settings->DrawGdiPlusCacheEnabled;
189
190 case FreeRDP_DrawGdiPlusEnabled:
191 return settings->DrawGdiPlusEnabled;
192
193 case FreeRDP_DrawNineGridEnabled:
194 return settings->DrawNineGridEnabled;
195
196 case FreeRDP_DumpRemoteFx:
197 return settings->DumpRemoteFx;
198
199 case FreeRDP_DynamicDaylightTimeDisabled:
200 return settings->DynamicDaylightTimeDisabled;
201
202 case FreeRDP_DynamicResolutionUpdate:
203 return settings->DynamicResolutionUpdate;
204
205 case FreeRDP_EmbeddedWindow:
206 return settings->EmbeddedWindow;
207
208 case FreeRDP_EnableWindowsKey:
209 return settings->EnableWindowsKey;
210
211 case FreeRDP_EncomspVirtualChannel:
212 return settings->EncomspVirtualChannel;
213
214 case FreeRDP_ExtSecurity:
215 return settings->ExtSecurity;
216
217 case FreeRDP_ExternalCertificateManagement:
218 return settings->ExternalCertificateManagement;
219
220 case FreeRDP_FIPSMode:
221 return settings->FIPSMode;
222
223 case FreeRDP_FastPathInput:
224 return settings->FastPathInput;
225
226 case FreeRDP_FastPathOutput:
227 return settings->FastPathOutput;
228
229 case FreeRDP_ForceEncryptedCsPdu:
230 return settings->ForceEncryptedCsPdu;
231
232 case FreeRDP_ForceMultimon:
233 return settings->ForceMultimon;
234
235 case FreeRDP_FrameMarkerCommandEnabled:
236 return settings->FrameMarkerCommandEnabled;
237
238 case FreeRDP_Fullscreen:
239 return settings->Fullscreen;
240
241 case FreeRDP_GatewayArmTransport:
242 return settings->GatewayArmTransport;
243
244 case FreeRDP_GatewayAvdUseTenantid:
245 return settings->GatewayAvdUseTenantid;
246
247 case FreeRDP_GatewayBypassLocal:
248 return settings->GatewayBypassLocal;
249
250 case FreeRDP_GatewayEnabled:
251 return settings->GatewayEnabled;
252
253 case FreeRDP_GatewayHttpExtAuthSspiNtlm:
254 return settings->GatewayHttpExtAuthSspiNtlm;
255
256 case FreeRDP_GatewayHttpTransport:
257 return settings->GatewayHttpTransport;
258
259 case FreeRDP_GatewayHttpUseWebsockets:
260 return settings->GatewayHttpUseWebsockets;
261
262 case FreeRDP_GatewayIgnoreRedirectionPolicy:
263 return settings->GatewayIgnoreRedirectionPolicy;
264
265 case FreeRDP_GatewayRpcTransport:
266 return settings->GatewayRpcTransport;
267
268 case FreeRDP_GatewayUdpTransport:
269 return settings->GatewayUdpTransport;
270
271 case FreeRDP_GatewayUseSameCredentials:
272 return settings->GatewayUseSameCredentials;
273
274 case FreeRDP_GfxAVC444:
275 return settings->GfxAVC444;
276
277 case FreeRDP_GfxAVC444v2:
278 return settings->GfxAVC444v2;
279
280 case FreeRDP_GfxH264:
281 return settings->GfxH264;
282
283 case FreeRDP_GfxPlanar:
284 return settings->GfxPlanar;
285
286 case FreeRDP_GfxProgressive:
287 return settings->GfxProgressive;
288
289 case FreeRDP_GfxProgressiveV2:
290 return settings->GfxProgressiveV2;
291
292 case FreeRDP_GfxSendQoeAck:
293 return settings->GfxSendQoeAck;
294
295 case FreeRDP_GfxSmallCache:
296 return settings->GfxSmallCache;
297
298 case FreeRDP_GfxSuspendFrameAck:
299 return settings->GfxSuspendFrameAck;
300
301 case FreeRDP_GfxThinClient:
302 return settings->GfxThinClient;
303
304 case FreeRDP_GrabKeyboard:
305 return settings->GrabKeyboard;
306
307 case FreeRDP_GrabMouse:
308 return settings->GrabMouse;
309
310 case FreeRDP_HasExtendedMouseEvent:
311 return settings->HasExtendedMouseEvent;
312
313 case FreeRDP_HasHorizontalWheel:
314 return settings->HasHorizontalWheel;
315
316 case FreeRDP_HasMonitorAttributes:
317 return settings->HasMonitorAttributes;
318
319 case FreeRDP_HasQoeEvent:
320 return settings->HasQoeEvent;
321
322 case FreeRDP_HasRelativeMouseEvent:
323 return settings->HasRelativeMouseEvent;
324
325 case FreeRDP_HiDefRemoteApp:
326 return settings->HiDefRemoteApp;
327
328 case FreeRDP_IPv6Enabled:
329 return settings->IPv6Enabled;
330
331 case FreeRDP_IgnoreCertificate:
332 return settings->IgnoreCertificate;
333
334 case FreeRDP_IgnoreInvalidDevices:
335 return settings->IgnoreInvalidDevices;
336
337 case FreeRDP_JpegCodec:
338 return settings->JpegCodec;
339
340 case FreeRDP_KerberosRdgIsProxy:
341 return settings->KerberosRdgIsProxy;
342
343 case FreeRDP_ListMonitors:
344 return settings->ListMonitors;
345
346 case FreeRDP_LocalConnection:
347 return settings->LocalConnection;
348
349 case FreeRDP_LogonErrors:
350 return settings->LogonErrors;
351
352 case FreeRDP_LogonNotify:
353 return settings->LogonNotify;
354
355 case FreeRDP_LongCredentialsSupported:
356 return settings->LongCredentialsSupported;
357
358 case FreeRDP_LyncRdpMode:
359 return settings->LyncRdpMode;
360
361 case FreeRDP_MaximizeShell:
362 return settings->MaximizeShell;
363
364 case FreeRDP_MouseAttached:
365 return settings->MouseAttached;
366
367 case FreeRDP_MouseHasWheel:
368 return settings->MouseHasWheel;
369
370 case FreeRDP_MouseMotion:
371 return settings->MouseMotion;
372
373 case FreeRDP_MouseUseRelativeMove:
374 return settings->MouseUseRelativeMove;
375
376 case FreeRDP_MstscCookieMode:
377 return settings->MstscCookieMode;
378
379 case FreeRDP_MultiTouchGestures:
380 return settings->MultiTouchGestures;
381
382 case FreeRDP_MultiTouchInput:
383 return settings->MultiTouchInput;
384
385 case FreeRDP_NSCodec:
386 return settings->NSCodec;
387
388 case FreeRDP_NSCodecAllowDynamicColorFidelity:
389 return settings->NSCodecAllowDynamicColorFidelity;
390
391 case FreeRDP_NSCodecAllowSubsampling:
392 return settings->NSCodecAllowSubsampling;
393
394 case FreeRDP_NegotiateSecurityLayer:
395 return settings->NegotiateSecurityLayer;
396
397 case FreeRDP_NetworkAutoDetect:
398 return settings->NetworkAutoDetect;
399
400 case FreeRDP_NlaSecurity:
401 return settings->NlaSecurity;
402
403 case FreeRDP_NoBitmapCompressionHeader:
404 return settings->NoBitmapCompressionHeader;
405
406 case FreeRDP_OldLicenseBehaviour:
407 return settings->OldLicenseBehaviour;
408
409 case FreeRDP_PasswordIsSmartcardPin:
410 return settings->PasswordIsSmartcardPin;
411
412 case FreeRDP_PercentScreenUseHeight:
413 return settings->PercentScreenUseHeight;
414
415 case FreeRDP_PercentScreenUseWidth:
416 return settings->PercentScreenUseWidth;
417
418 case FreeRDP_PlayRemoteFx:
419 return settings->PlayRemoteFx;
420
421 case FreeRDP_PreferIPv6OverIPv4:
422 return settings->PreferIPv6OverIPv4;
423
424 case FreeRDP_PrintReconnectCookie:
425 return settings->PrintReconnectCookie;
426
427 case FreeRDP_PromptForCredentials:
428 return settings->PromptForCredentials;
429
430 case FreeRDP_RdpSecurity:
431 return settings->RdpSecurity;
432
433 case FreeRDP_RdstlsSecurity:
434 return settings->RdstlsSecurity;
435
436 case FreeRDP_RedirectClipboard:
437 return settings->RedirectClipboard;
438
439 case FreeRDP_RedirectDrives:
440 return settings->RedirectDrives;
441
442 case FreeRDP_RedirectHomeDrive:
443 return settings->RedirectHomeDrive;
444
445 case FreeRDP_RedirectParallelPorts:
446 return settings->RedirectParallelPorts;
447
448 case FreeRDP_RedirectPrinters:
449 return settings->RedirectPrinters;
450
451 case FreeRDP_RedirectSerialPorts:
452 return settings->RedirectSerialPorts;
453
454 case FreeRDP_RedirectSmartCards:
455 return settings->RedirectSmartCards;
456
457 case FreeRDP_RedirectWebAuthN:
458 return settings->RedirectWebAuthN;
459
460 case FreeRDP_RefreshRect:
461 return settings->RefreshRect;
462
463 case FreeRDP_RemdeskVirtualChannel:
464 return settings->RemdeskVirtualChannel;
465
466 case FreeRDP_RemoteAppLanguageBarSupported:
467 return settings->RemoteAppLanguageBarSupported;
468
469 case FreeRDP_RemoteApplicationMode:
470 return settings->RemoteApplicationMode;
471
472 case FreeRDP_RemoteAssistanceMode:
473 return settings->RemoteAssistanceMode;
474
475 case FreeRDP_RemoteAssistanceRequestControl:
476 return settings->RemoteAssistanceRequestControl;
477
478 case FreeRDP_RemoteConsoleAudio:
479 return settings->RemoteConsoleAudio;
480
481 case FreeRDP_RemoteCredentialGuard:
482 return settings->RemoteCredentialGuard;
483
484 case FreeRDP_RemoteFxCodec:
485 return settings->RemoteFxCodec;
486
487 case FreeRDP_RemoteFxImageCodec:
488 return settings->RemoteFxImageCodec;
489
490 case FreeRDP_RemoteFxOnly:
491 return settings->RemoteFxOnly;
492
493 case FreeRDP_RestrictedAdminModeRequired:
494 return settings->RestrictedAdminModeRequired;
495
496 case FreeRDP_RestrictedAdminModeSupported:
497 return settings->RestrictedAdminModeSupported;
498
499 case FreeRDP_SaltedChecksum:
500 return settings->SaltedChecksum;
501
502 case FreeRDP_SendPreconnectionPdu:
503 return settings->SendPreconnectionPdu;
504
505 case FreeRDP_ServerLicenseRequired:
506 return settings->ServerLicenseRequired;
507
508 case FreeRDP_ServerMode:
509 return settings->ServerMode;
510
511 case FreeRDP_SmartSizing:
512 return settings->SmartSizing;
513
514 case FreeRDP_SmartcardEmulation:
515 return settings->SmartcardEmulation;
516
517 case FreeRDP_SmartcardLogon:
518 return settings->SmartcardLogon;
519
520 case FreeRDP_SoftwareGdi:
521 return settings->SoftwareGdi;
522
523 case FreeRDP_SoundBeepsEnabled:
524 return settings->SoundBeepsEnabled;
525
526 case FreeRDP_SpanMonitors:
527 return settings->SpanMonitors;
528
529 case FreeRDP_SupportAsymetricKeys:
530 return settings->SupportAsymetricKeys;
531
532 case FreeRDP_SupportDisplayControl:
533 return settings->SupportDisplayControl;
534
535 case FreeRDP_SupportDynamicChannels:
536 return settings->SupportDynamicChannels;
537
538 case FreeRDP_SupportDynamicTimeZone:
539 return settings->SupportDynamicTimeZone;
540
541 case FreeRDP_SupportEchoChannel:
542 return settings->SupportEchoChannel;
543
544 case FreeRDP_SupportEdgeActionV1:
545 return settings->SupportEdgeActionV1;
546
547 case FreeRDP_SupportEdgeActionV2:
548 return settings->SupportEdgeActionV2;
549
550 case FreeRDP_SupportErrorInfoPdu:
551 return settings->SupportErrorInfoPdu;
552
553 case FreeRDP_SupportGeometryTracking:
554 return settings->SupportGeometryTracking;
555
556 case FreeRDP_SupportGraphicsPipeline:
557 return settings->SupportGraphicsPipeline;
558
559 case FreeRDP_SupportHeartbeatPdu:
560 return settings->SupportHeartbeatPdu;
561
562 case FreeRDP_SupportMonitorLayoutPdu:
563 return settings->SupportMonitorLayoutPdu;
564
565 case FreeRDP_SupportMultitransport:
566 return settings->SupportMultitransport;
567
568 case FreeRDP_SupportSSHAgentChannel:
569 return settings->SupportSSHAgentChannel;
570
571 case FreeRDP_SupportSkipChannelJoin:
572 return settings->SupportSkipChannelJoin;
573
574 case FreeRDP_SupportStatusInfoPdu:
575 return settings->SupportStatusInfoPdu;
576
577 case FreeRDP_SupportVideoOptimized:
578 return settings->SupportVideoOptimized;
579
580 case FreeRDP_SuppressOutput:
581 return settings->SuppressOutput;
582
583 case FreeRDP_SurfaceCommandsEnabled:
584 return settings->SurfaceCommandsEnabled;
585
586 case FreeRDP_SurfaceFrameMarkerEnabled:
587 return settings->SurfaceFrameMarkerEnabled;
588
589 case FreeRDP_SuspendInput:
590 return settings->SuspendInput;
591
592 case FreeRDP_SynchronousDynamicChannels:
593 return settings->SynchronousDynamicChannels;
594
595 case FreeRDP_SynchronousStaticChannels:
596 return settings->SynchronousStaticChannels;
597
598 case FreeRDP_TcpKeepAlive:
599 return settings->TcpKeepAlive;
600
601 case FreeRDP_TlsSecurity:
602 return settings->TlsSecurity;
603
604 case FreeRDP_ToggleFullscreen:
605 return settings->ToggleFullscreen;
606
607 case FreeRDP_TransportDump:
608 return settings->TransportDump;
609
610 case FreeRDP_TransportDumpReplay:
611 return settings->TransportDumpReplay;
612
613 case FreeRDP_TransportDumpReplayNodelay:
614 return settings->TransportDumpReplayNodelay;
615
616 case FreeRDP_UnicodeInput:
617 return settings->UnicodeInput;
618
619 case FreeRDP_UnmapButtons:
620 return settings->UnmapButtons;
621
622 case FreeRDP_UseCommonStdioCallbacks:
623 return settings->UseCommonStdioCallbacks;
624
625 case FreeRDP_UseMultimon:
626 return settings->UseMultimon;
627
628 case FreeRDP_UseRdpSecurityLayer:
629 return settings->UseRdpSecurityLayer;
630
631 case FreeRDP_UsingSavedCredentials:
632 return settings->UsingSavedCredentials;
633
634 case FreeRDP_VideoDisable:
635 return settings->VideoDisable;
636
637 case FreeRDP_VmConnectMode:
638 return settings->VmConnectMode;
639
640 case FreeRDP_WaitForOutputBufferFlush:
641 return settings->WaitForOutputBufferFlush;
642
643 case FreeRDP_Workarea:
644 return settings->Workarea;
645
646 default:
647 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
649 WINPR_ASSERT(FALSE);
650 return FALSE;
651 }
652}
653
654BOOL freerdp_settings_set_bool(WINPR_ATTR_UNUSED rdpSettings* settings,
655 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Bool id, BOOL val)
656{
657 union
658 {
659 void* v;
660 const void* cv;
661 BOOL c;
662 const BOOL cc;
663 } cnv;
664 WINPR_ASSERT(settings);
665
666 cnv.c = val;
667
668 switch (id)
669 {
670 case FreeRDP_AadSecurity:
671 settings->AadSecurity = cnv.c;
672 break;
673
674 case FreeRDP_AllowCacheWaitingList:
675 settings->AllowCacheWaitingList = cnv.c;
676 break;
677
678 case FreeRDP_AllowDesktopComposition:
679 settings->AllowDesktopComposition = cnv.c;
680 break;
681
682 case FreeRDP_AllowFontSmoothing:
683 settings->AllowFontSmoothing = cnv.c;
684 break;
685
686 case FreeRDP_AllowUnanouncedOrdersFromServer:
687 settings->AllowUnanouncedOrdersFromServer = cnv.c;
688 break;
689
690 case FreeRDP_AltSecFrameMarkerSupport:
691 settings->AltSecFrameMarkerSupport = cnv.c;
692 break;
693
694 case FreeRDP_AsyncChannels:
695 settings->AsyncChannels = cnv.c;
696 break;
697
698 case FreeRDP_AsyncUpdate:
699 settings->AsyncUpdate = cnv.c;
700 break;
701
702 case FreeRDP_AudioCapture:
703 settings->AudioCapture = cnv.c;
704 break;
705
706 case FreeRDP_AudioPlayback:
707 settings->AudioPlayback = cnv.c;
708 break;
709
710 case FreeRDP_Authentication:
711 settings->Authentication = cnv.c;
712 break;
713
714 case FreeRDP_AuthenticationOnly:
715 settings->AuthenticationOnly = cnv.c;
716 break;
717
718 case FreeRDP_AutoAcceptCertificate:
719 settings->AutoAcceptCertificate = cnv.c;
720 break;
721
722 case FreeRDP_AutoDenyCertificate:
723 settings->AutoDenyCertificate = cnv.c;
724 break;
725
726 case FreeRDP_AutoLogonEnabled:
727 settings->AutoLogonEnabled = cnv.c;
728 break;
729
730 case FreeRDP_AutoReconnectionEnabled:
731 settings->AutoReconnectionEnabled = cnv.c;
732 break;
733
734 case FreeRDP_AutoReconnectionPacketSupported:
735 settings->AutoReconnectionPacketSupported = cnv.c;
736 break;
737
738 case FreeRDP_BitmapCacheEnabled:
739 settings->BitmapCacheEnabled = cnv.c;
740 break;
741
742 case FreeRDP_BitmapCachePersistEnabled:
743 settings->BitmapCachePersistEnabled = cnv.c;
744 break;
745
746 case FreeRDP_BitmapCacheV3Enabled:
747 settings->BitmapCacheV3Enabled = cnv.c;
748 break;
749
750 case FreeRDP_BitmapCompressionDisabled:
751 settings->BitmapCompressionDisabled = cnv.c;
752 break;
753
754 case FreeRDP_CertificateCallbackPreferPEM:
755 settings->CertificateCallbackPreferPEM = cnv.c;
756 break;
757
758 case FreeRDP_CompressionEnabled:
759 settings->CompressionEnabled = cnv.c;
760 break;
761
762 case FreeRDP_ConnectChildSession:
763 settings->ConnectChildSession = cnv.c;
764 break;
765
766 case FreeRDP_ConsoleSession:
767 settings->ConsoleSession = cnv.c;
768 break;
769
770 case FreeRDP_CredentialsFromStdin:
771 settings->CredentialsFromStdin = cnv.c;
772 break;
773
774 case FreeRDP_DeactivateClientDecoding:
775 settings->DeactivateClientDecoding = cnv.c;
776 break;
777
778 case FreeRDP_Decorations:
779 settings->Decorations = cnv.c;
780 break;
781
782 case FreeRDP_DesktopResize:
783 settings->DesktopResize = cnv.c;
784 break;
785
786 case FreeRDP_DeviceRedirection:
787 settings->DeviceRedirection = cnv.c;
788 break;
789
790 case FreeRDP_DisableCredentialsDelegation:
791 settings->DisableCredentialsDelegation = cnv.c;
792 break;
793
794 case FreeRDP_DisableCtrlAltDel:
795 settings->DisableCtrlAltDel = cnv.c;
796 break;
797
798 case FreeRDP_DisableCursorBlinking:
799 settings->DisableCursorBlinking = cnv.c;
800 break;
801
802 case FreeRDP_DisableCursorShadow:
803 settings->DisableCursorShadow = cnv.c;
804 break;
805
806 case FreeRDP_DisableFullWindowDrag:
807 settings->DisableFullWindowDrag = cnv.c;
808 break;
809
810 case FreeRDP_DisableMenuAnims:
811 settings->DisableMenuAnims = cnv.c;
812 break;
813
814 case FreeRDP_DisableRemoteAppCapsCheck:
815 settings->DisableRemoteAppCapsCheck = cnv.c;
816 break;
817
818 case FreeRDP_DisableThemes:
819 settings->DisableThemes = cnv.c;
820 break;
821
822 case FreeRDP_DisableWallpaper:
823 settings->DisableWallpaper = cnv.c;
824 break;
825
826 case FreeRDP_DrawAllowColorSubsampling:
827 settings->DrawAllowColorSubsampling = cnv.c;
828 break;
829
830 case FreeRDP_DrawAllowDynamicColorFidelity:
831 settings->DrawAllowDynamicColorFidelity = cnv.c;
832 break;
833
834 case FreeRDP_DrawAllowSkipAlpha:
835 settings->DrawAllowSkipAlpha = cnv.c;
836 break;
837
838 case FreeRDP_DrawGdiPlusCacheEnabled:
839 settings->DrawGdiPlusCacheEnabled = cnv.c;
840 break;
841
842 case FreeRDP_DrawGdiPlusEnabled:
843 settings->DrawGdiPlusEnabled = cnv.c;
844 break;
845
846 case FreeRDP_DrawNineGridEnabled:
847 settings->DrawNineGridEnabled = cnv.c;
848 break;
849
850 case FreeRDP_DumpRemoteFx:
851 settings->DumpRemoteFx = cnv.c;
852 break;
853
854 case FreeRDP_DynamicDaylightTimeDisabled:
855 settings->DynamicDaylightTimeDisabled = cnv.c;
856 break;
857
858 case FreeRDP_DynamicResolutionUpdate:
859 settings->DynamicResolutionUpdate = cnv.c;
860 break;
861
862 case FreeRDP_EmbeddedWindow:
863 settings->EmbeddedWindow = cnv.c;
864 break;
865
866 case FreeRDP_EnableWindowsKey:
867 settings->EnableWindowsKey = cnv.c;
868 break;
869
870 case FreeRDP_EncomspVirtualChannel:
871 settings->EncomspVirtualChannel = cnv.c;
872 break;
873
874 case FreeRDP_ExtSecurity:
875 settings->ExtSecurity = cnv.c;
876 break;
877
878 case FreeRDP_ExternalCertificateManagement:
879 settings->ExternalCertificateManagement = cnv.c;
880 break;
881
882 case FreeRDP_FIPSMode:
883 settings->FIPSMode = cnv.c;
884 break;
885
886 case FreeRDP_FastPathInput:
887 settings->FastPathInput = cnv.c;
888 break;
889
890 case FreeRDP_FastPathOutput:
891 settings->FastPathOutput = cnv.c;
892 break;
893
894 case FreeRDP_ForceEncryptedCsPdu:
895 settings->ForceEncryptedCsPdu = cnv.c;
896 break;
897
898 case FreeRDP_ForceMultimon:
899 settings->ForceMultimon = cnv.c;
900 break;
901
902 case FreeRDP_FrameMarkerCommandEnabled:
903 settings->FrameMarkerCommandEnabled = cnv.c;
904 break;
905
906 case FreeRDP_Fullscreen:
907 settings->Fullscreen = cnv.c;
908 break;
909
910 case FreeRDP_GatewayArmTransport:
911 settings->GatewayArmTransport = cnv.c;
912 break;
913
914 case FreeRDP_GatewayAvdUseTenantid:
915 settings->GatewayAvdUseTenantid = cnv.c;
916 break;
917
918 case FreeRDP_GatewayBypassLocal:
919 settings->GatewayBypassLocal = cnv.c;
920 break;
921
922 case FreeRDP_GatewayEnabled:
923 settings->GatewayEnabled = cnv.c;
924 break;
925
926 case FreeRDP_GatewayHttpExtAuthSspiNtlm:
927 settings->GatewayHttpExtAuthSspiNtlm = cnv.c;
928 break;
929
930 case FreeRDP_GatewayHttpTransport:
931 settings->GatewayHttpTransport = cnv.c;
932 break;
933
934 case FreeRDP_GatewayHttpUseWebsockets:
935 settings->GatewayHttpUseWebsockets = cnv.c;
936 break;
937
938 case FreeRDP_GatewayIgnoreRedirectionPolicy:
939 settings->GatewayIgnoreRedirectionPolicy = cnv.c;
940 break;
941
942 case FreeRDP_GatewayRpcTransport:
943 settings->GatewayRpcTransport = cnv.c;
944 break;
945
946 case FreeRDP_GatewayUdpTransport:
947 settings->GatewayUdpTransport = cnv.c;
948 break;
949
950 case FreeRDP_GatewayUseSameCredentials:
951 settings->GatewayUseSameCredentials = cnv.c;
952 break;
953
954 case FreeRDP_GfxAVC444:
955 settings->GfxAVC444 = cnv.c;
956 break;
957
958 case FreeRDP_GfxAVC444v2:
959 settings->GfxAVC444v2 = cnv.c;
960 break;
961
962 case FreeRDP_GfxH264:
963 settings->GfxH264 = cnv.c;
964 break;
965
966 case FreeRDP_GfxPlanar:
967 settings->GfxPlanar = cnv.c;
968 break;
969
970 case FreeRDP_GfxProgressive:
971 settings->GfxProgressive = cnv.c;
972 break;
973
974 case FreeRDP_GfxProgressiveV2:
975 settings->GfxProgressiveV2 = cnv.c;
976 break;
977
978 case FreeRDP_GfxSendQoeAck:
979 settings->GfxSendQoeAck = cnv.c;
980 break;
981
982 case FreeRDP_GfxSmallCache:
983 settings->GfxSmallCache = cnv.c;
984 break;
985
986 case FreeRDP_GfxSuspendFrameAck:
987 settings->GfxSuspendFrameAck = cnv.c;
988 break;
989
990 case FreeRDP_GfxThinClient:
991 settings->GfxThinClient = cnv.c;
992 break;
993
994 case FreeRDP_GrabKeyboard:
995 settings->GrabKeyboard = cnv.c;
996 break;
997
998 case FreeRDP_GrabMouse:
999 settings->GrabMouse = cnv.c;
1000 break;
1001
1002 case FreeRDP_HasExtendedMouseEvent:
1003 settings->HasExtendedMouseEvent = cnv.c;
1004 break;
1005
1006 case FreeRDP_HasHorizontalWheel:
1007 settings->HasHorizontalWheel = cnv.c;
1008 break;
1009
1010 case FreeRDP_HasMonitorAttributes:
1011 settings->HasMonitorAttributes = cnv.c;
1012 break;
1013
1014 case FreeRDP_HasQoeEvent:
1015 settings->HasQoeEvent = cnv.c;
1016 break;
1017
1018 case FreeRDP_HasRelativeMouseEvent:
1019 settings->HasRelativeMouseEvent = cnv.c;
1020 break;
1021
1022 case FreeRDP_HiDefRemoteApp:
1023 settings->HiDefRemoteApp = cnv.c;
1024 break;
1025
1026 case FreeRDP_IPv6Enabled:
1027 settings->IPv6Enabled = cnv.c;
1028 break;
1029
1030 case FreeRDP_IgnoreCertificate:
1031 settings->IgnoreCertificate = cnv.c;
1032 break;
1033
1034 case FreeRDP_IgnoreInvalidDevices:
1035 settings->IgnoreInvalidDevices = cnv.c;
1036 break;
1037
1038 case FreeRDP_JpegCodec:
1039 settings->JpegCodec = cnv.c;
1040 break;
1041
1042 case FreeRDP_KerberosRdgIsProxy:
1043 settings->KerberosRdgIsProxy = cnv.c;
1044 break;
1045
1046 case FreeRDP_ListMonitors:
1047 settings->ListMonitors = cnv.c;
1048 break;
1049
1050 case FreeRDP_LocalConnection:
1051 settings->LocalConnection = cnv.c;
1052 break;
1053
1054 case FreeRDP_LogonErrors:
1055 settings->LogonErrors = cnv.c;
1056 break;
1057
1058 case FreeRDP_LogonNotify:
1059 settings->LogonNotify = cnv.c;
1060 break;
1061
1062 case FreeRDP_LongCredentialsSupported:
1063 settings->LongCredentialsSupported = cnv.c;
1064 break;
1065
1066 case FreeRDP_LyncRdpMode:
1067 settings->LyncRdpMode = cnv.c;
1068 break;
1069
1070 case FreeRDP_MaximizeShell:
1071 settings->MaximizeShell = cnv.c;
1072 break;
1073
1074 case FreeRDP_MouseAttached:
1075 settings->MouseAttached = cnv.c;
1076 break;
1077
1078 case FreeRDP_MouseHasWheel:
1079 settings->MouseHasWheel = cnv.c;
1080 break;
1081
1082 case FreeRDP_MouseMotion:
1083 settings->MouseMotion = cnv.c;
1084 break;
1085
1086 case FreeRDP_MouseUseRelativeMove:
1087 settings->MouseUseRelativeMove = cnv.c;
1088 break;
1089
1090 case FreeRDP_MstscCookieMode:
1091 settings->MstscCookieMode = cnv.c;
1092 break;
1093
1094 case FreeRDP_MultiTouchGestures:
1095 settings->MultiTouchGestures = cnv.c;
1096 break;
1097
1098 case FreeRDP_MultiTouchInput:
1099 settings->MultiTouchInput = cnv.c;
1100 break;
1101
1102 case FreeRDP_NSCodec:
1103 settings->NSCodec = cnv.c;
1104 break;
1105
1106 case FreeRDP_NSCodecAllowDynamicColorFidelity:
1107 settings->NSCodecAllowDynamicColorFidelity = cnv.c;
1108 break;
1109
1110 case FreeRDP_NSCodecAllowSubsampling:
1111 settings->NSCodecAllowSubsampling = cnv.c;
1112 break;
1113
1114 case FreeRDP_NegotiateSecurityLayer:
1115 settings->NegotiateSecurityLayer = cnv.c;
1116 break;
1117
1118 case FreeRDP_NetworkAutoDetect:
1119 settings->NetworkAutoDetect = cnv.c;
1120 break;
1121
1122 case FreeRDP_NlaSecurity:
1123 settings->NlaSecurity = cnv.c;
1124 break;
1125
1126 case FreeRDP_NoBitmapCompressionHeader:
1127 settings->NoBitmapCompressionHeader = cnv.c;
1128 break;
1129
1130 case FreeRDP_OldLicenseBehaviour:
1131 settings->OldLicenseBehaviour = cnv.c;
1132 break;
1133
1134 case FreeRDP_PasswordIsSmartcardPin:
1135 settings->PasswordIsSmartcardPin = cnv.c;
1136 break;
1137
1138 case FreeRDP_PercentScreenUseHeight:
1139 settings->PercentScreenUseHeight = cnv.c;
1140 break;
1141
1142 case FreeRDP_PercentScreenUseWidth:
1143 settings->PercentScreenUseWidth = cnv.c;
1144 break;
1145
1146 case FreeRDP_PlayRemoteFx:
1147 settings->PlayRemoteFx = cnv.c;
1148 break;
1149
1150 case FreeRDP_PreferIPv6OverIPv4:
1151 settings->PreferIPv6OverIPv4 = cnv.c;
1152 break;
1153
1154 case FreeRDP_PrintReconnectCookie:
1155 settings->PrintReconnectCookie = cnv.c;
1156 break;
1157
1158 case FreeRDP_PromptForCredentials:
1159 settings->PromptForCredentials = cnv.c;
1160 break;
1161
1162 case FreeRDP_RdpSecurity:
1163 settings->RdpSecurity = cnv.c;
1164 break;
1165
1166 case FreeRDP_RdstlsSecurity:
1167 settings->RdstlsSecurity = cnv.c;
1168 break;
1169
1170 case FreeRDP_RedirectClipboard:
1171 settings->RedirectClipboard = cnv.c;
1172 break;
1173
1174 case FreeRDP_RedirectDrives:
1175 settings->RedirectDrives = cnv.c;
1176 break;
1177
1178 case FreeRDP_RedirectHomeDrive:
1179 settings->RedirectHomeDrive = cnv.c;
1180 break;
1181
1182 case FreeRDP_RedirectParallelPorts:
1183 settings->RedirectParallelPorts = cnv.c;
1184 break;
1185
1186 case FreeRDP_RedirectPrinters:
1187 settings->RedirectPrinters = cnv.c;
1188 break;
1189
1190 case FreeRDP_RedirectSerialPorts:
1191 settings->RedirectSerialPorts = cnv.c;
1192 break;
1193
1194 case FreeRDP_RedirectSmartCards:
1195 settings->RedirectSmartCards = cnv.c;
1196 break;
1197
1198 case FreeRDP_RedirectWebAuthN:
1199 settings->RedirectWebAuthN = cnv.c;
1200 break;
1201
1202 case FreeRDP_RefreshRect:
1203 settings->RefreshRect = cnv.c;
1204 break;
1205
1206 case FreeRDP_RemdeskVirtualChannel:
1207 settings->RemdeskVirtualChannel = cnv.c;
1208 break;
1209
1210 case FreeRDP_RemoteAppLanguageBarSupported:
1211 settings->RemoteAppLanguageBarSupported = cnv.c;
1212 break;
1213
1214 case FreeRDP_RemoteApplicationMode:
1215 settings->RemoteApplicationMode = cnv.c;
1216 break;
1217
1218 case FreeRDP_RemoteAssistanceMode:
1219 settings->RemoteAssistanceMode = cnv.c;
1220 break;
1221
1222 case FreeRDP_RemoteAssistanceRequestControl:
1223 settings->RemoteAssistanceRequestControl = cnv.c;
1224 break;
1225
1226 case FreeRDP_RemoteConsoleAudio:
1227 settings->RemoteConsoleAudio = cnv.c;
1228 break;
1229
1230 case FreeRDP_RemoteCredentialGuard:
1231 settings->RemoteCredentialGuard = cnv.c;
1232 break;
1233
1234 case FreeRDP_RemoteFxCodec:
1235 settings->RemoteFxCodec = cnv.c;
1236 break;
1237
1238 case FreeRDP_RemoteFxImageCodec:
1239 settings->RemoteFxImageCodec = cnv.c;
1240 break;
1241
1242 case FreeRDP_RemoteFxOnly:
1243 settings->RemoteFxOnly = cnv.c;
1244 break;
1245
1246 case FreeRDP_RestrictedAdminModeRequired:
1247 settings->RestrictedAdminModeRequired = cnv.c;
1248 break;
1249
1250 case FreeRDP_RestrictedAdminModeSupported:
1251 settings->RestrictedAdminModeSupported = cnv.c;
1252 break;
1253
1254 case FreeRDP_SaltedChecksum:
1255 settings->SaltedChecksum = cnv.c;
1256 break;
1257
1258 case FreeRDP_SendPreconnectionPdu:
1259 settings->SendPreconnectionPdu = cnv.c;
1260 break;
1261
1262 case FreeRDP_ServerLicenseRequired:
1263 settings->ServerLicenseRequired = cnv.c;
1264 break;
1265
1266 case FreeRDP_ServerMode:
1267 settings->ServerMode = cnv.c;
1268 break;
1269
1270 case FreeRDP_SmartSizing:
1271 settings->SmartSizing = cnv.c;
1272 break;
1273
1274 case FreeRDP_SmartcardEmulation:
1275 settings->SmartcardEmulation = cnv.c;
1276 break;
1277
1278 case FreeRDP_SmartcardLogon:
1279 settings->SmartcardLogon = cnv.c;
1280 break;
1281
1282 case FreeRDP_SoftwareGdi:
1283 settings->SoftwareGdi = cnv.c;
1284 break;
1285
1286 case FreeRDP_SoundBeepsEnabled:
1287 settings->SoundBeepsEnabled = cnv.c;
1288 break;
1289
1290 case FreeRDP_SpanMonitors:
1291 settings->SpanMonitors = cnv.c;
1292 break;
1293
1294 case FreeRDP_SupportAsymetricKeys:
1295 settings->SupportAsymetricKeys = cnv.c;
1296 break;
1297
1298 case FreeRDP_SupportDisplayControl:
1299 settings->SupportDisplayControl = cnv.c;
1300 break;
1301
1302 case FreeRDP_SupportDynamicChannels:
1303 settings->SupportDynamicChannels = cnv.c;
1304 break;
1305
1306 case FreeRDP_SupportDynamicTimeZone:
1307 settings->SupportDynamicTimeZone = cnv.c;
1308 break;
1309
1310 case FreeRDP_SupportEchoChannel:
1311 settings->SupportEchoChannel = cnv.c;
1312 break;
1313
1314 case FreeRDP_SupportEdgeActionV1:
1315 settings->SupportEdgeActionV1 = cnv.c;
1316 break;
1317
1318 case FreeRDP_SupportEdgeActionV2:
1319 settings->SupportEdgeActionV2 = cnv.c;
1320 break;
1321
1322 case FreeRDP_SupportErrorInfoPdu:
1323 settings->SupportErrorInfoPdu = cnv.c;
1324 break;
1325
1326 case FreeRDP_SupportGeometryTracking:
1327 settings->SupportGeometryTracking = cnv.c;
1328 break;
1329
1330 case FreeRDP_SupportGraphicsPipeline:
1331 settings->SupportGraphicsPipeline = cnv.c;
1332 break;
1333
1334 case FreeRDP_SupportHeartbeatPdu:
1335 settings->SupportHeartbeatPdu = cnv.c;
1336 break;
1337
1338 case FreeRDP_SupportMonitorLayoutPdu:
1339 settings->SupportMonitorLayoutPdu = cnv.c;
1340 break;
1341
1342 case FreeRDP_SupportMultitransport:
1343 settings->SupportMultitransport = cnv.c;
1344 break;
1345
1346 case FreeRDP_SupportSSHAgentChannel:
1347 settings->SupportSSHAgentChannel = cnv.c;
1348 break;
1349
1350 case FreeRDP_SupportSkipChannelJoin:
1351 settings->SupportSkipChannelJoin = cnv.c;
1352 break;
1353
1354 case FreeRDP_SupportStatusInfoPdu:
1355 settings->SupportStatusInfoPdu = cnv.c;
1356 break;
1357
1358 case FreeRDP_SupportVideoOptimized:
1359 settings->SupportVideoOptimized = cnv.c;
1360 break;
1361
1362 case FreeRDP_SuppressOutput:
1363 settings->SuppressOutput = cnv.c;
1364 break;
1365
1366 case FreeRDP_SurfaceCommandsEnabled:
1367 settings->SurfaceCommandsEnabled = cnv.c;
1368 break;
1369
1370 case FreeRDP_SurfaceFrameMarkerEnabled:
1371 settings->SurfaceFrameMarkerEnabled = cnv.c;
1372 break;
1373
1374 case FreeRDP_SuspendInput:
1375 settings->SuspendInput = cnv.c;
1376 break;
1377
1378 case FreeRDP_SynchronousDynamicChannels:
1379 settings->SynchronousDynamicChannels = cnv.c;
1380 break;
1381
1382 case FreeRDP_SynchronousStaticChannels:
1383 settings->SynchronousStaticChannels = cnv.c;
1384 break;
1385
1386 case FreeRDP_TcpKeepAlive:
1387 settings->TcpKeepAlive = cnv.c;
1388 break;
1389
1390 case FreeRDP_TlsSecurity:
1391 settings->TlsSecurity = cnv.c;
1392 break;
1393
1394 case FreeRDP_ToggleFullscreen:
1395 settings->ToggleFullscreen = cnv.c;
1396 break;
1397
1398 case FreeRDP_TransportDump:
1399 settings->TransportDump = cnv.c;
1400 break;
1401
1402 case FreeRDP_TransportDumpReplay:
1403 settings->TransportDumpReplay = cnv.c;
1404 break;
1405
1406 case FreeRDP_TransportDumpReplayNodelay:
1407 settings->TransportDumpReplayNodelay = cnv.c;
1408 break;
1409
1410 case FreeRDP_UnicodeInput:
1411 settings->UnicodeInput = cnv.c;
1412 break;
1413
1414 case FreeRDP_UnmapButtons:
1415 settings->UnmapButtons = cnv.c;
1416 break;
1417
1418 case FreeRDP_UseCommonStdioCallbacks:
1419 settings->UseCommonStdioCallbacks = cnv.c;
1420 break;
1421
1422 case FreeRDP_UseMultimon:
1423 settings->UseMultimon = cnv.c;
1424 break;
1425
1426 case FreeRDP_UseRdpSecurityLayer:
1427 settings->UseRdpSecurityLayer = cnv.c;
1428 break;
1429
1430 case FreeRDP_UsingSavedCredentials:
1431 settings->UsingSavedCredentials = cnv.c;
1432 break;
1433
1434 case FreeRDP_VideoDisable:
1435 settings->VideoDisable = cnv.c;
1436 break;
1437
1438 case FreeRDP_VmConnectMode:
1439 settings->VmConnectMode = cnv.c;
1440 break;
1441
1442 case FreeRDP_WaitForOutputBufferFlush:
1443 settings->WaitForOutputBufferFlush = cnv.c;
1444 break;
1445
1446 case FreeRDP_Workarea:
1447 settings->Workarea = cnv.c;
1448 break;
1449
1450 default:
1451 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1453 return FALSE;
1454 }
1455 return TRUE;
1456}
1457
1458UINT16 freerdp_settings_get_uint16(WINPR_ATTR_UNUSED const rdpSettings* settings,
1459 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt16 id)
1460{
1461 WINPR_ASSERT(settings);
1462
1463 switch (id)
1464 {
1465 case FreeRDP_CapsGeneralCompressionLevel:
1466 return settings->CapsGeneralCompressionLevel;
1467
1468 case FreeRDP_CapsGeneralCompressionTypes:
1469 return settings->CapsGeneralCompressionTypes;
1470
1471 case FreeRDP_CapsProtocolVersion:
1472 return settings->CapsProtocolVersion;
1473
1474 case FreeRDP_CapsRemoteUnshareFlag:
1475 return settings->CapsRemoteUnshareFlag;
1476
1477 case FreeRDP_CapsUpdateCapabilityFlag:
1478 return settings->CapsUpdateCapabilityFlag;
1479
1480 case FreeRDP_DesktopOrientation:
1481 return settings->DesktopOrientation;
1482
1483 case FreeRDP_OrderSupportFlags:
1484 return settings->OrderSupportFlags;
1485
1486 case FreeRDP_OrderSupportFlagsEx:
1487 return settings->OrderSupportFlagsEx;
1488
1489 case FreeRDP_ProxyPort:
1490 return settings->ProxyPort;
1491
1492 case FreeRDP_SupportedColorDepths:
1493 return settings->SupportedColorDepths;
1494
1495 case FreeRDP_TLSMaxVersion:
1496 return settings->TLSMaxVersion;
1497
1498 case FreeRDP_TLSMinVersion:
1499 return settings->TLSMinVersion;
1500
1501 case FreeRDP_TextANSICodePage:
1502 return settings->TextANSICodePage;
1503
1504 default:
1505 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1507 WINPR_ASSERT(FALSE);
1508 return 0;
1509 }
1510}
1511
1512BOOL freerdp_settings_set_uint16(WINPR_ATTR_UNUSED rdpSettings* settings,
1513 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt16 id, UINT16 val)
1514{
1515 union
1516 {
1517 void* v;
1518 const void* cv;
1519 UINT16 c;
1520 const UINT16 cc;
1521 } cnv;
1522 WINPR_ASSERT(settings);
1523
1524 cnv.c = val;
1525
1526 switch (id)
1527 {
1528 case FreeRDP_CapsGeneralCompressionLevel:
1529 settings->CapsGeneralCompressionLevel = cnv.c;
1530 break;
1531
1532 case FreeRDP_CapsGeneralCompressionTypes:
1533 settings->CapsGeneralCompressionTypes = cnv.c;
1534 break;
1535
1536 case FreeRDP_CapsProtocolVersion:
1537 settings->CapsProtocolVersion = cnv.c;
1538 break;
1539
1540 case FreeRDP_CapsRemoteUnshareFlag:
1541 settings->CapsRemoteUnshareFlag = cnv.c;
1542 break;
1543
1544 case FreeRDP_CapsUpdateCapabilityFlag:
1545 settings->CapsUpdateCapabilityFlag = cnv.c;
1546 break;
1547
1548 case FreeRDP_DesktopOrientation:
1549 settings->DesktopOrientation = cnv.c;
1550 break;
1551
1552 case FreeRDP_OrderSupportFlags:
1553 settings->OrderSupportFlags = cnv.c;
1554 break;
1555
1556 case FreeRDP_OrderSupportFlagsEx:
1557 settings->OrderSupportFlagsEx = cnv.c;
1558 break;
1559
1560 case FreeRDP_ProxyPort:
1561 settings->ProxyPort = cnv.c;
1562 break;
1563
1564 case FreeRDP_SupportedColorDepths:
1565 settings->SupportedColorDepths = cnv.c;
1566 break;
1567
1568 case FreeRDP_TLSMaxVersion:
1569 settings->TLSMaxVersion = cnv.c;
1570 break;
1571
1572 case FreeRDP_TLSMinVersion:
1573 settings->TLSMinVersion = cnv.c;
1574 break;
1575
1576 case FreeRDP_TextANSICodePage:
1577 settings->TextANSICodePage = cnv.c;
1578 break;
1579
1580 default:
1581 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1583 return FALSE;
1584 }
1585 return TRUE;
1586}
1587
1588INT16 freerdp_settings_get_int16(WINPR_ATTR_UNUSED const rdpSettings* settings,
1589 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int16 id)
1590{
1591 WINPR_ASSERT(settings);
1592
1593 switch (id)
1594 {
1595 default:
1596 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1598 WINPR_ASSERT(FALSE);
1599 return 0;
1600 }
1601}
1602
1603BOOL freerdp_settings_set_int16(WINPR_ATTR_UNUSED rdpSettings* settings,
1604 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int16 id, INT16 val)
1605{
1606 union
1607 {
1608 void* v;
1609 const void* cv;
1610 INT16 c;
1611 const INT16 cc;
1612 } cnv;
1613 WINPR_ASSERT(settings);
1614
1615 cnv.c = val;
1616
1617 switch (id)
1618 {
1619 default:
1620 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
1622 return FALSE;
1623 }
1624 return TRUE;
1625}
1626
1627UINT32 freerdp_settings_get_uint32(WINPR_ATTR_UNUSED const rdpSettings* settings,
1628 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt32 id)
1629{
1630 WINPR_ASSERT(settings);
1631
1632 switch (id)
1633 {
1634 case FreeRDP_AcceptedCertLength:
1635 return settings->AcceptedCertLength;
1636
1637 case FreeRDP_AuthenticationLevel:
1638 return settings->AuthenticationLevel;
1639
1640 case FreeRDP_AutoReconnectMaxRetries:
1641 return settings->AutoReconnectMaxRetries;
1642
1643 case FreeRDP_BitmapCacheV2NumCells:
1644 return settings->BitmapCacheV2NumCells;
1645
1646 case FreeRDP_BitmapCacheV3CodecId:
1647 return settings->BitmapCacheV3CodecId;
1648
1649 case FreeRDP_BitmapCacheVersion:
1650 return settings->BitmapCacheVersion;
1651
1652 case FreeRDP_BrushSupportLevel:
1653 return settings->BrushSupportLevel;
1654
1655 case FreeRDP_ChannelCount:
1656 return settings->ChannelCount;
1657
1658 case FreeRDP_ChannelDefArraySize:
1659 return settings->ChannelDefArraySize;
1660
1661 case FreeRDP_ClientBuild:
1662 return settings->ClientBuild;
1663
1664 case FreeRDP_ClientRandomLength:
1665 return settings->ClientRandomLength;
1666
1667 case FreeRDP_ClientSessionId:
1668 return settings->ClientSessionId;
1669
1670 case FreeRDP_ClipboardFeatureMask:
1671 return settings->ClipboardFeatureMask;
1672
1673 case FreeRDP_ClusterInfoFlags:
1674 return settings->ClusterInfoFlags;
1675
1676 case FreeRDP_ColorDepth:
1677 return settings->ColorDepth;
1678
1679 case FreeRDP_ColorPointerCacheSize:
1680 return settings->ColorPointerCacheSize;
1681
1682 case FreeRDP_CompDeskSupportLevel:
1683 return settings->CompDeskSupportLevel;
1684
1685 case FreeRDP_CompressionLevel:
1686 return settings->CompressionLevel;
1687
1688 case FreeRDP_ConnectionType:
1689 return settings->ConnectionType;
1690
1691 case FreeRDP_CookieMaxLength:
1692 return settings->CookieMaxLength;
1693
1694 case FreeRDP_DesktopHeight:
1695 return settings->DesktopHeight;
1696
1697 case FreeRDP_DesktopPhysicalHeight:
1698 return settings->DesktopPhysicalHeight;
1699
1700 case FreeRDP_DesktopPhysicalWidth:
1701 return settings->DesktopPhysicalWidth;
1702
1703 case FreeRDP_DesktopPosX:
1704 return settings->DesktopPosX;
1705
1706 case FreeRDP_DesktopPosY:
1707 return settings->DesktopPosY;
1708
1709 case FreeRDP_DesktopScaleFactor:
1710 return settings->DesktopScaleFactor;
1711
1712 case FreeRDP_DesktopWidth:
1713 return settings->DesktopWidth;
1714
1715 case FreeRDP_DeviceArraySize:
1716 return settings->DeviceArraySize;
1717
1718 case FreeRDP_DeviceCount:
1719 return settings->DeviceCount;
1720
1721 case FreeRDP_DeviceScaleFactor:
1722 return settings->DeviceScaleFactor;
1723
1724 case FreeRDP_DrawNineGridCacheEntries:
1725 return settings->DrawNineGridCacheEntries;
1726
1727 case FreeRDP_DrawNineGridCacheSize:
1728 return settings->DrawNineGridCacheSize;
1729
1730 case FreeRDP_DynamicChannelArraySize:
1731 return settings->DynamicChannelArraySize;
1732
1733 case FreeRDP_DynamicChannelCount:
1734 return settings->DynamicChannelCount;
1735
1736 case FreeRDP_EarlyCapabilityFlags:
1737 return settings->EarlyCapabilityFlags;
1738
1739 case FreeRDP_EncryptionLevel:
1740 return settings->EncryptionLevel;
1741
1742 case FreeRDP_EncryptionMethods:
1743 return settings->EncryptionMethods;
1744
1745 case FreeRDP_ExtEncryptionMethods:
1746 return settings->ExtEncryptionMethods;
1747
1748 case FreeRDP_FakeMouseMotionInterval:
1749 return settings->FakeMouseMotionInterval;
1750
1751 case FreeRDP_Floatbar:
1752 return settings->Floatbar;
1753
1754 case FreeRDP_ForceIPvX:
1755 return settings->ForceIPvX;
1756
1757 case FreeRDP_FrameAcknowledge:
1758 return settings->FrameAcknowledge;
1759
1760 case FreeRDP_GatewayAcceptedCertLength:
1761 return settings->GatewayAcceptedCertLength;
1762
1763 case FreeRDP_GatewayCredentialsSource:
1764 return settings->GatewayCredentialsSource;
1765
1766 case FreeRDP_GatewayPort:
1767 return settings->GatewayPort;
1768
1769 case FreeRDP_GatewayUsageMethod:
1770 return settings->GatewayUsageMethod;
1771
1772 case FreeRDP_GfxCapsFilter:
1773 return settings->GfxCapsFilter;
1774
1775 case FreeRDP_GlyphSupportLevel:
1776 return settings->GlyphSupportLevel;
1777
1778 case FreeRDP_JpegCodecId:
1779 return settings->JpegCodecId;
1780
1781 case FreeRDP_JpegQuality:
1782 return settings->JpegQuality;
1783
1784 case FreeRDP_KeySpec:
1785 return settings->KeySpec;
1786
1787 case FreeRDP_KeyboardCodePage:
1788 return settings->KeyboardCodePage;
1789
1790 case FreeRDP_KeyboardFunctionKey:
1791 return settings->KeyboardFunctionKey;
1792
1793 case FreeRDP_KeyboardHook:
1794 return settings->KeyboardHook;
1795
1796 case FreeRDP_KeyboardLayout:
1797 return settings->KeyboardLayout;
1798
1799 case FreeRDP_KeyboardSubType:
1800 return settings->KeyboardSubType;
1801
1802 case FreeRDP_KeyboardType:
1803 return settings->KeyboardType;
1804
1805 case FreeRDP_LargePointerFlag:
1806 return settings->LargePointerFlag;
1807
1808 case FreeRDP_LoadBalanceInfoLength:
1809 return settings->LoadBalanceInfoLength;
1810
1811 case FreeRDP_MonitorAttributeFlags:
1812 return settings->MonitorAttributeFlags;
1813
1814 case FreeRDP_MonitorCount:
1815 return settings->MonitorCount;
1816
1817 case FreeRDP_MonitorDefArraySize:
1818 return settings->MonitorDefArraySize;
1819
1820 case FreeRDP_MonitorFlags:
1821 return settings->MonitorFlags;
1822
1823 case FreeRDP_MultifragMaxRequestSize:
1824 return settings->MultifragMaxRequestSize;
1825
1826 case FreeRDP_MultitransportFlags:
1827 return settings->MultitransportFlags;
1828
1829 case FreeRDP_NSCodecColorLossLevel:
1830 return settings->NSCodecColorLossLevel;
1831
1832 case FreeRDP_NSCodecId:
1833 return settings->NSCodecId;
1834
1835 case FreeRDP_NegotiationFlags:
1836 return settings->NegotiationFlags;
1837
1838 case FreeRDP_NumMonitorIds:
1839 return settings->NumMonitorIds;
1840
1841 case FreeRDP_OffscreenCacheEntries:
1842 return settings->OffscreenCacheEntries;
1843
1844 case FreeRDP_OffscreenCacheSize:
1845 return settings->OffscreenCacheSize;
1846
1847 case FreeRDP_OffscreenSupportLevel:
1848 return settings->OffscreenSupportLevel;
1849
1850 case FreeRDP_OsMajorType:
1851 return settings->OsMajorType;
1852
1853 case FreeRDP_OsMinorType:
1854 return settings->OsMinorType;
1855
1856 case FreeRDP_Password51Length:
1857 return settings->Password51Length;
1858
1859 case FreeRDP_PduSource:
1860 return settings->PduSource;
1861
1862 case FreeRDP_PercentScreen:
1863 return settings->PercentScreen;
1864
1865 case FreeRDP_PerformanceFlags:
1866 return settings->PerformanceFlags;
1867
1868 case FreeRDP_PointerCacheSize:
1869 return settings->PointerCacheSize;
1870
1871 case FreeRDP_PreconnectionId:
1872 return settings->PreconnectionId;
1873
1874 case FreeRDP_ProxyType:
1875 return settings->ProxyType;
1876
1877 case FreeRDP_RdpVersion:
1878 return settings->RdpVersion;
1879
1880 case FreeRDP_ReceivedCapabilitiesSize:
1881 return settings->ReceivedCapabilitiesSize;
1882
1883 case FreeRDP_RedirectedSessionId:
1884 return settings->RedirectedSessionId;
1885
1886 case FreeRDP_RedirectionAcceptedCertLength:
1887 return settings->RedirectionAcceptedCertLength;
1888
1889 case FreeRDP_RedirectionFlags:
1890 return settings->RedirectionFlags;
1891
1892 case FreeRDP_RedirectionGuidLength:
1893 return settings->RedirectionGuidLength;
1894
1895 case FreeRDP_RedirectionPasswordLength:
1896 return settings->RedirectionPasswordLength;
1897
1898 case FreeRDP_RedirectionPreferType:
1899 return settings->RedirectionPreferType;
1900
1901 case FreeRDP_RedirectionTsvUrlLength:
1902 return settings->RedirectionTsvUrlLength;
1903
1904 case FreeRDP_RemoteAppNumIconCacheEntries:
1905 return settings->RemoteAppNumIconCacheEntries;
1906
1907 case FreeRDP_RemoteAppNumIconCaches:
1908 return settings->RemoteAppNumIconCaches;
1909
1910 case FreeRDP_RemoteApplicationExpandCmdLine:
1911 return settings->RemoteApplicationExpandCmdLine;
1912
1913 case FreeRDP_RemoteApplicationExpandWorkingDir:
1914 return settings->RemoteApplicationExpandWorkingDir;
1915
1916 case FreeRDP_RemoteApplicationSupportLevel:
1917 return settings->RemoteApplicationSupportLevel;
1918
1919 case FreeRDP_RemoteApplicationSupportMask:
1920 return settings->RemoteApplicationSupportMask;
1921
1922 case FreeRDP_RemoteFxCaptureFlags:
1923 return settings->RemoteFxCaptureFlags;
1924
1925 case FreeRDP_RemoteFxCodecId:
1926 return settings->RemoteFxCodecId;
1927
1928 case FreeRDP_RemoteFxCodecMode:
1929 return settings->RemoteFxCodecMode;
1930
1931 case FreeRDP_RemoteFxRlgrMode:
1932 return settings->RemoteFxRlgrMode;
1933
1934 case FreeRDP_RemoteWndSupportLevel:
1935 return settings->RemoteWndSupportLevel;
1936
1937 case FreeRDP_RequestedProtocols:
1938 return settings->RequestedProtocols;
1939
1940 case FreeRDP_SelectedProtocol:
1941 return settings->SelectedProtocol;
1942
1943 case FreeRDP_ServerCertificateLength:
1944 return settings->ServerCertificateLength;
1945
1946 case FreeRDP_ServerLicenseProductIssuersCount:
1947 return settings->ServerLicenseProductIssuersCount;
1948
1949 case FreeRDP_ServerLicenseProductVersion:
1950 return settings->ServerLicenseProductVersion;
1951
1952 case FreeRDP_ServerPort:
1953 return settings->ServerPort;
1954
1955 case FreeRDP_ServerRandomLength:
1956 return settings->ServerRandomLength;
1957
1958 case FreeRDP_ShareId:
1959 return settings->ShareId;
1960
1961 case FreeRDP_SmartSizingHeight:
1962 return settings->SmartSizingHeight;
1963
1964 case FreeRDP_SmartSizingWidth:
1965 return settings->SmartSizingWidth;
1966
1967 case FreeRDP_StaticChannelArraySize:
1968 return settings->StaticChannelArraySize;
1969
1970 case FreeRDP_StaticChannelCount:
1971 return settings->StaticChannelCount;
1972
1973 case FreeRDP_SurfaceCommandsSupported:
1974 return settings->SurfaceCommandsSupported;
1975
1976 case FreeRDP_TargetNetAddressCount:
1977 return settings->TargetNetAddressCount;
1978
1979 case FreeRDP_TcpAckTimeout:
1980 return settings->TcpAckTimeout;
1981
1982 case FreeRDP_TcpConnectTimeout:
1983 return settings->TcpConnectTimeout;
1984
1985 case FreeRDP_TcpKeepAliveDelay:
1986 return settings->TcpKeepAliveDelay;
1987
1988 case FreeRDP_TcpKeepAliveInterval:
1989 return settings->TcpKeepAliveInterval;
1990
1991 case FreeRDP_TcpKeepAliveRetries:
1992 return settings->TcpKeepAliveRetries;
1993
1994 case FreeRDP_ThreadingFlags:
1995 return settings->ThreadingFlags;
1996
1997 case FreeRDP_TlsSecLevel:
1998 return settings->TlsSecLevel;
1999
2000 case FreeRDP_VCChunkSize:
2001 return settings->VCChunkSize;
2002
2003 case FreeRDP_VCFlags:
2004 return settings->VCFlags;
2005
2006#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
2007 // API Compatibility section, remove with FreeRDP 4.x
2008 case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftX:
2009 return (UINT32)settings->MonitorLocalShiftX;
2010
2011 // API Compatibility section, remove with FreeRDP 4.x
2012 case (FreeRDP_Settings_Keys_UInt32)FreeRDP_MonitorLocalShiftY:
2013 return (UINT32)settings->MonitorLocalShiftY;
2014
2015#endif
2016 default:
2017 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2019 WINPR_ASSERT(FALSE);
2020 return 0;
2021 }
2022}
2023
2024BOOL freerdp_settings_set_uint32(WINPR_ATTR_UNUSED rdpSettings* settings,
2025 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt32 id, UINT32 val)
2026{
2027 union
2028 {
2029 void* v;
2030 const void* cv;
2031 UINT32 c;
2032 const UINT32 cc;
2033 } cnv;
2034 WINPR_ASSERT(settings);
2035
2036 cnv.c = val;
2037
2038 switch (id)
2039 {
2040 case FreeRDP_AcceptedCertLength:
2041 settings->AcceptedCertLength = cnv.c;
2042 break;
2043
2044 case FreeRDP_AuthenticationLevel:
2045 settings->AuthenticationLevel = cnv.c;
2046 break;
2047
2048 case FreeRDP_AutoReconnectMaxRetries:
2049 settings->AutoReconnectMaxRetries = cnv.c;
2050 break;
2051
2052 case FreeRDP_BitmapCacheV2NumCells:
2053 settings->BitmapCacheV2NumCells = cnv.c;
2054 break;
2055
2056 case FreeRDP_BitmapCacheV3CodecId:
2057 settings->BitmapCacheV3CodecId = cnv.c;
2058 break;
2059
2060 case FreeRDP_BitmapCacheVersion:
2061 settings->BitmapCacheVersion = cnv.c;
2062 break;
2063
2064 case FreeRDP_BrushSupportLevel:
2065 settings->BrushSupportLevel = cnv.c;
2066 break;
2067
2068 case FreeRDP_ChannelCount:
2069 settings->ChannelCount = cnv.c;
2070 break;
2071
2072 case FreeRDP_ChannelDefArraySize:
2073 settings->ChannelDefArraySize = cnv.c;
2074 break;
2075
2076 case FreeRDP_ClientBuild:
2077 settings->ClientBuild = cnv.c;
2078 break;
2079
2080 case FreeRDP_ClientRandomLength:
2081 settings->ClientRandomLength = cnv.c;
2082 break;
2083
2084 case FreeRDP_ClientSessionId:
2085 settings->ClientSessionId = cnv.c;
2086 break;
2087
2088 case FreeRDP_ClipboardFeatureMask:
2089 settings->ClipboardFeatureMask = cnv.c;
2090 break;
2091
2092 case FreeRDP_ClusterInfoFlags:
2093 settings->ClusterInfoFlags = cnv.c;
2094 break;
2095
2096 case FreeRDP_ColorDepth:
2097 settings->ColorDepth = cnv.c;
2098 break;
2099
2100 case FreeRDP_ColorPointerCacheSize:
2101 settings->ColorPointerCacheSize = cnv.c;
2102 break;
2103
2104 case FreeRDP_CompDeskSupportLevel:
2105 settings->CompDeskSupportLevel = cnv.c;
2106 break;
2107
2108 case FreeRDP_CompressionLevel:
2109 settings->CompressionLevel = cnv.c;
2110 break;
2111
2112 case FreeRDP_ConnectionType:
2113 settings->ConnectionType = cnv.c;
2114 break;
2115
2116 case FreeRDP_CookieMaxLength:
2117 settings->CookieMaxLength = cnv.c;
2118 break;
2119
2120 case FreeRDP_DesktopHeight:
2121 settings->DesktopHeight = cnv.c;
2122 break;
2123
2124 case FreeRDP_DesktopPhysicalHeight:
2125 settings->DesktopPhysicalHeight = cnv.c;
2126 break;
2127
2128 case FreeRDP_DesktopPhysicalWidth:
2129 settings->DesktopPhysicalWidth = cnv.c;
2130 break;
2131
2132 case FreeRDP_DesktopPosX:
2133 settings->DesktopPosX = cnv.c;
2134 break;
2135
2136 case FreeRDP_DesktopPosY:
2137 settings->DesktopPosY = cnv.c;
2138 break;
2139
2140 case FreeRDP_DesktopScaleFactor:
2141 settings->DesktopScaleFactor = cnv.c;
2142 break;
2143
2144 case FreeRDP_DesktopWidth:
2145 settings->DesktopWidth = cnv.c;
2146 break;
2147
2148 case FreeRDP_DeviceArraySize:
2149 settings->DeviceArraySize = cnv.c;
2150 break;
2151
2152 case FreeRDP_DeviceCount:
2153 settings->DeviceCount = cnv.c;
2154 break;
2155
2156 case FreeRDP_DeviceScaleFactor:
2157 settings->DeviceScaleFactor = cnv.c;
2158 break;
2159
2160 case FreeRDP_DrawNineGridCacheEntries:
2161 settings->DrawNineGridCacheEntries = cnv.c;
2162 break;
2163
2164 case FreeRDP_DrawNineGridCacheSize:
2165 settings->DrawNineGridCacheSize = cnv.c;
2166 break;
2167
2168 case FreeRDP_DynamicChannelArraySize:
2169 settings->DynamicChannelArraySize = cnv.c;
2170 break;
2171
2172 case FreeRDP_DynamicChannelCount:
2173 settings->DynamicChannelCount = cnv.c;
2174 break;
2175
2176 case FreeRDP_EarlyCapabilityFlags:
2177 settings->EarlyCapabilityFlags = cnv.c;
2178 break;
2179
2180 case FreeRDP_EncryptionLevel:
2181 settings->EncryptionLevel = cnv.c;
2182 break;
2183
2184 case FreeRDP_EncryptionMethods:
2185 settings->EncryptionMethods = cnv.c;
2186 break;
2187
2188 case FreeRDP_ExtEncryptionMethods:
2189 settings->ExtEncryptionMethods = cnv.c;
2190 break;
2191
2192 case FreeRDP_FakeMouseMotionInterval:
2193 settings->FakeMouseMotionInterval = cnv.c;
2194 break;
2195
2196 case FreeRDP_Floatbar:
2197 settings->Floatbar = cnv.c;
2198 break;
2199
2200 case FreeRDP_ForceIPvX:
2201 settings->ForceIPvX = cnv.c;
2202 break;
2203
2204 case FreeRDP_FrameAcknowledge:
2205 settings->FrameAcknowledge = cnv.c;
2206 break;
2207
2208 case FreeRDP_GatewayAcceptedCertLength:
2209 settings->GatewayAcceptedCertLength = cnv.c;
2210 break;
2211
2212 case FreeRDP_GatewayCredentialsSource:
2213 settings->GatewayCredentialsSource = cnv.c;
2214 break;
2215
2216 case FreeRDP_GatewayPort:
2217 settings->GatewayPort = cnv.c;
2218 break;
2219
2220 case FreeRDP_GatewayUsageMethod:
2221 settings->GatewayUsageMethod = cnv.c;
2222 break;
2223
2224 case FreeRDP_GfxCapsFilter:
2225 settings->GfxCapsFilter = cnv.c;
2226 break;
2227
2228 case FreeRDP_GlyphSupportLevel:
2229 settings->GlyphSupportLevel = cnv.c;
2230 break;
2231
2232 case FreeRDP_JpegCodecId:
2233 settings->JpegCodecId = cnv.c;
2234 break;
2235
2236 case FreeRDP_JpegQuality:
2237 settings->JpegQuality = cnv.c;
2238 break;
2239
2240 case FreeRDP_KeySpec:
2241 settings->KeySpec = cnv.c;
2242 break;
2243
2244 case FreeRDP_KeyboardCodePage:
2245 settings->KeyboardCodePage = cnv.c;
2246 break;
2247
2248 case FreeRDP_KeyboardFunctionKey:
2249 settings->KeyboardFunctionKey = cnv.c;
2250 break;
2251
2252 case FreeRDP_KeyboardHook:
2253 settings->KeyboardHook = cnv.c;
2254 break;
2255
2256 case FreeRDP_KeyboardLayout:
2257 settings->KeyboardLayout = cnv.c;
2258 break;
2259
2260 case FreeRDP_KeyboardSubType:
2261 settings->KeyboardSubType = cnv.c;
2262 break;
2263
2264 case FreeRDP_KeyboardType:
2265 settings->KeyboardType = cnv.c;
2266 break;
2267
2268 case FreeRDP_LargePointerFlag:
2269 settings->LargePointerFlag = cnv.c;
2270 break;
2271
2272 case FreeRDP_LoadBalanceInfoLength:
2273 settings->LoadBalanceInfoLength = cnv.c;
2274 break;
2275
2276 case FreeRDP_MonitorAttributeFlags:
2277 settings->MonitorAttributeFlags = cnv.c;
2278 break;
2279
2280 case FreeRDP_MonitorCount:
2281 settings->MonitorCount = cnv.c;
2282 break;
2283
2284 case FreeRDP_MonitorDefArraySize:
2285 settings->MonitorDefArraySize = cnv.c;
2286 break;
2287
2288 case FreeRDP_MonitorFlags:
2289 settings->MonitorFlags = cnv.c;
2290 break;
2291
2292 case FreeRDP_MultifragMaxRequestSize:
2293 settings->MultifragMaxRequestSize = cnv.c;
2294 break;
2295
2296 case FreeRDP_MultitransportFlags:
2297 settings->MultitransportFlags = cnv.c;
2298 break;
2299
2300 case FreeRDP_NSCodecColorLossLevel:
2301 settings->NSCodecColorLossLevel = cnv.c;
2302 break;
2303
2304 case FreeRDP_NSCodecId:
2305 settings->NSCodecId = cnv.c;
2306 break;
2307
2308 case FreeRDP_NegotiationFlags:
2309 settings->NegotiationFlags = cnv.c;
2310 break;
2311
2312 case FreeRDP_NumMonitorIds:
2313 settings->NumMonitorIds = cnv.c;
2314 break;
2315
2316 case FreeRDP_OffscreenCacheEntries:
2317 settings->OffscreenCacheEntries = cnv.c;
2318 break;
2319
2320 case FreeRDP_OffscreenCacheSize:
2321 settings->OffscreenCacheSize = cnv.c;
2322 break;
2323
2324 case FreeRDP_OffscreenSupportLevel:
2325 settings->OffscreenSupportLevel = cnv.c;
2326 break;
2327
2328 case FreeRDP_OsMajorType:
2329 settings->OsMajorType = cnv.c;
2330 break;
2331
2332 case FreeRDP_OsMinorType:
2333 settings->OsMinorType = cnv.c;
2334 break;
2335
2336 case FreeRDP_Password51Length:
2337 settings->Password51Length = cnv.c;
2338 break;
2339
2340 case FreeRDP_PduSource:
2341 settings->PduSource = cnv.c;
2342 break;
2343
2344 case FreeRDP_PercentScreen:
2345 settings->PercentScreen = cnv.c;
2346 break;
2347
2348 case FreeRDP_PerformanceFlags:
2349 settings->PerformanceFlags = cnv.c;
2350 break;
2351
2352 case FreeRDP_PointerCacheSize:
2353 settings->PointerCacheSize = cnv.c;
2354 break;
2355
2356 case FreeRDP_PreconnectionId:
2357 settings->PreconnectionId = cnv.c;
2358 break;
2359
2360 case FreeRDP_ProxyType:
2361 settings->ProxyType = cnv.c;
2362 break;
2363
2364 case FreeRDP_RdpVersion:
2365 settings->RdpVersion = cnv.c;
2366 break;
2367
2368 case FreeRDP_ReceivedCapabilitiesSize:
2369 settings->ReceivedCapabilitiesSize = cnv.c;
2370 break;
2371
2372 case FreeRDP_RedirectedSessionId:
2373 settings->RedirectedSessionId = cnv.c;
2374 break;
2375
2376 case FreeRDP_RedirectionAcceptedCertLength:
2377 settings->RedirectionAcceptedCertLength = cnv.c;
2378 break;
2379
2380 case FreeRDP_RedirectionFlags:
2381 settings->RedirectionFlags = cnv.c;
2382 break;
2383
2384 case FreeRDP_RedirectionGuidLength:
2385 settings->RedirectionGuidLength = cnv.c;
2386 break;
2387
2388 case FreeRDP_RedirectionPasswordLength:
2389 settings->RedirectionPasswordLength = cnv.c;
2390 break;
2391
2392 case FreeRDP_RedirectionPreferType:
2393 settings->RedirectionPreferType = cnv.c;
2394 break;
2395
2396 case FreeRDP_RedirectionTsvUrlLength:
2397 settings->RedirectionTsvUrlLength = cnv.c;
2398 break;
2399
2400 case FreeRDP_RemoteAppNumIconCacheEntries:
2401 settings->RemoteAppNumIconCacheEntries = cnv.c;
2402 break;
2403
2404 case FreeRDP_RemoteAppNumIconCaches:
2405 settings->RemoteAppNumIconCaches = cnv.c;
2406 break;
2407
2408 case FreeRDP_RemoteApplicationExpandCmdLine:
2409 settings->RemoteApplicationExpandCmdLine = cnv.c;
2410 break;
2411
2412 case FreeRDP_RemoteApplicationExpandWorkingDir:
2413 settings->RemoteApplicationExpandWorkingDir = cnv.c;
2414 break;
2415
2416 case FreeRDP_RemoteApplicationSupportLevel:
2417 settings->RemoteApplicationSupportLevel = cnv.c;
2418 break;
2419
2420 case FreeRDP_RemoteApplicationSupportMask:
2421 settings->RemoteApplicationSupportMask = cnv.c;
2422 break;
2423
2424 case FreeRDP_RemoteFxCaptureFlags:
2425 settings->RemoteFxCaptureFlags = cnv.c;
2426 break;
2427
2428 case FreeRDP_RemoteFxCodecId:
2429 settings->RemoteFxCodecId = cnv.c;
2430 break;
2431
2432 case FreeRDP_RemoteFxCodecMode:
2433 settings->RemoteFxCodecMode = cnv.c;
2434 break;
2435
2436 case FreeRDP_RemoteFxRlgrMode:
2437 settings->RemoteFxRlgrMode = cnv.c;
2438 break;
2439
2440 case FreeRDP_RemoteWndSupportLevel:
2441 settings->RemoteWndSupportLevel = cnv.c;
2442 break;
2443
2444 case FreeRDP_RequestedProtocols:
2445 settings->RequestedProtocols = cnv.c;
2446 break;
2447
2448 case FreeRDP_SelectedProtocol:
2449 settings->SelectedProtocol = cnv.c;
2450 break;
2451
2452 case FreeRDP_ServerCertificateLength:
2453 settings->ServerCertificateLength = cnv.c;
2454 break;
2455
2456 case FreeRDP_ServerLicenseProductIssuersCount:
2457 settings->ServerLicenseProductIssuersCount = cnv.c;
2458 break;
2459
2460 case FreeRDP_ServerLicenseProductVersion:
2461 settings->ServerLicenseProductVersion = cnv.c;
2462 break;
2463
2464 case FreeRDP_ServerPort:
2465 settings->ServerPort = cnv.c;
2466 break;
2467
2468 case FreeRDP_ServerRandomLength:
2469 settings->ServerRandomLength = cnv.c;
2470 break;
2471
2472 case FreeRDP_ShareId:
2473 settings->ShareId = cnv.c;
2474 break;
2475
2476 case FreeRDP_SmartSizingHeight:
2477 settings->SmartSizingHeight = cnv.c;
2478 break;
2479
2480 case FreeRDP_SmartSizingWidth:
2481 settings->SmartSizingWidth = cnv.c;
2482 break;
2483
2484 case FreeRDP_StaticChannelArraySize:
2485 settings->StaticChannelArraySize = cnv.c;
2486 break;
2487
2488 case FreeRDP_StaticChannelCount:
2489 settings->StaticChannelCount = cnv.c;
2490 break;
2491
2492 case FreeRDP_SurfaceCommandsSupported:
2493 settings->SurfaceCommandsSupported = cnv.c;
2494 break;
2495
2496 case FreeRDP_TargetNetAddressCount:
2497 settings->TargetNetAddressCount = cnv.c;
2498 break;
2499
2500 case FreeRDP_TcpAckTimeout:
2501 settings->TcpAckTimeout = cnv.c;
2502 break;
2503
2504 case FreeRDP_TcpConnectTimeout:
2505 settings->TcpConnectTimeout = cnv.c;
2506 break;
2507
2508 case FreeRDP_TcpKeepAliveDelay:
2509 settings->TcpKeepAliveDelay = cnv.c;
2510 break;
2511
2512 case FreeRDP_TcpKeepAliveInterval:
2513 settings->TcpKeepAliveInterval = cnv.c;
2514 break;
2515
2516 case FreeRDP_TcpKeepAliveRetries:
2517 settings->TcpKeepAliveRetries = cnv.c;
2518 break;
2519
2520 case FreeRDP_ThreadingFlags:
2521 settings->ThreadingFlags = cnv.c;
2522 break;
2523
2524 case FreeRDP_TlsSecLevel:
2525 settings->TlsSecLevel = cnv.c;
2526 break;
2527
2528 case FreeRDP_VCChunkSize:
2529 settings->VCChunkSize = cnv.c;
2530 break;
2531
2532 case FreeRDP_VCFlags:
2533 settings->VCFlags = cnv.c;
2534 break;
2535
2536#if !defined(WITHOUT_FREERDP_3x_DEPRECATED)
2537 // API Compatibility section, remove with FreeRDP 4.x
2538 case FreeRDP_MonitorLocalShiftX:
2539 settings->MonitorLocalShiftX = (int32_t)cnv.c;
2540 break;
2541
2542 // API Compatibility section, remove with FreeRDP 4.x
2543 case FreeRDP_MonitorLocalShiftY:
2544 settings->MonitorLocalShiftY = (int32_t)cnv.c;
2545 break;
2546
2547#endif
2548 default:
2549 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2551 return FALSE;
2552 }
2553 return TRUE;
2554}
2555
2556INT32 freerdp_settings_get_int32(WINPR_ATTR_UNUSED const rdpSettings* settings,
2557 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int32 id)
2558{
2559 WINPR_ASSERT(settings);
2560
2561 switch (id)
2562 {
2563 case FreeRDP_MonitorLocalShiftX:
2564 return settings->MonitorLocalShiftX;
2565
2566 case FreeRDP_MonitorLocalShiftY:
2567 return settings->MonitorLocalShiftY;
2568
2569 case FreeRDP_XPan:
2570 return settings->XPan;
2571
2572 case FreeRDP_YPan:
2573 return settings->YPan;
2574
2575 default:
2576 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2578 WINPR_ASSERT(FALSE);
2579 return 0;
2580 }
2581}
2582
2583BOOL freerdp_settings_set_int32(WINPR_ATTR_UNUSED rdpSettings* settings,
2584 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int32 id, INT32 val)
2585{
2586 union
2587 {
2588 void* v;
2589 const void* cv;
2590 INT32 c;
2591 const INT32 cc;
2592 } cnv;
2593 WINPR_ASSERT(settings);
2594
2595 cnv.c = val;
2596
2597 switch (id)
2598 {
2599 case FreeRDP_MonitorLocalShiftX:
2600 settings->MonitorLocalShiftX = cnv.c;
2601 break;
2602
2603 case FreeRDP_MonitorLocalShiftY:
2604 settings->MonitorLocalShiftY = cnv.c;
2605 break;
2606
2607 case FreeRDP_XPan:
2608 settings->XPan = cnv.c;
2609 break;
2610
2611 case FreeRDP_YPan:
2612 settings->YPan = cnv.c;
2613 break;
2614
2615 default:
2616 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2618 return FALSE;
2619 }
2620 return TRUE;
2621}
2622
2623UINT64 freerdp_settings_get_uint64(WINPR_ATTR_UNUSED const rdpSettings* settings,
2624 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt64 id)
2625{
2626 WINPR_ASSERT(settings);
2627
2628 switch (id)
2629 {
2630 case FreeRDP_MonitorOverrideFlags:
2631 return settings->MonitorOverrideFlags;
2632
2633 case FreeRDP_ParentWindowId:
2634 return settings->ParentWindowId;
2635
2636 default:
2637 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2639 WINPR_ASSERT(FALSE);
2640 return 0;
2641 }
2642}
2643
2644BOOL freerdp_settings_set_uint64(WINPR_ATTR_UNUSED rdpSettings* settings,
2645 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_UInt64 id, UINT64 val)
2646{
2647 union
2648 {
2649 void* v;
2650 const void* cv;
2651 UINT64 c;
2652 const UINT64 cc;
2653 } cnv;
2654 WINPR_ASSERT(settings);
2655
2656 cnv.c = val;
2657
2658 switch (id)
2659 {
2660 case FreeRDP_MonitorOverrideFlags:
2661 settings->MonitorOverrideFlags = cnv.c;
2662 break;
2663
2664 case FreeRDP_ParentWindowId:
2665 settings->ParentWindowId = cnv.c;
2666 break;
2667
2668 default:
2669 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2671 return FALSE;
2672 }
2673 return TRUE;
2674}
2675
2676INT64 freerdp_settings_get_int64(WINPR_ATTR_UNUSED const rdpSettings* settings,
2677 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int64 id)
2678{
2679 WINPR_ASSERT(settings);
2680
2681 switch (id)
2682 {
2683 default:
2684 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2686 WINPR_ASSERT(FALSE);
2687 return 0;
2688 }
2689}
2690
2691BOOL freerdp_settings_set_int64(WINPR_ATTR_UNUSED rdpSettings* settings,
2692 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Int64 id, INT64 val)
2693{
2694 union
2695 {
2696 void* v;
2697 const void* cv;
2698 INT64 c;
2699 const INT64 cc;
2700 } cnv;
2701 WINPR_ASSERT(settings);
2702
2703 cnv.c = val;
2704
2705 switch (id)
2706 {
2707 default:
2708 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
2710 return FALSE;
2711 }
2712 return TRUE;
2713}
2714
2715const char* freerdp_settings_get_string(WINPR_ATTR_UNUSED const rdpSettings* settings,
2716 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_String id)
2717{
2718 WINPR_ASSERT(settings);
2719
2720 switch (id)
2721 {
2722 case FreeRDP_AadServerHostname:
2723 return settings->AadServerHostname;
2724
2725 case FreeRDP_AcceptedCert:
2726 return settings->AcceptedCert;
2727
2728 case FreeRDP_ActionScript:
2729 return settings->ActionScript;
2730
2731 case FreeRDP_AllowedTlsCiphers:
2732 return settings->AllowedTlsCiphers;
2733
2734 case FreeRDP_AlternateShell:
2735 return settings->AlternateShell;
2736
2737 case FreeRDP_AssistanceFile:
2738 return settings->AssistanceFile;
2739
2740 case FreeRDP_AuthenticationPackageList:
2741 return settings->AuthenticationPackageList;
2742
2743 case FreeRDP_AuthenticationServiceClass:
2744 return settings->AuthenticationServiceClass;
2745
2746 case FreeRDP_BitmapCachePersistFile:
2747 return settings->BitmapCachePersistFile;
2748
2749 case FreeRDP_CardName:
2750 return settings->CardName;
2751
2752 case FreeRDP_CertificateAcceptedFingerprints:
2753 return settings->CertificateAcceptedFingerprints;
2754
2755 case FreeRDP_CertificateName:
2756 return settings->CertificateName;
2757
2758 case FreeRDP_ClientAddress:
2759 return settings->ClientAddress;
2760
2761 case FreeRDP_ClientDir:
2762 return settings->ClientDir;
2763
2764 case FreeRDP_ClientHostname:
2765 return settings->ClientHostname;
2766
2767 case FreeRDP_ClientProductId:
2768 return settings->ClientProductId;
2769
2770 case FreeRDP_ClipboardUseSelection:
2771 return settings->ClipboardUseSelection;
2772
2773 case FreeRDP_ComputerName:
2774 return settings->ComputerName;
2775
2776 case FreeRDP_ConfigPath:
2777 return settings->ConfigPath;
2778
2779 case FreeRDP_ConnectionFile:
2780 return settings->ConnectionFile;
2781
2782 case FreeRDP_ContainerName:
2783 return settings->ContainerName;
2784
2785 case FreeRDP_CspName:
2786 return settings->CspName;
2787
2788 case FreeRDP_CurrentPath:
2789 return settings->CurrentPath;
2790
2791 case FreeRDP_Domain:
2792 return settings->Domain;
2793
2794 case FreeRDP_DrivesToRedirect:
2795 return settings->DrivesToRedirect;
2796
2797 case FreeRDP_DumpRemoteFxFile:
2798 return settings->DumpRemoteFxFile;
2799
2800 case FreeRDP_DynamicDSTTimeZoneKeyName:
2801 return settings->DynamicDSTTimeZoneKeyName;
2802
2803 case FreeRDP_GatewayAcceptedCert:
2804 return settings->GatewayAcceptedCert;
2805
2806 case FreeRDP_GatewayAccessToken:
2807 return settings->GatewayAccessToken;
2808
2809 case FreeRDP_GatewayAvdAadtenantid:
2810 return settings->GatewayAvdAadtenantid;
2811
2812 case FreeRDP_GatewayAvdAccessAadFormat:
2813 return settings->GatewayAvdAccessAadFormat;
2814
2815 case FreeRDP_GatewayAvdAccessTokenFormat:
2816 return settings->GatewayAvdAccessTokenFormat;
2817
2818 case FreeRDP_GatewayAvdActivityhint:
2819 return settings->GatewayAvdActivityhint;
2820
2821 case FreeRDP_GatewayAvdArmpath:
2822 return settings->GatewayAvdArmpath;
2823
2824 case FreeRDP_GatewayAvdClientID:
2825 return settings->GatewayAvdClientID;
2826
2827 case FreeRDP_GatewayAvdDiagnosticserviceurl:
2828 return settings->GatewayAvdDiagnosticserviceurl;
2829
2830 case FreeRDP_GatewayAvdGeo:
2831 return settings->GatewayAvdGeo;
2832
2833 case FreeRDP_GatewayAvdHubdiscoverygeourl:
2834 return settings->GatewayAvdHubdiscoverygeourl;
2835
2836 case FreeRDP_GatewayAvdScope:
2837 return settings->GatewayAvdScope;
2838
2839 case FreeRDP_GatewayAvdWvdEndpointPool:
2840 return settings->GatewayAvdWvdEndpointPool;
2841
2842 case FreeRDP_GatewayAzureActiveDirectory:
2843 return settings->GatewayAzureActiveDirectory;
2844
2845 case FreeRDP_GatewayDomain:
2846 return settings->GatewayDomain;
2847
2848 case FreeRDP_GatewayHostname:
2849 return settings->GatewayHostname;
2850
2851 case FreeRDP_GatewayHttpExtAuthBearer:
2852 return settings->GatewayHttpExtAuthBearer;
2853
2854 case FreeRDP_GatewayHttpMsUserAgent:
2855 return settings->GatewayHttpMsUserAgent;
2856
2857 case FreeRDP_GatewayHttpReferer:
2858 return settings->GatewayHttpReferer;
2859
2860 case FreeRDP_GatewayHttpUserAgent:
2861 return settings->GatewayHttpUserAgent;
2862
2863 case FreeRDP_GatewayPassword:
2864 return settings->GatewayPassword;
2865
2866 case FreeRDP_GatewayUrl:
2867 return settings->GatewayUrl;
2868
2869 case FreeRDP_GatewayUsername:
2870 return settings->GatewayUsername;
2871
2872 case FreeRDP_HomePath:
2873 return settings->HomePath;
2874
2875 case FreeRDP_ImeFileName:
2876 return settings->ImeFileName;
2877
2878 case FreeRDP_KerberosArmor:
2879 return settings->KerberosArmor;
2880
2881 case FreeRDP_KerberosCache:
2882 return settings->KerberosCache;
2883
2884 case FreeRDP_KerberosKdcUrl:
2885 return settings->KerberosKdcUrl;
2886
2887 case FreeRDP_KerberosKeytab:
2888 return settings->KerberosKeytab;
2889
2890 case FreeRDP_KerberosLifeTime:
2891 return settings->KerberosLifeTime;
2892
2893 case FreeRDP_KerberosRealm:
2894 return settings->KerberosRealm;
2895
2896 case FreeRDP_KerberosRenewableLifeTime:
2897 return settings->KerberosRenewableLifeTime;
2898
2899 case FreeRDP_KerberosStartTime:
2900 return settings->KerberosStartTime;
2901
2902 case FreeRDP_KeyboardPipeName:
2903 return settings->KeyboardPipeName;
2904
2905 case FreeRDP_KeyboardRemappingList:
2906 return settings->KeyboardRemappingList;
2907
2908 case FreeRDP_NtlmSamFile:
2909 return settings->NtlmSamFile;
2910
2911 case FreeRDP_Password:
2912 return settings->Password;
2913
2914 case FreeRDP_PasswordHash:
2915 return settings->PasswordHash;
2916
2917 case FreeRDP_Pkcs11Module:
2918 return settings->Pkcs11Module;
2919
2920 case FreeRDP_PkinitAnchors:
2921 return settings->PkinitAnchors;
2922
2923 case FreeRDP_PlayRemoteFxFile:
2924 return settings->PlayRemoteFxFile;
2925
2926 case FreeRDP_PreconnectionBlob:
2927 return settings->PreconnectionBlob;
2928
2929 case FreeRDP_ProxyHostname:
2930 return settings->ProxyHostname;
2931
2932 case FreeRDP_ProxyPassword:
2933 return settings->ProxyPassword;
2934
2935 case FreeRDP_ProxyUsername:
2936 return settings->ProxyUsername;
2937
2938 case FreeRDP_RDP2TCPArgs:
2939 return settings->RDP2TCPArgs;
2940
2941 case FreeRDP_ReaderName:
2942 return settings->ReaderName;
2943
2944 case FreeRDP_RedirectionAcceptedCert:
2945 return settings->RedirectionAcceptedCert;
2946
2947 case FreeRDP_RedirectionDomain:
2948 return settings->RedirectionDomain;
2949
2950 case FreeRDP_RedirectionTargetFQDN:
2951 return settings->RedirectionTargetFQDN;
2952
2953 case FreeRDP_RedirectionTargetNetBiosName:
2954 return settings->RedirectionTargetNetBiosName;
2955
2956 case FreeRDP_RedirectionUsername:
2957 return settings->RedirectionUsername;
2958
2959 case FreeRDP_RemoteApplicationCmdLine:
2960 return settings->RemoteApplicationCmdLine;
2961
2962 case FreeRDP_RemoteApplicationFile:
2963 return settings->RemoteApplicationFile;
2964
2965 case FreeRDP_RemoteApplicationGuid:
2966 return settings->RemoteApplicationGuid;
2967
2968 case FreeRDP_RemoteApplicationIcon:
2969 return settings->RemoteApplicationIcon;
2970
2971 case FreeRDP_RemoteApplicationName:
2972 return settings->RemoteApplicationName;
2973
2974 case FreeRDP_RemoteApplicationProgram:
2975 return settings->RemoteApplicationProgram;
2976
2977 case FreeRDP_RemoteApplicationWorkingDir:
2978 return settings->RemoteApplicationWorkingDir;
2979
2980 case FreeRDP_RemoteAssistancePassStub:
2981 return settings->RemoteAssistancePassStub;
2982
2983 case FreeRDP_RemoteAssistancePassword:
2984 return settings->RemoteAssistancePassword;
2985
2986 case FreeRDP_RemoteAssistanceRCTicket:
2987 return settings->RemoteAssistanceRCTicket;
2988
2989 case FreeRDP_RemoteAssistanceSessionId:
2990 return settings->RemoteAssistanceSessionId;
2991
2992 case FreeRDP_ServerHostname:
2993 return settings->ServerHostname;
2994
2995 case FreeRDP_ServerLicenseCompanyName:
2996 return settings->ServerLicenseCompanyName;
2997
2998 case FreeRDP_ServerLicenseProductName:
2999 return settings->ServerLicenseProductName;
3000
3001 case FreeRDP_ShellWorkingDirectory:
3002 return settings->ShellWorkingDirectory;
3003
3004 case FreeRDP_SmartcardCertificate:
3005 return settings->SmartcardCertificate;
3006
3007 case FreeRDP_SmartcardPrivateKey:
3008 return settings->SmartcardPrivateKey;
3009
3010 case FreeRDP_SspiModule:
3011 return settings->SspiModule;
3012
3013 case FreeRDP_TargetNetAddress:
3014 return settings->TargetNetAddress;
3015
3016 case FreeRDP_TerminalDescriptor:
3017 return settings->TerminalDescriptor;
3018
3019 case FreeRDP_TlsSecretsFile:
3020 return settings->TlsSecretsFile;
3021
3022 case FreeRDP_TransportDumpFile:
3023 return settings->TransportDumpFile;
3024
3025 case FreeRDP_UserSpecifiedServerName:
3026 return settings->UserSpecifiedServerName;
3027
3028 case FreeRDP_Username:
3029 return settings->Username;
3030
3031 case FreeRDP_WinSCardModule:
3032 return settings->WinSCardModule;
3033
3034 case FreeRDP_WindowTitle:
3035 return settings->WindowTitle;
3036
3037 case FreeRDP_WmClass:
3038 return settings->WmClass;
3039
3040 default:
3041 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
3043 WINPR_ASSERT(FALSE);
3044 return NULL;
3045 }
3046}
3047
3048char* freerdp_settings_get_string_writable(rdpSettings* settings, FreeRDP_Settings_Keys_String id)
3049{
3050 WINPR_ASSERT(settings);
3051
3052 switch (id)
3053 {
3054 case FreeRDP_AadServerHostname:
3055 return settings->AadServerHostname;
3056
3057 case FreeRDP_AcceptedCert:
3058 return settings->AcceptedCert;
3059
3060 case FreeRDP_ActionScript:
3061 return settings->ActionScript;
3062
3063 case FreeRDP_AllowedTlsCiphers:
3064 return settings->AllowedTlsCiphers;
3065
3066 case FreeRDP_AlternateShell:
3067 return settings->AlternateShell;
3068
3069 case FreeRDP_AssistanceFile:
3070 return settings->AssistanceFile;
3071
3072 case FreeRDP_AuthenticationPackageList:
3073 return settings->AuthenticationPackageList;
3074
3075 case FreeRDP_AuthenticationServiceClass:
3076 return settings->AuthenticationServiceClass;
3077
3078 case FreeRDP_BitmapCachePersistFile:
3079 return settings->BitmapCachePersistFile;
3080
3081 case FreeRDP_CardName:
3082 return settings->CardName;
3083
3084 case FreeRDP_CertificateAcceptedFingerprints:
3085 return settings->CertificateAcceptedFingerprints;
3086
3087 case FreeRDP_CertificateName:
3088 return settings->CertificateName;
3089
3090 case FreeRDP_ClientAddress:
3091 return settings->ClientAddress;
3092
3093 case FreeRDP_ClientDir:
3094 return settings->ClientDir;
3095
3096 case FreeRDP_ClientHostname:
3097 return settings->ClientHostname;
3098
3099 case FreeRDP_ClientProductId:
3100 return settings->ClientProductId;
3101
3102 case FreeRDP_ClipboardUseSelection:
3103 return settings->ClipboardUseSelection;
3104
3105 case FreeRDP_ComputerName:
3106 return settings->ComputerName;
3107
3108 case FreeRDP_ConfigPath:
3109 return settings->ConfigPath;
3110
3111 case FreeRDP_ConnectionFile:
3112 return settings->ConnectionFile;
3113
3114 case FreeRDP_ContainerName:
3115 return settings->ContainerName;
3116
3117 case FreeRDP_CspName:
3118 return settings->CspName;
3119
3120 case FreeRDP_CurrentPath:
3121 return settings->CurrentPath;
3122
3123 case FreeRDP_Domain:
3124 return settings->Domain;
3125
3126 case FreeRDP_DrivesToRedirect:
3127 return settings->DrivesToRedirect;
3128
3129 case FreeRDP_DumpRemoteFxFile:
3130 return settings->DumpRemoteFxFile;
3131
3132 case FreeRDP_DynamicDSTTimeZoneKeyName:
3133 return settings->DynamicDSTTimeZoneKeyName;
3134
3135 case FreeRDP_GatewayAcceptedCert:
3136 return settings->GatewayAcceptedCert;
3137
3138 case FreeRDP_GatewayAccessToken:
3139 return settings->GatewayAccessToken;
3140
3141 case FreeRDP_GatewayAvdAadtenantid:
3142 return settings->GatewayAvdAadtenantid;
3143
3144 case FreeRDP_GatewayAvdAccessAadFormat:
3145 return settings->GatewayAvdAccessAadFormat;
3146
3147 case FreeRDP_GatewayAvdAccessTokenFormat:
3148 return settings->GatewayAvdAccessTokenFormat;
3149
3150 case FreeRDP_GatewayAvdActivityhint:
3151 return settings->GatewayAvdActivityhint;
3152
3153 case FreeRDP_GatewayAvdArmpath:
3154 return settings->GatewayAvdArmpath;
3155
3156 case FreeRDP_GatewayAvdClientID:
3157 return settings->GatewayAvdClientID;
3158
3159 case FreeRDP_GatewayAvdDiagnosticserviceurl:
3160 return settings->GatewayAvdDiagnosticserviceurl;
3161
3162 case FreeRDP_GatewayAvdGeo:
3163 return settings->GatewayAvdGeo;
3164
3165 case FreeRDP_GatewayAvdHubdiscoverygeourl:
3166 return settings->GatewayAvdHubdiscoverygeourl;
3167
3168 case FreeRDP_GatewayAvdScope:
3169 return settings->GatewayAvdScope;
3170
3171 case FreeRDP_GatewayAvdWvdEndpointPool:
3172 return settings->GatewayAvdWvdEndpointPool;
3173
3174 case FreeRDP_GatewayAzureActiveDirectory:
3175 return settings->GatewayAzureActiveDirectory;
3176
3177 case FreeRDP_GatewayDomain:
3178 return settings->GatewayDomain;
3179
3180 case FreeRDP_GatewayHostname:
3181 return settings->GatewayHostname;
3182
3183 case FreeRDP_GatewayHttpExtAuthBearer:
3184 return settings->GatewayHttpExtAuthBearer;
3185
3186 case FreeRDP_GatewayHttpMsUserAgent:
3187 return settings->GatewayHttpMsUserAgent;
3188
3189 case FreeRDP_GatewayHttpReferer:
3190 return settings->GatewayHttpReferer;
3191
3192 case FreeRDP_GatewayHttpUserAgent:
3193 return settings->GatewayHttpUserAgent;
3194
3195 case FreeRDP_GatewayPassword:
3196 return settings->GatewayPassword;
3197
3198 case FreeRDP_GatewayUrl:
3199 return settings->GatewayUrl;
3200
3201 case FreeRDP_GatewayUsername:
3202 return settings->GatewayUsername;
3203
3204 case FreeRDP_HomePath:
3205 return settings->HomePath;
3206
3207 case FreeRDP_ImeFileName:
3208 return settings->ImeFileName;
3209
3210 case FreeRDP_KerberosArmor:
3211 return settings->KerberosArmor;
3212
3213 case FreeRDP_KerberosCache:
3214 return settings->KerberosCache;
3215
3216 case FreeRDP_KerberosKdcUrl:
3217 return settings->KerberosKdcUrl;
3218
3219 case FreeRDP_KerberosKeytab:
3220 return settings->KerberosKeytab;
3221
3222 case FreeRDP_KerberosLifeTime:
3223 return settings->KerberosLifeTime;
3224
3225 case FreeRDP_KerberosRealm:
3226 return settings->KerberosRealm;
3227
3228 case FreeRDP_KerberosRenewableLifeTime:
3229 return settings->KerberosRenewableLifeTime;
3230
3231 case FreeRDP_KerberosStartTime:
3232 return settings->KerberosStartTime;
3233
3234 case FreeRDP_KeyboardPipeName:
3235 return settings->KeyboardPipeName;
3236
3237 case FreeRDP_KeyboardRemappingList:
3238 return settings->KeyboardRemappingList;
3239
3240 case FreeRDP_NtlmSamFile:
3241 return settings->NtlmSamFile;
3242
3243 case FreeRDP_Password:
3244 return settings->Password;
3245
3246 case FreeRDP_PasswordHash:
3247 return settings->PasswordHash;
3248
3249 case FreeRDP_Pkcs11Module:
3250 return settings->Pkcs11Module;
3251
3252 case FreeRDP_PkinitAnchors:
3253 return settings->PkinitAnchors;
3254
3255 case FreeRDP_PlayRemoteFxFile:
3256 return settings->PlayRemoteFxFile;
3257
3258 case FreeRDP_PreconnectionBlob:
3259 return settings->PreconnectionBlob;
3260
3261 case FreeRDP_ProxyHostname:
3262 return settings->ProxyHostname;
3263
3264 case FreeRDP_ProxyPassword:
3265 return settings->ProxyPassword;
3266
3267 case FreeRDP_ProxyUsername:
3268 return settings->ProxyUsername;
3269
3270 case FreeRDP_RDP2TCPArgs:
3271 return settings->RDP2TCPArgs;
3272
3273 case FreeRDP_ReaderName:
3274 return settings->ReaderName;
3275
3276 case FreeRDP_RedirectionAcceptedCert:
3277 return settings->RedirectionAcceptedCert;
3278
3279 case FreeRDP_RedirectionDomain:
3280 return settings->RedirectionDomain;
3281
3282 case FreeRDP_RedirectionTargetFQDN:
3283 return settings->RedirectionTargetFQDN;
3284
3285 case FreeRDP_RedirectionTargetNetBiosName:
3286 return settings->RedirectionTargetNetBiosName;
3287
3288 case FreeRDP_RedirectionUsername:
3289 return settings->RedirectionUsername;
3290
3291 case FreeRDP_RemoteApplicationCmdLine:
3292 return settings->RemoteApplicationCmdLine;
3293
3294 case FreeRDP_RemoteApplicationFile:
3295 return settings->RemoteApplicationFile;
3296
3297 case FreeRDP_RemoteApplicationGuid:
3298 return settings->RemoteApplicationGuid;
3299
3300 case FreeRDP_RemoteApplicationIcon:
3301 return settings->RemoteApplicationIcon;
3302
3303 case FreeRDP_RemoteApplicationName:
3304 return settings->RemoteApplicationName;
3305
3306 case FreeRDP_RemoteApplicationProgram:
3307 return settings->RemoteApplicationProgram;
3308
3309 case FreeRDP_RemoteApplicationWorkingDir:
3310 return settings->RemoteApplicationWorkingDir;
3311
3312 case FreeRDP_RemoteAssistancePassStub:
3313 return settings->RemoteAssistancePassStub;
3314
3315 case FreeRDP_RemoteAssistancePassword:
3316 return settings->RemoteAssistancePassword;
3317
3318 case FreeRDP_RemoteAssistanceRCTicket:
3319 return settings->RemoteAssistanceRCTicket;
3320
3321 case FreeRDP_RemoteAssistanceSessionId:
3322 return settings->RemoteAssistanceSessionId;
3323
3324 case FreeRDP_ServerHostname:
3325 return settings->ServerHostname;
3326
3327 case FreeRDP_ServerLicenseCompanyName:
3328 return settings->ServerLicenseCompanyName;
3329
3330 case FreeRDP_ServerLicenseProductName:
3331 return settings->ServerLicenseProductName;
3332
3333 case FreeRDP_ShellWorkingDirectory:
3334 return settings->ShellWorkingDirectory;
3335
3336 case FreeRDP_SmartcardCertificate:
3337 return settings->SmartcardCertificate;
3338
3339 case FreeRDP_SmartcardPrivateKey:
3340 return settings->SmartcardPrivateKey;
3341
3342 case FreeRDP_SspiModule:
3343 return settings->SspiModule;
3344
3345 case FreeRDP_TargetNetAddress:
3346 return settings->TargetNetAddress;
3347
3348 case FreeRDP_TerminalDescriptor:
3349 return settings->TerminalDescriptor;
3350
3351 case FreeRDP_TlsSecretsFile:
3352 return settings->TlsSecretsFile;
3353
3354 case FreeRDP_TransportDumpFile:
3355 return settings->TransportDumpFile;
3356
3357 case FreeRDP_UserSpecifiedServerName:
3358 return settings->UserSpecifiedServerName;
3359
3360 case FreeRDP_Username:
3361 return settings->Username;
3362
3363 case FreeRDP_WinSCardModule:
3364 return settings->WinSCardModule;
3365
3366 case FreeRDP_WindowTitle:
3367 return settings->WindowTitle;
3368
3369 case FreeRDP_WmClass:
3370 return settings->WmClass;
3371
3372 default:
3373 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
3375 WINPR_ASSERT(FALSE);
3376 return NULL;
3377 }
3378}
3379
3380BOOL freerdp_settings_set_string_(WINPR_ATTR_UNUSED rdpSettings* settings,
3381 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_String id,
3382 const char* val, size_t len)
3383{
3384 union
3385 {
3386 void* v;
3387 const void* cv;
3388 char* c;
3389 const char* cc;
3390 } cnv;
3391 WINPR_ASSERT(settings);
3392
3393 cnv.cc = val;
3394
3395 switch (id)
3396 {
3397 case FreeRDP_AadServerHostname:
3398 return update_string_(&settings->AadServerHostname, cnv.c, len);
3399
3400 case FreeRDP_AcceptedCert:
3401 return update_string_(&settings->AcceptedCert, cnv.c, len);
3402
3403 case FreeRDP_ActionScript:
3404 return update_string_(&settings->ActionScript, cnv.c, len);
3405
3406 case FreeRDP_AllowedTlsCiphers:
3407 return update_string_(&settings->AllowedTlsCiphers, cnv.c, len);
3408
3409 case FreeRDP_AlternateShell:
3410 return update_string_(&settings->AlternateShell, cnv.c, len);
3411
3412 case FreeRDP_AssistanceFile:
3413 return update_string_(&settings->AssistanceFile, cnv.c, len);
3414
3415 case FreeRDP_AuthenticationPackageList:
3416 return update_string_(&settings->AuthenticationPackageList, cnv.c, len);
3417
3418 case FreeRDP_AuthenticationServiceClass:
3419 return update_string_(&settings->AuthenticationServiceClass, cnv.c, len);
3420
3421 case FreeRDP_BitmapCachePersistFile:
3422 return update_string_(&settings->BitmapCachePersistFile, cnv.c, len);
3423
3424 case FreeRDP_CardName:
3425 return update_string_(&settings->CardName, cnv.c, len);
3426
3427 case FreeRDP_CertificateAcceptedFingerprints:
3428 return update_string_(&settings->CertificateAcceptedFingerprints, cnv.c, len);
3429
3430 case FreeRDP_CertificateName:
3431 return update_string_(&settings->CertificateName, cnv.c, len);
3432
3433 case FreeRDP_ClientAddress:
3434 return update_string_(&settings->ClientAddress, cnv.c, len);
3435
3436 case FreeRDP_ClientDir:
3437 return update_string_(&settings->ClientDir, cnv.c, len);
3438
3439 case FreeRDP_ClientHostname:
3440 return update_string_(&settings->ClientHostname, cnv.c, len);
3441
3442 case FreeRDP_ClientProductId:
3443 return update_string_(&settings->ClientProductId, cnv.c, len);
3444
3445 case FreeRDP_ClipboardUseSelection:
3446 return update_string_(&settings->ClipboardUseSelection, cnv.c, len);
3447
3448 case FreeRDP_ComputerName:
3449 return update_string_(&settings->ComputerName, cnv.c, len);
3450
3451 case FreeRDP_ConfigPath:
3452 return update_string_(&settings->ConfigPath, cnv.c, len);
3453
3454 case FreeRDP_ConnectionFile:
3455 return update_string_(&settings->ConnectionFile, cnv.c, len);
3456
3457 case FreeRDP_ContainerName:
3458 return update_string_(&settings->ContainerName, cnv.c, len);
3459
3460 case FreeRDP_CspName:
3461 return update_string_(&settings->CspName, cnv.c, len);
3462
3463 case FreeRDP_CurrentPath:
3464 return update_string_(&settings->CurrentPath, cnv.c, len);
3465
3466 case FreeRDP_Domain:
3467 return update_string_(&settings->Domain, cnv.c, len);
3468
3469 case FreeRDP_DrivesToRedirect:
3470 return update_string_(&settings->DrivesToRedirect, cnv.c, len);
3471
3472 case FreeRDP_DumpRemoteFxFile:
3473 return update_string_(&settings->DumpRemoteFxFile, cnv.c, len);
3474
3475 case FreeRDP_DynamicDSTTimeZoneKeyName:
3476 return update_string_(&settings->DynamicDSTTimeZoneKeyName, cnv.c, len);
3477
3478 case FreeRDP_GatewayAcceptedCert:
3479 return update_string_(&settings->GatewayAcceptedCert, cnv.c, len);
3480
3481 case FreeRDP_GatewayAccessToken:
3482 return update_string_(&settings->GatewayAccessToken, cnv.c, len);
3483
3484 case FreeRDP_GatewayAvdAadtenantid:
3485 return update_string_(&settings->GatewayAvdAadtenantid, cnv.c, len);
3486
3487 case FreeRDP_GatewayAvdAccessAadFormat:
3488 return update_string_(&settings->GatewayAvdAccessAadFormat, cnv.c, len);
3489
3490 case FreeRDP_GatewayAvdAccessTokenFormat:
3491 return update_string_(&settings->GatewayAvdAccessTokenFormat, cnv.c, len);
3492
3493 case FreeRDP_GatewayAvdActivityhint:
3494 return update_string_(&settings->GatewayAvdActivityhint, cnv.c, len);
3495
3496 case FreeRDP_GatewayAvdArmpath:
3497 return update_string_(&settings->GatewayAvdArmpath, cnv.c, len);
3498
3499 case FreeRDP_GatewayAvdClientID:
3500 return update_string_(&settings->GatewayAvdClientID, cnv.c, len);
3501
3502 case FreeRDP_GatewayAvdDiagnosticserviceurl:
3503 return update_string_(&settings->GatewayAvdDiagnosticserviceurl, cnv.c, len);
3504
3505 case FreeRDP_GatewayAvdGeo:
3506 return update_string_(&settings->GatewayAvdGeo, cnv.c, len);
3507
3508 case FreeRDP_GatewayAvdHubdiscoverygeourl:
3509 return update_string_(&settings->GatewayAvdHubdiscoverygeourl, cnv.c, len);
3510
3511 case FreeRDP_GatewayAvdScope:
3512 return update_string_(&settings->GatewayAvdScope, cnv.c, len);
3513
3514 case FreeRDP_GatewayAvdWvdEndpointPool:
3515 return update_string_(&settings->GatewayAvdWvdEndpointPool, cnv.c, len);
3516
3517 case FreeRDP_GatewayAzureActiveDirectory:
3518 return update_string_(&settings->GatewayAzureActiveDirectory, cnv.c, len);
3519
3520 case FreeRDP_GatewayDomain:
3521 return update_string_(&settings->GatewayDomain, cnv.c, len);
3522
3523 case FreeRDP_GatewayHostname:
3524 return update_string_(&settings->GatewayHostname, cnv.c, len);
3525
3526 case FreeRDP_GatewayHttpExtAuthBearer:
3527 return update_string_(&settings->GatewayHttpExtAuthBearer, cnv.c, len);
3528
3529 case FreeRDP_GatewayHttpMsUserAgent:
3530 return update_string_(&settings->GatewayHttpMsUserAgent, cnv.c, len);
3531
3532 case FreeRDP_GatewayHttpReferer:
3533 return update_string_(&settings->GatewayHttpReferer, cnv.c, len);
3534
3535 case FreeRDP_GatewayHttpUserAgent:
3536 return update_string_(&settings->GatewayHttpUserAgent, cnv.c, len);
3537
3538 case FreeRDP_GatewayPassword:
3539 return update_string_(&settings->GatewayPassword, cnv.c, len);
3540
3541 case FreeRDP_GatewayUrl:
3542 return update_string_(&settings->GatewayUrl, cnv.c, len);
3543
3544 case FreeRDP_GatewayUsername:
3545 return update_string_(&settings->GatewayUsername, cnv.c, len);
3546
3547 case FreeRDP_HomePath:
3548 return update_string_(&settings->HomePath, cnv.c, len);
3549
3550 case FreeRDP_ImeFileName:
3551 return update_string_(&settings->ImeFileName, cnv.c, len);
3552
3553 case FreeRDP_KerberosArmor:
3554 return update_string_(&settings->KerberosArmor, cnv.c, len);
3555
3556 case FreeRDP_KerberosCache:
3557 return update_string_(&settings->KerberosCache, cnv.c, len);
3558
3559 case FreeRDP_KerberosKdcUrl:
3560 return update_string_(&settings->KerberosKdcUrl, cnv.c, len);
3561
3562 case FreeRDP_KerberosKeytab:
3563 return update_string_(&settings->KerberosKeytab, cnv.c, len);
3564
3565 case FreeRDP_KerberosLifeTime:
3566 return update_string_(&settings->KerberosLifeTime, cnv.c, len);
3567
3568 case FreeRDP_KerberosRealm:
3569 return update_string_(&settings->KerberosRealm, cnv.c, len);
3570
3571 case FreeRDP_KerberosRenewableLifeTime:
3572 return update_string_(&settings->KerberosRenewableLifeTime, cnv.c, len);
3573
3574 case FreeRDP_KerberosStartTime:
3575 return update_string_(&settings->KerberosStartTime, cnv.c, len);
3576
3577 case FreeRDP_KeyboardPipeName:
3578 return update_string_(&settings->KeyboardPipeName, cnv.c, len);
3579
3580 case FreeRDP_KeyboardRemappingList:
3581 return update_string_(&settings->KeyboardRemappingList, cnv.c, len);
3582
3583 case FreeRDP_NtlmSamFile:
3584 return update_string_(&settings->NtlmSamFile, cnv.c, len);
3585
3586 case FreeRDP_Password:
3587 return update_string_(&settings->Password, cnv.c, len);
3588
3589 case FreeRDP_PasswordHash:
3590 return update_string_(&settings->PasswordHash, cnv.c, len);
3591
3592 case FreeRDP_Pkcs11Module:
3593 return update_string_(&settings->Pkcs11Module, cnv.c, len);
3594
3595 case FreeRDP_PkinitAnchors:
3596 return update_string_(&settings->PkinitAnchors, cnv.c, len);
3597
3598 case FreeRDP_PlayRemoteFxFile:
3599 return update_string_(&settings->PlayRemoteFxFile, cnv.c, len);
3600
3601 case FreeRDP_PreconnectionBlob:
3602 return update_string_(&settings->PreconnectionBlob, cnv.c, len);
3603
3604 case FreeRDP_ProxyHostname:
3605 return update_string_(&settings->ProxyHostname, cnv.c, len);
3606
3607 case FreeRDP_ProxyPassword:
3608 return update_string_(&settings->ProxyPassword, cnv.c, len);
3609
3610 case FreeRDP_ProxyUsername:
3611 return update_string_(&settings->ProxyUsername, cnv.c, len);
3612
3613 case FreeRDP_RDP2TCPArgs:
3614 return update_string_(&settings->RDP2TCPArgs, cnv.c, len);
3615
3616 case FreeRDP_ReaderName:
3617 return update_string_(&settings->ReaderName, cnv.c, len);
3618
3619 case FreeRDP_RedirectionAcceptedCert:
3620 return update_string_(&settings->RedirectionAcceptedCert, cnv.c, len);
3621
3622 case FreeRDP_RedirectionDomain:
3623 return update_string_(&settings->RedirectionDomain, cnv.c, len);
3624
3625 case FreeRDP_RedirectionTargetFQDN:
3626 return update_string_(&settings->RedirectionTargetFQDN, cnv.c, len);
3627
3628 case FreeRDP_RedirectionTargetNetBiosName:
3629 return update_string_(&settings->RedirectionTargetNetBiosName, cnv.c, len);
3630
3631 case FreeRDP_RedirectionUsername:
3632 return update_string_(&settings->RedirectionUsername, cnv.c, len);
3633
3634 case FreeRDP_RemoteApplicationCmdLine:
3635 return update_string_(&settings->RemoteApplicationCmdLine, cnv.c, len);
3636
3637 case FreeRDP_RemoteApplicationFile:
3638 return update_string_(&settings->RemoteApplicationFile, cnv.c, len);
3639
3640 case FreeRDP_RemoteApplicationGuid:
3641 return update_string_(&settings->RemoteApplicationGuid, cnv.c, len);
3642
3643 case FreeRDP_RemoteApplicationIcon:
3644 return update_string_(&settings->RemoteApplicationIcon, cnv.c, len);
3645
3646 case FreeRDP_RemoteApplicationName:
3647 return update_string_(&settings->RemoteApplicationName, cnv.c, len);
3648
3649 case FreeRDP_RemoteApplicationProgram:
3650 return update_string_(&settings->RemoteApplicationProgram, cnv.c, len);
3651
3652 case FreeRDP_RemoteApplicationWorkingDir:
3653 return update_string_(&settings->RemoteApplicationWorkingDir, cnv.c, len);
3654
3655 case FreeRDP_RemoteAssistancePassStub:
3656 return update_string_(&settings->RemoteAssistancePassStub, cnv.c, len);
3657
3658 case FreeRDP_RemoteAssistancePassword:
3659 return update_string_(&settings->RemoteAssistancePassword, cnv.c, len);
3660
3661 case FreeRDP_RemoteAssistanceRCTicket:
3662 return update_string_(&settings->RemoteAssistanceRCTicket, cnv.c, len);
3663
3664 case FreeRDP_RemoteAssistanceSessionId:
3665 return update_string_(&settings->RemoteAssistanceSessionId, cnv.c, len);
3666
3667 case FreeRDP_ServerHostname:
3668 return update_string_(&settings->ServerHostname, cnv.c, len);
3669
3670 case FreeRDP_ServerLicenseCompanyName:
3671 return update_string_(&settings->ServerLicenseCompanyName, cnv.c, len);
3672
3673 case FreeRDP_ServerLicenseProductName:
3674 return update_string_(&settings->ServerLicenseProductName, cnv.c, len);
3675
3676 case FreeRDP_ShellWorkingDirectory:
3677 return update_string_(&settings->ShellWorkingDirectory, cnv.c, len);
3678
3679 case FreeRDP_SmartcardCertificate:
3680 return update_string_(&settings->SmartcardCertificate, cnv.c, len);
3681
3682 case FreeRDP_SmartcardPrivateKey:
3683 return update_string_(&settings->SmartcardPrivateKey, cnv.c, len);
3684
3685 case FreeRDP_SspiModule:
3686 return update_string_(&settings->SspiModule, cnv.c, len);
3687
3688 case FreeRDP_TargetNetAddress:
3689 return update_string_(&settings->TargetNetAddress, cnv.c, len);
3690
3691 case FreeRDP_TerminalDescriptor:
3692 return update_string_(&settings->TerminalDescriptor, cnv.c, len);
3693
3694 case FreeRDP_TlsSecretsFile:
3695 return update_string_(&settings->TlsSecretsFile, cnv.c, len);
3696
3697 case FreeRDP_TransportDumpFile:
3698 return update_string_(&settings->TransportDumpFile, cnv.c, len);
3699
3700 case FreeRDP_UserSpecifiedServerName:
3701 return update_string_(&settings->UserSpecifiedServerName, cnv.c, len);
3702
3703 case FreeRDP_Username:
3704 return update_string_(&settings->Username, cnv.c, len);
3705
3706 case FreeRDP_WinSCardModule:
3707 return update_string_(&settings->WinSCardModule, cnv.c, len);
3708
3709 case FreeRDP_WindowTitle:
3710 return update_string_(&settings->WindowTitle, cnv.c, len);
3711
3712 case FreeRDP_WmClass:
3713 return update_string_(&settings->WmClass, cnv.c, len);
3714
3715 default:
3716 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
3718 return FALSE;
3719 }
3720 return TRUE;
3721}
3722
3723BOOL freerdp_settings_set_string_len(rdpSettings* settings, FreeRDP_Settings_Keys_String id,
3724 const char* val, size_t len)
3725{
3726 return freerdp_settings_set_string_copy_(settings, id, val, len, TRUE);
3727}
3728
3729BOOL freerdp_settings_set_string(rdpSettings* settings, FreeRDP_Settings_Keys_String id,
3730 const char* val)
3731{
3732 size_t len = 0;
3733 if (val)
3734 len = strlen(val);
3735 return freerdp_settings_set_string_copy_(settings, id, val, len, TRUE);
3736}
3737
3738BOOL freerdp_settings_set_string_copy_(WINPR_ATTR_UNUSED rdpSettings* settings,
3739 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_String id,
3740 const char* val, size_t len, BOOL cleanup)
3741{
3742 union
3743 {
3744 void* v;
3745 const void* cv;
3746 char* c;
3747 const char* cc;
3748 } cnv;
3749 WINPR_ASSERT(settings);
3750
3751 cnv.cc = val;
3752
3753 switch (id)
3754 {
3755 case FreeRDP_AadServerHostname:
3756 return update_string_copy_(&settings->AadServerHostname, cnv.cc, len, cleanup);
3757
3758 case FreeRDP_AcceptedCert:
3759 return update_string_copy_(&settings->AcceptedCert, cnv.cc, len, cleanup);
3760
3761 case FreeRDP_ActionScript:
3762 return update_string_copy_(&settings->ActionScript, cnv.cc, len, cleanup);
3763
3764 case FreeRDP_AllowedTlsCiphers:
3765 return update_string_copy_(&settings->AllowedTlsCiphers, cnv.cc, len, cleanup);
3766
3767 case FreeRDP_AlternateShell:
3768 return update_string_copy_(&settings->AlternateShell, cnv.cc, len, cleanup);
3769
3770 case FreeRDP_AssistanceFile:
3771 return update_string_copy_(&settings->AssistanceFile, cnv.cc, len, cleanup);
3772
3773 case FreeRDP_AuthenticationPackageList:
3774 return update_string_copy_(&settings->AuthenticationPackageList, cnv.cc, len, cleanup);
3775
3776 case FreeRDP_AuthenticationServiceClass:
3777 return update_string_copy_(&settings->AuthenticationServiceClass, cnv.cc, len, cleanup);
3778
3779 case FreeRDP_BitmapCachePersistFile:
3780 return update_string_copy_(&settings->BitmapCachePersistFile, cnv.cc, len, cleanup);
3781
3782 case FreeRDP_CardName:
3783 return update_string_copy_(&settings->CardName, cnv.cc, len, cleanup);
3784
3785 case FreeRDP_CertificateAcceptedFingerprints:
3786 return update_string_copy_(&settings->CertificateAcceptedFingerprints, cnv.cc, len,
3787 cleanup);
3788
3789 case FreeRDP_CertificateName:
3790 return update_string_copy_(&settings->CertificateName, cnv.cc, len, cleanup);
3791
3792 case FreeRDP_ClientAddress:
3793 return update_string_copy_(&settings->ClientAddress, cnv.cc, len, cleanup);
3794
3795 case FreeRDP_ClientDir:
3796 return update_string_copy_(&settings->ClientDir, cnv.cc, len, cleanup);
3797
3798 case FreeRDP_ClientHostname:
3799 return update_string_copy_(&settings->ClientHostname, cnv.cc, len, cleanup);
3800
3801 case FreeRDP_ClientProductId:
3802 return update_string_copy_(&settings->ClientProductId, cnv.cc, len, cleanup);
3803
3804 case FreeRDP_ClipboardUseSelection:
3805 return update_string_copy_(&settings->ClipboardUseSelection, cnv.cc, len, cleanup);
3806
3807 case FreeRDP_ComputerName:
3808 return update_string_copy_(&settings->ComputerName, cnv.cc, len, cleanup);
3809
3810 case FreeRDP_ConfigPath:
3811 return update_string_copy_(&settings->ConfigPath, cnv.cc, len, cleanup);
3812
3813 case FreeRDP_ConnectionFile:
3814 return update_string_copy_(&settings->ConnectionFile, cnv.cc, len, cleanup);
3815
3816 case FreeRDP_ContainerName:
3817 return update_string_copy_(&settings->ContainerName, cnv.cc, len, cleanup);
3818
3819 case FreeRDP_CspName:
3820 return update_string_copy_(&settings->CspName, cnv.cc, len, cleanup);
3821
3822 case FreeRDP_CurrentPath:
3823 return update_string_copy_(&settings->CurrentPath, cnv.cc, len, cleanup);
3824
3825 case FreeRDP_Domain:
3826 return update_string_copy_(&settings->Domain, cnv.cc, len, cleanup);
3827
3828 case FreeRDP_DrivesToRedirect:
3829 return update_string_copy_(&settings->DrivesToRedirect, cnv.cc, len, cleanup);
3830
3831 case FreeRDP_DumpRemoteFxFile:
3832 return update_string_copy_(&settings->DumpRemoteFxFile, cnv.cc, len, cleanup);
3833
3834 case FreeRDP_DynamicDSTTimeZoneKeyName:
3835 return update_string_copy_(&settings->DynamicDSTTimeZoneKeyName, cnv.cc, len, cleanup);
3836
3837 case FreeRDP_GatewayAcceptedCert:
3838 return update_string_copy_(&settings->GatewayAcceptedCert, cnv.cc, len, cleanup);
3839
3840 case FreeRDP_GatewayAccessToken:
3841 return update_string_copy_(&settings->GatewayAccessToken, cnv.cc, len, cleanup);
3842
3843 case FreeRDP_GatewayAvdAadtenantid:
3844 return update_string_copy_(&settings->GatewayAvdAadtenantid, cnv.cc, len, cleanup);
3845
3846 case FreeRDP_GatewayAvdAccessAadFormat:
3847 return update_string_copy_(&settings->GatewayAvdAccessAadFormat, cnv.cc, len, cleanup);
3848
3849 case FreeRDP_GatewayAvdAccessTokenFormat:
3850 return update_string_copy_(&settings->GatewayAvdAccessTokenFormat, cnv.cc, len,
3851 cleanup);
3852
3853 case FreeRDP_GatewayAvdActivityhint:
3854 return update_string_copy_(&settings->GatewayAvdActivityhint, cnv.cc, len, cleanup);
3855
3856 case FreeRDP_GatewayAvdArmpath:
3857 return update_string_copy_(&settings->GatewayAvdArmpath, cnv.cc, len, cleanup);
3858
3859 case FreeRDP_GatewayAvdClientID:
3860 return update_string_copy_(&settings->GatewayAvdClientID, cnv.cc, len, cleanup);
3861
3862 case FreeRDP_GatewayAvdDiagnosticserviceurl:
3863 return update_string_copy_(&settings->GatewayAvdDiagnosticserviceurl, cnv.cc, len,
3864 cleanup);
3865
3866 case FreeRDP_GatewayAvdGeo:
3867 return update_string_copy_(&settings->GatewayAvdGeo, cnv.cc, len, cleanup);
3868
3869 case FreeRDP_GatewayAvdHubdiscoverygeourl:
3870 return update_string_copy_(&settings->GatewayAvdHubdiscoverygeourl, cnv.cc, len,
3871 cleanup);
3872
3873 case FreeRDP_GatewayAvdScope:
3874 return update_string_copy_(&settings->GatewayAvdScope, cnv.cc, len, cleanup);
3875
3876 case FreeRDP_GatewayAvdWvdEndpointPool:
3877 return update_string_copy_(&settings->GatewayAvdWvdEndpointPool, cnv.cc, len, cleanup);
3878
3879 case FreeRDP_GatewayAzureActiveDirectory:
3880 return update_string_copy_(&settings->GatewayAzureActiveDirectory, cnv.cc, len,
3881 cleanup);
3882
3883 case FreeRDP_GatewayDomain:
3884 return update_string_copy_(&settings->GatewayDomain, cnv.cc, len, cleanup);
3885
3886 case FreeRDP_GatewayHostname:
3887 return update_string_copy_(&settings->GatewayHostname, cnv.cc, len, cleanup);
3888
3889 case FreeRDP_GatewayHttpExtAuthBearer:
3890 return update_string_copy_(&settings->GatewayHttpExtAuthBearer, cnv.cc, len, cleanup);
3891
3892 case FreeRDP_GatewayHttpMsUserAgent:
3893 return update_string_copy_(&settings->GatewayHttpMsUserAgent, cnv.cc, len, cleanup);
3894
3895 case FreeRDP_GatewayHttpReferer:
3896 return update_string_copy_(&settings->GatewayHttpReferer, cnv.cc, len, cleanup);
3897
3898 case FreeRDP_GatewayHttpUserAgent:
3899 return update_string_copy_(&settings->GatewayHttpUserAgent, cnv.cc, len, cleanup);
3900
3901 case FreeRDP_GatewayPassword:
3902 return update_string_copy_(&settings->GatewayPassword, cnv.cc, len, cleanup);
3903
3904 case FreeRDP_GatewayUrl:
3905 return update_string_copy_(&settings->GatewayUrl, cnv.cc, len, cleanup);
3906
3907 case FreeRDP_GatewayUsername:
3908 return update_string_copy_(&settings->GatewayUsername, cnv.cc, len, cleanup);
3909
3910 case FreeRDP_HomePath:
3911 return update_string_copy_(&settings->HomePath, cnv.cc, len, cleanup);
3912
3913 case FreeRDP_ImeFileName:
3914 return update_string_copy_(&settings->ImeFileName, cnv.cc, len, cleanup);
3915
3916 case FreeRDP_KerberosArmor:
3917 return update_string_copy_(&settings->KerberosArmor, cnv.cc, len, cleanup);
3918
3919 case FreeRDP_KerberosCache:
3920 return update_string_copy_(&settings->KerberosCache, cnv.cc, len, cleanup);
3921
3922 case FreeRDP_KerberosKdcUrl:
3923 return update_string_copy_(&settings->KerberosKdcUrl, cnv.cc, len, cleanup);
3924
3925 case FreeRDP_KerberosKeytab:
3926 return update_string_copy_(&settings->KerberosKeytab, cnv.cc, len, cleanup);
3927
3928 case FreeRDP_KerberosLifeTime:
3929 return update_string_copy_(&settings->KerberosLifeTime, cnv.cc, len, cleanup);
3930
3931 case FreeRDP_KerberosRealm:
3932 return update_string_copy_(&settings->KerberosRealm, cnv.cc, len, cleanup);
3933
3934 case FreeRDP_KerberosRenewableLifeTime:
3935 return update_string_copy_(&settings->KerberosRenewableLifeTime, cnv.cc, len, cleanup);
3936
3937 case FreeRDP_KerberosStartTime:
3938 return update_string_copy_(&settings->KerberosStartTime, cnv.cc, len, cleanup);
3939
3940 case FreeRDP_KeyboardPipeName:
3941 return update_string_copy_(&settings->KeyboardPipeName, cnv.cc, len, cleanup);
3942
3943 case FreeRDP_KeyboardRemappingList:
3944 return update_string_copy_(&settings->KeyboardRemappingList, cnv.cc, len, cleanup);
3945
3946 case FreeRDP_NtlmSamFile:
3947 return update_string_copy_(&settings->NtlmSamFile, cnv.cc, len, cleanup);
3948
3949 case FreeRDP_Password:
3950 return update_string_copy_(&settings->Password, cnv.cc, len, cleanup);
3951
3952 case FreeRDP_PasswordHash:
3953 return update_string_copy_(&settings->PasswordHash, cnv.cc, len, cleanup);
3954
3955 case FreeRDP_Pkcs11Module:
3956 return update_string_copy_(&settings->Pkcs11Module, cnv.cc, len, cleanup);
3957
3958 case FreeRDP_PkinitAnchors:
3959 return update_string_copy_(&settings->PkinitAnchors, cnv.cc, len, cleanup);
3960
3961 case FreeRDP_PlayRemoteFxFile:
3962 return update_string_copy_(&settings->PlayRemoteFxFile, cnv.cc, len, cleanup);
3963
3964 case FreeRDP_PreconnectionBlob:
3965 return update_string_copy_(&settings->PreconnectionBlob, cnv.cc, len, cleanup);
3966
3967 case FreeRDP_ProxyHostname:
3968 return update_string_copy_(&settings->ProxyHostname, cnv.cc, len, cleanup);
3969
3970 case FreeRDP_ProxyPassword:
3971 return update_string_copy_(&settings->ProxyPassword, cnv.cc, len, cleanup);
3972
3973 case FreeRDP_ProxyUsername:
3974 return update_string_copy_(&settings->ProxyUsername, cnv.cc, len, cleanup);
3975
3976 case FreeRDP_RDP2TCPArgs:
3977 return update_string_copy_(&settings->RDP2TCPArgs, cnv.cc, len, cleanup);
3978
3979 case FreeRDP_ReaderName:
3980 return update_string_copy_(&settings->ReaderName, cnv.cc, len, cleanup);
3981
3982 case FreeRDP_RedirectionAcceptedCert:
3983 return update_string_copy_(&settings->RedirectionAcceptedCert, cnv.cc, len, cleanup);
3984
3985 case FreeRDP_RedirectionDomain:
3986 return update_string_copy_(&settings->RedirectionDomain, cnv.cc, len, cleanup);
3987
3988 case FreeRDP_RedirectionTargetFQDN:
3989 return update_string_copy_(&settings->RedirectionTargetFQDN, cnv.cc, len, cleanup);
3990
3991 case FreeRDP_RedirectionTargetNetBiosName:
3992 return update_string_copy_(&settings->RedirectionTargetNetBiosName, cnv.cc, len,
3993 cleanup);
3994
3995 case FreeRDP_RedirectionUsername:
3996 return update_string_copy_(&settings->RedirectionUsername, cnv.cc, len, cleanup);
3997
3998 case FreeRDP_RemoteApplicationCmdLine:
3999 return update_string_copy_(&settings->RemoteApplicationCmdLine, cnv.cc, len, cleanup);
4000
4001 case FreeRDP_RemoteApplicationFile:
4002 return update_string_copy_(&settings->RemoteApplicationFile, cnv.cc, len, cleanup);
4003
4004 case FreeRDP_RemoteApplicationGuid:
4005 return update_string_copy_(&settings->RemoteApplicationGuid, cnv.cc, len, cleanup);
4006
4007 case FreeRDP_RemoteApplicationIcon:
4008 return update_string_copy_(&settings->RemoteApplicationIcon, cnv.cc, len, cleanup);
4009
4010 case FreeRDP_RemoteApplicationName:
4011 return update_string_copy_(&settings->RemoteApplicationName, cnv.cc, len, cleanup);
4012
4013 case FreeRDP_RemoteApplicationProgram:
4014 return update_string_copy_(&settings->RemoteApplicationProgram, cnv.cc, len, cleanup);
4015
4016 case FreeRDP_RemoteApplicationWorkingDir:
4017 return update_string_copy_(&settings->RemoteApplicationWorkingDir, cnv.cc, len,
4018 cleanup);
4019
4020 case FreeRDP_RemoteAssistancePassStub:
4021 return update_string_copy_(&settings->RemoteAssistancePassStub, cnv.cc, len, cleanup);
4022
4023 case FreeRDP_RemoteAssistancePassword:
4024 return update_string_copy_(&settings->RemoteAssistancePassword, cnv.cc, len, cleanup);
4025
4026 case FreeRDP_RemoteAssistanceRCTicket:
4027 return update_string_copy_(&settings->RemoteAssistanceRCTicket, cnv.cc, len, cleanup);
4028
4029 case FreeRDP_RemoteAssistanceSessionId:
4030 return update_string_copy_(&settings->RemoteAssistanceSessionId, cnv.cc, len, cleanup);
4031
4032 case FreeRDP_ServerHostname:
4033 return update_string_copy_(&settings->ServerHostname, cnv.cc, len, cleanup);
4034
4035 case FreeRDP_ServerLicenseCompanyName:
4036 return update_string_copy_(&settings->ServerLicenseCompanyName, cnv.cc, len, cleanup);
4037
4038 case FreeRDP_ServerLicenseProductName:
4039 return update_string_copy_(&settings->ServerLicenseProductName, cnv.cc, len, cleanup);
4040
4041 case FreeRDP_ShellWorkingDirectory:
4042 return update_string_copy_(&settings->ShellWorkingDirectory, cnv.cc, len, cleanup);
4043
4044 case FreeRDP_SmartcardCertificate:
4045 return update_string_copy_(&settings->SmartcardCertificate, cnv.cc, len, cleanup);
4046
4047 case FreeRDP_SmartcardPrivateKey:
4048 return update_string_copy_(&settings->SmartcardPrivateKey, cnv.cc, len, cleanup);
4049
4050 case FreeRDP_SspiModule:
4051 return update_string_copy_(&settings->SspiModule, cnv.cc, len, cleanup);
4052
4053 case FreeRDP_TargetNetAddress:
4054 return update_string_copy_(&settings->TargetNetAddress, cnv.cc, len, cleanup);
4055
4056 case FreeRDP_TerminalDescriptor:
4057 return update_string_copy_(&settings->TerminalDescriptor, cnv.cc, len, cleanup);
4058
4059 case FreeRDP_TlsSecretsFile:
4060 return update_string_copy_(&settings->TlsSecretsFile, cnv.cc, len, cleanup);
4061
4062 case FreeRDP_TransportDumpFile:
4063 return update_string_copy_(&settings->TransportDumpFile, cnv.cc, len, cleanup);
4064
4065 case FreeRDP_UserSpecifiedServerName:
4066 return update_string_copy_(&settings->UserSpecifiedServerName, cnv.cc, len, cleanup);
4067
4068 case FreeRDP_Username:
4069 return update_string_copy_(&settings->Username, cnv.cc, len, cleanup);
4070
4071 case FreeRDP_WinSCardModule:
4072 return update_string_copy_(&settings->WinSCardModule, cnv.cc, len, cleanup);
4073
4074 case FreeRDP_WindowTitle:
4075 return update_string_copy_(&settings->WindowTitle, cnv.cc, len, cleanup);
4076
4077 case FreeRDP_WmClass:
4078 return update_string_copy_(&settings->WmClass, cnv.cc, len, cleanup);
4079
4080 default:
4081 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
4083 return FALSE;
4084 }
4085 return TRUE;
4086}
4087
4088void* freerdp_settings_get_pointer_writable(rdpSettings* settings, FreeRDP_Settings_Keys_Pointer id)
4089{
4090 WINPR_ASSERT(settings);
4091
4092 switch (id)
4093 {
4094 case FreeRDP_BitmapCacheV2CellInfo:
4095 return (void*)settings->BitmapCacheV2CellInfo;
4096
4097 case FreeRDP_ChannelDefArray:
4098 return (void*)settings->ChannelDefArray;
4099
4100 case FreeRDP_ClientAutoReconnectCookie:
4101 return (void*)settings->ClientAutoReconnectCookie;
4102
4103 case FreeRDP_ClientRandom:
4104 return (void*)settings->ClientRandom;
4105
4106 case FreeRDP_ClientTimeZone:
4107 return (void*)settings->ClientTimeZone;
4108
4109 case FreeRDP_DeviceArray:
4110 return (void*)settings->DeviceArray;
4111
4112 case FreeRDP_DynamicChannelArray:
4113 return (void*)settings->DynamicChannelArray;
4114
4115 case FreeRDP_FragCache:
4116 return (void*)settings->FragCache;
4117
4118 case FreeRDP_GlyphCache:
4119 return (void*)settings->GlyphCache;
4120
4121 case FreeRDP_LoadBalanceInfo:
4122 return (void*)settings->LoadBalanceInfo;
4123
4124 case FreeRDP_MonitorDefArray:
4125 return (void*)settings->MonitorDefArray;
4126
4127 case FreeRDP_MonitorIds:
4128 return (void*)settings->MonitorIds;
4129
4130 case FreeRDP_OrderSupport:
4131 return (void*)settings->OrderSupport;
4132
4133 case FreeRDP_Password51:
4134 return (void*)settings->Password51;
4135
4136 case FreeRDP_RdpServerCertificate:
4137 return (void*)settings->RdpServerCertificate;
4138
4139 case FreeRDP_RdpServerRsaKey:
4140 return (void*)settings->RdpServerRsaKey;
4141
4142 case FreeRDP_ReceivedCapabilities:
4143 return (void*)settings->ReceivedCapabilities;
4144
4145 case FreeRDP_ReceivedCapabilityData:
4146 return (void*)settings->ReceivedCapabilityData;
4147
4148 case FreeRDP_ReceivedCapabilityDataSizes:
4149 return (void*)settings->ReceivedCapabilityDataSizes;
4150
4151 case FreeRDP_RedirectionGuid:
4152 return (void*)settings->RedirectionGuid;
4153
4154 case FreeRDP_RedirectionPassword:
4155 return (void*)settings->RedirectionPassword;
4156
4157 case FreeRDP_RedirectionTargetCertificate:
4158 return (void*)settings->RedirectionTargetCertificate;
4159
4160 case FreeRDP_RedirectionTsvUrl:
4161 return (void*)settings->RedirectionTsvUrl;
4162
4163 case FreeRDP_ServerAutoReconnectCookie:
4164 return (void*)settings->ServerAutoReconnectCookie;
4165
4166 case FreeRDP_ServerCertificate:
4167 return (void*)settings->ServerCertificate;
4168
4169 case FreeRDP_ServerLicenseProductIssuers:
4170 return (void*)settings->ServerLicenseProductIssuers;
4171
4172 case FreeRDP_ServerRandom:
4173 return (void*)settings->ServerRandom;
4174
4175 case FreeRDP_StaticChannelArray:
4176 return (void*)settings->StaticChannelArray;
4177
4178 case FreeRDP_TargetNetAddresses:
4179 return (void*)settings->TargetNetAddresses;
4180
4181 case FreeRDP_TargetNetPorts:
4182 return (void*)settings->TargetNetPorts;
4183
4184 case FreeRDP_instance:
4185 return settings->instance;
4186
4187 default:
4188 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
4190 WINPR_ASSERT(FALSE);
4191 return NULL;
4192 }
4193}
4194
4195BOOL freerdp_settings_set_pointer(WINPR_ATTR_UNUSED rdpSettings* settings,
4196 WINPR_ATTR_UNUSED FreeRDP_Settings_Keys_Pointer id,
4197 const void* val)
4198{
4199 union
4200 {
4201 void* v;
4202 const void* cv;
4203 } cnv;
4204 WINPR_ASSERT(settings);
4205
4206 cnv.cv = val;
4207
4208 switch (id)
4209 {
4210 case FreeRDP_BitmapCacheV2CellInfo:
4211 settings->BitmapCacheV2CellInfo = (BITMAP_CACHE_V2_CELL_INFO*)cnv.v;
4212 break;
4213
4214 case FreeRDP_ChannelDefArray:
4215 settings->ChannelDefArray = (CHANNEL_DEF*)cnv.v;
4216 break;
4217
4218 case FreeRDP_ClientAutoReconnectCookie:
4219 settings->ClientAutoReconnectCookie = (ARC_CS_PRIVATE_PACKET*)cnv.v;
4220 break;
4221
4222 case FreeRDP_ClientRandom:
4223 settings->ClientRandom = (BYTE*)cnv.v;
4224 break;
4225
4226 case FreeRDP_ClientTimeZone:
4227 settings->ClientTimeZone = (TIME_ZONE_INFORMATION*)cnv.v;
4228 break;
4229
4230 case FreeRDP_DeviceArray:
4231 settings->DeviceArray = (RDPDR_DEVICE**)cnv.v;
4232 break;
4233
4234 case FreeRDP_DynamicChannelArray:
4235 settings->DynamicChannelArray = (ADDIN_ARGV**)cnv.v;
4236 break;
4237
4238 case FreeRDP_FragCache:
4239 settings->FragCache = (GLYPH_CACHE_DEFINITION*)cnv.v;
4240 break;
4241
4242 case FreeRDP_GlyphCache:
4243 settings->GlyphCache = (GLYPH_CACHE_DEFINITION*)cnv.v;
4244 break;
4245
4246 case FreeRDP_LoadBalanceInfo:
4247 settings->LoadBalanceInfo = (BYTE*)cnv.v;
4248 break;
4249
4250 case FreeRDP_MonitorDefArray:
4251 settings->MonitorDefArray = (rdpMonitor*)cnv.v;
4252 break;
4253
4254 case FreeRDP_MonitorIds:
4255 settings->MonitorIds = (UINT32*)cnv.v;
4256 break;
4257
4258 case FreeRDP_OrderSupport:
4259 settings->OrderSupport = (BYTE*)cnv.v;
4260 break;
4261
4262 case FreeRDP_Password51:
4263 settings->Password51 = (BYTE*)cnv.v;
4264 break;
4265
4266 case FreeRDP_RdpServerCertificate:
4267 settings->RdpServerCertificate = (rdpCertificate*)cnv.v;
4268 break;
4269
4270 case FreeRDP_RdpServerRsaKey:
4271 settings->RdpServerRsaKey = (rdpPrivateKey*)cnv.v;
4272 break;
4273
4274 case FreeRDP_ReceivedCapabilities:
4275 settings->ReceivedCapabilities = (BYTE*)cnv.v;
4276 break;
4277
4278 case FreeRDP_ReceivedCapabilityData:
4279 settings->ReceivedCapabilityData = (BYTE**)cnv.v;
4280 break;
4281
4282 case FreeRDP_ReceivedCapabilityDataSizes:
4283 settings->ReceivedCapabilityDataSizes = (UINT32*)cnv.v;
4284 break;
4285
4286 case FreeRDP_RedirectionGuid:
4287 settings->RedirectionGuid = (BYTE*)cnv.v;
4288 break;
4289
4290 case FreeRDP_RedirectionPassword:
4291 settings->RedirectionPassword = (BYTE*)cnv.v;
4292 break;
4293
4294 case FreeRDP_RedirectionTargetCertificate:
4295 settings->RedirectionTargetCertificate = (rdpCertificate*)cnv.v;
4296 break;
4297
4298 case FreeRDP_RedirectionTsvUrl:
4299 settings->RedirectionTsvUrl = (BYTE*)cnv.v;
4300 break;
4301
4302 case FreeRDP_ServerAutoReconnectCookie:
4303 settings->ServerAutoReconnectCookie = (ARC_SC_PRIVATE_PACKET*)cnv.v;
4304 break;
4305
4306 case FreeRDP_ServerCertificate:
4307 settings->ServerCertificate = (BYTE*)cnv.v;
4308 break;
4309
4310 case FreeRDP_ServerLicenseProductIssuers:
4311 settings->ServerLicenseProductIssuers = (char**)cnv.v;
4312 break;
4313
4314 case FreeRDP_ServerRandom:
4315 settings->ServerRandom = (BYTE*)cnv.v;
4316 break;
4317
4318 case FreeRDP_StaticChannelArray:
4319 settings->StaticChannelArray = (ADDIN_ARGV**)cnv.v;
4320 break;
4321
4322 case FreeRDP_TargetNetAddresses:
4323 settings->TargetNetAddresses = (char**)cnv.v;
4324 break;
4325
4326 case FreeRDP_TargetNetPorts:
4327 settings->TargetNetPorts = (UINT32*)cnv.v;
4328 break;
4329
4330 case FreeRDP_instance:
4331 settings->instance = cnv.v;
4332 break;
4333
4334 default:
4335 WLog_ERR(TAG, "Invalid key index %d [%s|%s]", id, freerdp_settings_get_name_for_key(id),
4337 return FALSE;
4338 }
4339 return TRUE;
4340}
FREERDP_API UINT32 freerdp_settings_get_uint32(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id)
Returns a UINT32 settings value.
BOOL freerdp_settings_set_string(rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *val)
Sets a string settings value. The param is copied.
FREERDP_API BOOL freerdp_settings_get_bool(const rdpSettings *settings, FreeRDP_Settings_Keys_Bool id)
Returns a boolean settings value.
FREERDP_API INT64 freerdp_settings_get_int64(const rdpSettings *settings, FreeRDP_Settings_Keys_Int64 id)
Returns a INT64 settings value.
FREERDP_API UINT64 freerdp_settings_get_uint64(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt64 id)
Returns a UINT64 settings value.
FREERDP_API BOOL freerdp_settings_set_int32(rdpSettings *settings, FreeRDP_Settings_Keys_Int32 id, INT32 param)
Sets a INT32 settings value.
FREERDP_API UINT16 freerdp_settings_get_uint16(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt16 id)
Returns a UINT16 settings value.
void * freerdp_settings_get_pointer_writable(rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id)
Returns a mutable pointer settings value.
FREERDP_API BOOL freerdp_settings_set_uint64(rdpSettings *settings, FreeRDP_Settings_Keys_UInt64 id, UINT64 param)
Sets a UINT64 settings value.
FREERDP_API BOOL freerdp_settings_set_int16(rdpSettings *settings, FreeRDP_Settings_Keys_Int16 id, INT16 param)
Sets a INT16 settings value.
FREERDP_API BOOL freerdp_settings_set_int64(rdpSettings *settings, FreeRDP_Settings_Keys_Int64 id, INT64 param)
Sets a INT64 settings value.
FREERDP_API BOOL freerdp_settings_set_pointer(rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, const void *data)
Set a pointer to value data.
FREERDP_API INT32 freerdp_settings_get_int32(const rdpSettings *settings, FreeRDP_Settings_Keys_Int32 id)
Returns a INT32 settings value.
FREERDP_API const char * freerdp_settings_get_type_name_for_key(SSIZE_T key)
Returns the type name for a key.
BOOL freerdp_settings_set_string_len(rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *val, size_t len)
Sets a string settings value. The param is copied.
FREERDP_API BOOL freerdp_settings_set_uint32(rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id, UINT32 param)
Sets a UINT32 settings value.
char * freerdp_settings_get_string_writable(rdpSettings *settings, FreeRDP_Settings_Keys_String id)
Returns a string settings value.
FREERDP_API const char * freerdp_settings_get_name_for_key(SSIZE_T key)
Returns the type name for a key.
FREERDP_API const char * freerdp_settings_get_string(const rdpSettings *settings, FreeRDP_Settings_Keys_String id)
Returns a immutable string settings value.
FREERDP_API BOOL freerdp_settings_set_uint16(rdpSettings *settings, FreeRDP_Settings_Keys_UInt16 id, UINT16 param)
Sets a UINT16 settings value.
FREERDP_API INT16 freerdp_settings_get_int16(const rdpSettings *settings, FreeRDP_Settings_Keys_Int16 id)
Returns a INT16 settings value.
FREERDP_API BOOL freerdp_settings_set_bool(rdpSettings *settings, FreeRDP_Settings_Keys_Bool id, BOOL param)
Sets a BOOL settings value.