FreeRDP
Loading...
Searching...
No Matches
include/freerdp/settings.h
1
24#ifndef FREERDP_SETTINGS_H
25#define FREERDP_SETTINGS_H
26
27#include <winpr/timezone.h>
28#include <winpr/wlog.h>
29
30#include <freerdp/api.h>
31#include <freerdp/config.h>
32#include <freerdp/types.h>
33#include <freerdp/redirection.h>
34
35#if !defined(WITH_OPAQUE_SETTINGS)
36#include <freerdp/settings_types_private.h>
37#endif
38
39#include <freerdp/settings_keys.h>
40#include <freerdp/settings_types.h>
41
42#include <freerdp/crypto/certificate.h>
43#include <freerdp/crypto/privatekey.h>
44
45#ifdef __cplusplus
46extern "C"
47{
48#endif
49
75 typedef struct rdp_settings rdpSettings;
76
80#define FREERDP_SETTINGS_SERVER_MODE 0x00000001
81#define FREERDP_SETTINGS_REMOTE_MODE 0x00000002
82
87 FREERDP_API void freerdp_settings_free(rdpSettings* settings);
88
96 WINPR_ATTR_MALLOC(freerdp_settings_free, 1)
97 FREERDP_API rdpSettings* freerdp_settings_new(DWORD flags);
98
105 WINPR_ATTR_MALLOC(freerdp_settings_free, 1)
106 FREERDP_API rdpSettings* freerdp_settings_clone(const rdpSettings* settings);
107
117 WINPR_ATTR_NODISCARD
118 FREERDP_API BOOL freerdp_settings_copy(rdpSettings* dst, const rdpSettings* src);
119
130 WINPR_ATTR_NODISCARD
131 FREERDP_API BOOL freerdp_settings_copy_item(rdpSettings* dst, const rdpSettings* src,
132 SSIZE_T id);
133
140 FREERDP_API void freerdp_settings_dump(wLog* log, DWORD level, const rdpSettings* settings);
141
151 WINPR_ATTR_NODISCARD
152 FREERDP_API BOOL freerdp_settings_print_diff(wLog* log, DWORD level,
153 const rdpSettings* settings,
154 const rdpSettings* other);
155
156 FREERDP_API void freerdp_addin_argv_free(ADDIN_ARGV* args);
157
158 WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
159 FREERDP_API ADDIN_ARGV* freerdp_addin_argv_new(size_t argc, const char* const argv[]);
160
161 WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
162 FREERDP_API ADDIN_ARGV* freerdp_addin_argv_clone(const ADDIN_ARGV* args);
163
164 WINPR_ATTR_NODISCARD
165 FREERDP_API BOOL freerdp_addin_argv_add_argument(ADDIN_ARGV* args, const char* argument);
166
167 WINPR_ATTR_NODISCARD
168 FREERDP_API BOOL freerdp_addin_argv_add_argument_ex(ADDIN_ARGV* args, const char* argument,
169 size_t len);
170
171 WINPR_ATTR_NODISCARD
172 FREERDP_API BOOL freerdp_addin_argv_del_argument(ADDIN_ARGV* args, const char* argument);
173
174 WINPR_ATTR_NODISCARD
175 FREERDP_API int freerdp_addin_set_argument(ADDIN_ARGV* args, const char* argument);
176
177 WINPR_ATTR_NODISCARD
178 FREERDP_API int freerdp_addin_replace_argument(ADDIN_ARGV* args, const char* previous,
179 const char* argument);
180
181 WINPR_ATTR_NODISCARD
182 FREERDP_API int freerdp_addin_set_argument_value(ADDIN_ARGV* args, const char* option,
183 const char* value);
184
185 WINPR_ATTR_NODISCARD
186 FREERDP_API int freerdp_addin_replace_argument_value(ADDIN_ARGV* args, const char* previous,
187 const char* option, const char* value);
188
189 WINPR_ATTR_NODISCARD
190 FREERDP_API BOOL freerdp_device_collection_add(rdpSettings* settings, RDPDR_DEVICE* device);
191
202 WINPR_ATTR_NODISCARD
203 FREERDP_API BOOL freerdp_device_collection_del(rdpSettings* settings,
204 const RDPDR_DEVICE* device);
205 WINPR_ATTR_NODISCARD
206 FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find(rdpSettings* settings,
207 const char* name);
208 WINPR_ATTR_NODISCARD
209 FREERDP_API RDPDR_DEVICE* freerdp_device_collection_find_type(rdpSettings* settings,
210 UINT32 type);
211
212 FREERDP_API void freerdp_device_free(RDPDR_DEVICE* device);
213
214 WINPR_ATTR_MALLOC(freerdp_device_free, 1)
215 FREERDP_API RDPDR_DEVICE* freerdp_device_new(UINT32 Type, size_t count,
216 const char* const args[]);
217
218 WINPR_ATTR_MALLOC(freerdp_device_free, 1)
219 FREERDP_API RDPDR_DEVICE* freerdp_device_clone(const RDPDR_DEVICE* device);
220
221 WINPR_ATTR_NODISCARD
222 FREERDP_API BOOL freerdp_device_equal(const RDPDR_DEVICE* what, const RDPDR_DEVICE* other);
223
230 WINPR_ATTR_NODISCARD
231 FREERDP_API const ADDIN_ARGV* freerdp_device_get_args(const RDPDR_DEVICE* device);
232
233 FREERDP_API void freerdp_device_collection_free(rdpSettings* settings);
234
235 WINPR_ATTR_NODISCARD
236 FREERDP_API BOOL freerdp_static_channel_collection_add(rdpSettings* settings,
237 ADDIN_ARGV* channel);
238
239 FREERDP_API BOOL freerdp_static_channel_collection_del(rdpSettings* settings, const char* name);
240
241 WINPR_ATTR_NODISCARD
242 FREERDP_API ADDIN_ARGV* freerdp_static_channel_collection_find(rdpSettings* settings,
243 const char* name);
244#if defined(WITH_FREERDP_DEPRECATED)
245 WINPR_DEPRECATED(WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
246 FREERDP_API ADDIN_ARGV* freerdp_static_channel_clone(ADDIN_ARGV* channel));
247#endif
248
249 FREERDP_API void freerdp_static_channel_collection_free(rdpSettings* settings);
250
251 WINPR_ATTR_NODISCARD
252 FREERDP_API BOOL freerdp_dynamic_channel_collection_add(rdpSettings* settings,
253 ADDIN_ARGV* channel);
254
255 FREERDP_API BOOL freerdp_dynamic_channel_collection_del(rdpSettings* settings,
256 const char* name);
257
258 WINPR_ATTR_NODISCARD
259 FREERDP_API ADDIN_ARGV* freerdp_dynamic_channel_collection_find(const rdpSettings* settings,
260 const char* name);
261
262#if defined(WITH_FREERDP_DEPRECATED)
263 WINPR_DEPRECATED(
264 WINPR_ATTR_MALLOC(freerdp_addin_argv_free, 1)
265 FREERDP_API ADDIN_ARGV* freerdp_dynamic_channel_clone(ADDIN_ARGV* channel));
266#endif
267
268 FREERDP_API void freerdp_dynamic_channel_collection_free(rdpSettings* settings);
269 FREERDP_API void freerdp_capability_buffer_free(rdpSettings* settings);
270
271 WINPR_ATTR_NODISCARD
272 FREERDP_API BOOL freerdp_capability_buffer_copy(rdpSettings* settings, const rdpSettings* src);
273
274 FREERDP_API void freerdp_server_license_issuers_free(rdpSettings* settings);
275
276 WINPR_ATTR_NODISCARD
277 FREERDP_API BOOL freerdp_server_license_issuers_copy(rdpSettings* settings, char** issuers,
278 UINT32 count);
279
280 FREERDP_API void freerdp_target_net_addresses_free(rdpSettings* settings);
281
282 WINPR_ATTR_NODISCARD
283 FREERDP_API BOOL freerdp_target_net_addresses_copy(rdpSettings* settings, char** addresses,
284 UINT32 count);
285
286 FREERDP_API void freerdp_performance_flags_make(rdpSettings* settings);
287 FREERDP_API void freerdp_performance_flags_split(rdpSettings* settings);
288
289 WINPR_ATTR_NODISCARD
290 FREERDP_API BOOL freerdp_set_gateway_usage_method(rdpSettings* settings,
291 UINT32 GatewayUsageMethod);
292 WINPR_ATTR_NODISCARD
293 FREERDP_API UINT32 freerdp_get_gateway_usage_method(const rdpSettings* settings);
294
295 FREERDP_API void freerdp_update_gateway_usage_method(rdpSettings* settings,
296 UINT32 GatewayEnabled,
297 UINT32 GatewayBypassLocal);
298
299 /* DEPRECATED:
300 * the functions freerdp_get_param_* and freerdp_set_param_* are deprecated.
301 * use freerdp_settings_get_* and freerdp_settings_set_* as a replacement!
302 */
303#if defined(WITH_FREERDP_DEPRECATED)
304 WINPR_DEPRECATED_VAR("Use freerdp_settings_get_bool instead",
305 WINPR_ATTR_NODISCARD FREERDP_API BOOL
306 freerdp_get_param_bool(const rdpSettings* settings, int id));
307 WINPR_DEPRECATED_VAR("Use freerdp_settings_set_bool instead",
308 FREERDP_API int freerdp_set_param_bool(rdpSettings* settings, int id,
309 BOOL param));
310
311 WINPR_DEPRECATED_VAR("Use freerdp_settings_get_int[16|32] instead",
312 WINPR_ATTR_NODISCARD FREERDP_API int freerdp_get_param_int(
313 const rdpSettings* settings, int id));
314 WINPR_DEPRECATED_VAR("Use freerdp_settings_set_int[16|32] instead",
315 FREERDP_API int freerdp_set_param_int(rdpSettings* settings, int id,
316 int param));
317
318 WINPR_DEPRECATED_VAR("Use freerdp_settings_get_uint32 instead",
319 WINPR_ATTR_NODISCARD FREERDP_API UINT32
320 freerdp_get_param_uint32(const rdpSettings* settings, int id));
321 WINPR_DEPRECATED_VAR("Use freerdp_settings_set_uint32 instead",
322 FREERDP_API int freerdp_set_param_uint32(rdpSettings* settings, int id,
323 UINT32 param));
324
325 WINPR_DEPRECATED_VAR("Use freerdp_settings_get_uint64 instead",
326 WINPR_ATTR_NODISCARD FREERDP_API UINT64
327 freerdp_get_param_uint64(const rdpSettings* settings, int id));
328 WINPR_DEPRECATED_VAR("Use freerdp_settings_set_uint64 instead",
329 FREERDP_API int freerdp_set_param_uint64(rdpSettings* settings, int id,
330 UINT64 param));
331
332 WINPR_DEPRECATED_VAR("Use freerdp_settings_get_string instead",
333 WINPR_ATTR_NODISCARD FREERDP_API char* freerdp_get_param_string(
334 const rdpSettings* settings, int id));
335 WINPR_DEPRECATED_VAR("Use freerdp_settings_set_string instead",
336 FREERDP_API int freerdp_set_param_string(rdpSettings* settings, int id,
337 const char* param));
338#endif
339
349 WINPR_ATTR_NODISCARD
350 FREERDP_API BOOL freerdp_settings_are_valid(const rdpSettings* settings);
351
359 WINPR_ATTR_NODISCARD
360 FREERDP_API BOOL freerdp_settings_get_bool(const rdpSettings* settings,
361 FreeRDP_Settings_Keys_Bool id);
362
371 WINPR_ATTR_NODISCARD
372 FREERDP_API BOOL freerdp_settings_set_bool(rdpSettings* settings, FreeRDP_Settings_Keys_Bool id,
373 BOOL val);
374
382 WINPR_ATTR_NODISCARD
383 FREERDP_API INT16 freerdp_settings_get_int16(const rdpSettings* settings,
384 FreeRDP_Settings_Keys_Int16 id);
385
394 WINPR_ATTR_NODISCARD
395 FREERDP_API BOOL freerdp_settings_set_int16(rdpSettings* settings,
396 FreeRDP_Settings_Keys_Int16 id, INT16 val);
397
405 WINPR_ATTR_NODISCARD
406 FREERDP_API UINT16 freerdp_settings_get_uint16(const rdpSettings* settings,
407 FreeRDP_Settings_Keys_UInt16 id);
408
417 WINPR_ATTR_NODISCARD
418 FREERDP_API BOOL freerdp_settings_set_uint16(rdpSettings* settings,
419 FreeRDP_Settings_Keys_UInt16 id, UINT16 val);
420
428 WINPR_ATTR_NODISCARD
429 FREERDP_API INT32 freerdp_settings_get_int32(const rdpSettings* settings,
430 FreeRDP_Settings_Keys_Int32 id);
431
440 WINPR_ATTR_NODISCARD
441 FREERDP_API BOOL freerdp_settings_set_int32(rdpSettings* settings,
442 FreeRDP_Settings_Keys_Int32 id, INT32 val);
443
451 WINPR_ATTR_NODISCARD
452 FREERDP_API UINT32 freerdp_settings_get_uint32(const rdpSettings* settings,
453 FreeRDP_Settings_Keys_UInt32 id);
454
463 WINPR_ATTR_NODISCARD
464 FREERDP_API BOOL freerdp_settings_set_uint32(rdpSettings* settings,
465 FreeRDP_Settings_Keys_UInt32 id, UINT32 val);
466
474 WINPR_ATTR_NODISCARD
475 FREERDP_API INT64 freerdp_settings_get_int64(const rdpSettings* settings,
476 FreeRDP_Settings_Keys_Int64 id);
477
486 WINPR_ATTR_NODISCARD
487 FREERDP_API BOOL freerdp_settings_set_int64(rdpSettings* settings,
488 FreeRDP_Settings_Keys_Int64 id, INT64 val);
489
497 WINPR_ATTR_NODISCARD
498 FREERDP_API UINT64 freerdp_settings_get_uint64(const rdpSettings* settings,
499 FreeRDP_Settings_Keys_UInt64 id);
500
509 WINPR_ATTR_NODISCARD
510 FREERDP_API BOOL freerdp_settings_set_uint64(rdpSettings* settings,
511 FreeRDP_Settings_Keys_UInt64 id, UINT64 val);
512
520 WINPR_ATTR_NODISCARD
521 FREERDP_API const char* freerdp_settings_get_string(const rdpSettings* settings,
522 FreeRDP_Settings_Keys_String id);
523
531 WINPR_ATTR_NODISCARD
532 FREERDP_API char* freerdp_settings_get_string_writable(rdpSettings* settings,
533 FreeRDP_Settings_Keys_String id);
534
544 WINPR_ATTR_NODISCARD
545 FREERDP_API BOOL freerdp_settings_set_string_len(rdpSettings* settings,
546 FreeRDP_Settings_Keys_String id,
547 const char* val, size_t len);
548
558 WINPR_ATTR_NODISCARD
559 FREERDP_API BOOL freerdp_settings_set_string(rdpSettings* settings,
560 FreeRDP_Settings_Keys_String id, const char* val);
561
573 WINPR_ATTR_NODISCARD
574 FREERDP_API BOOL freerdp_settings_append_string(rdpSettings* settings,
575 FreeRDP_Settings_Keys_String id,
576 const char* separator, const char* param);
577
587 WINPR_ATTR_NODISCARD
588 FREERDP_API BOOL freerdp_settings_set_string_from_utf16(rdpSettings* settings,
589 FreeRDP_Settings_Keys_String id,
590 const WCHAR* param);
591
602 WINPR_ATTR_NODISCARD
603 FREERDP_API BOOL freerdp_settings_set_string_from_utf16N(rdpSettings* settings,
604 FreeRDP_Settings_Keys_String id,
605 const WCHAR* param, size_t length);
613 WINPR_ATTR_MALLOC(free, 1)
614 FREERDP_API WCHAR* freerdp_settings_get_string_as_utf16(const rdpSettings* settings,
615 FreeRDP_Settings_Keys_String id,
616 size_t* pCharLen);
617
625 WINPR_ATTR_NODISCARD
626 FREERDP_API const void* freerdp_settings_get_pointer(const rdpSettings* settings,
627 FreeRDP_Settings_Keys_Pointer id);
628
636 WINPR_ATTR_NODISCARD
637 FREERDP_API void* freerdp_settings_get_pointer_writable(rdpSettings* settings,
638 FreeRDP_Settings_Keys_Pointer id);
639
648 WINPR_ATTR_NODISCARD
649 FREERDP_API BOOL freerdp_settings_set_pointer(rdpSettings* settings,
650 FreeRDP_Settings_Keys_Pointer id,
651 const void* val);
652
661 WINPR_ATTR_NODISCARD
662 FREERDP_API BOOL freerdp_settings_set_pointer_len(rdpSettings* settings,
663 FreeRDP_Settings_Keys_Pointer id,
664 const void* data, size_t len);
665
666 WINPR_ATTR_NODISCARD
667 FREERDP_API const void* freerdp_settings_get_pointer_array(const rdpSettings* settings,
668 FreeRDP_Settings_Keys_Pointer id,
669 size_t offset);
670
671 WINPR_ATTR_NODISCARD
672 FREERDP_API void* freerdp_settings_get_pointer_array_writable(const rdpSettings* settings,
673 FreeRDP_Settings_Keys_Pointer id,
674 size_t offset);
675
676 WINPR_ATTR_NODISCARD
677 FREERDP_API BOOL freerdp_settings_set_pointer_array(rdpSettings* settings,
678 FreeRDP_Settings_Keys_Pointer id,
679 size_t offset, const void* data);
680
701 WINPR_ATTR_NODISCARD
702 FREERDP_API BOOL freerdp_settings_set_value_for_name(rdpSettings* settings, const char* name,
703 const char* value);
704
711 WINPR_ATTR_NODISCARD
712 FREERDP_API SSIZE_T freerdp_settings_get_key_for_name(const char* value);
713
721 WINPR_ATTR_NODISCARD
722 FREERDP_API SSIZE_T freerdp_settings_get_type_for_name(const char* value);
723
731 WINPR_ATTR_NODISCARD
732 FREERDP_API SSIZE_T freerdp_settings_get_type_for_key(SSIZE_T key);
733
739 WINPR_ATTR_NODISCARD
740 FREERDP_API const char* freerdp_settings_get_type_name_for_key(SSIZE_T key);
741
747 WINPR_ATTR_NODISCARD
748 FREERDP_API const char* freerdp_settings_get_type_name_for_type(SSIZE_T type);
749
755 WINPR_ATTR_NODISCARD
756 FREERDP_API const char* freerdp_settings_get_name_for_key(SSIZE_T key);
757
767 WINPR_ATTR_NODISCARD
768 FREERDP_API UINT32 freerdp_settings_get_codecs_flags(const rdpSettings* settings);
769
785 WINPR_ATTR_NODISCARD
786 FREERDP_API BOOL freerdp_settings_update_from_caps(rdpSettings* settings, const BYTE* capsFlags,
787 const BYTE** capsData,
788 const UINT32* capsSizes, UINT32 capsCount,
789 BOOL serverReceivedCaps);
790
800 WINPR_ATTR_NODISCARD
801 FREERDP_API const char* freerdp_settings_get_server_name(const rdpSettings* settings);
802
811 WINPR_ATTR_NODISCARD
812 FREERDP_API const char* freerdp_rail_support_flags_to_string(UINT32 flags, char* buffer,
813 size_t length);
814
822 WINPR_ATTR_NODISCARD
823 FREERDP_API const char* freerdp_rdp_version_string(UINT32 version);
824
831 WINPR_ATTR_NODISCARD
832 FREERDP_API const char* freerdp_rdpdr_dtyp_string(UINT32 type);
833
834 WINPR_ATTR_NODISCARD
835 FREERDP_API const char* freerdp_encryption_level_string(UINT32 EncryptionLevel);
836
837 WINPR_ATTR_NODISCARD
838 FREERDP_API const char* freerdp_encryption_methods_string(UINT32 EncryptionMethods,
839 char* buffer, size_t size);
840
848 WINPR_ATTR_NODISCARD
849 FREERDP_API const char* freerdp_supported_color_depths_string(UINT16 mask, char* buffer,
850 size_t size);
851
857 WINPR_ATTR_MALLOC(free, 1)
858 WINPR_ATTR_NODISCARD
859 FREERDP_API char* freerdp_settings_get_config_path(void);
860
878 WINPR_ATTR_NODISCARD
879 FREERDP_API BOOL freerdp_settings_set_monitor_def_array_sorted(rdpSettings* settings,
880 const rdpMonitor* monitors,
881 size_t count);
882
892 WINPR_ATTR_MALLOC(free, 1)
893 WINPR_ATTR_NODISCARD
894 FREERDP_API char* freerdp_settings_serialize(const rdpSettings* settings, BOOL pretty,
895 size_t* plength);
896
904 WINPR_ATTR_MALLOC(freerdp_settings_free, 1)
905 WINPR_ATTR_NODISCARD
906 FREERDP_API rdpSettings* freerdp_settings_deserialize(const char* jstr, size_t length);
907
908#ifdef __cplusplus
909}
910#endif
911
914#endif /* FREERDP_SETTINGS_H */
FREERDP_API void freerdp_settings_dump(wLog *log, DWORD level, const rdpSettings *settings)
Dumps the contents of a settings struct to a WLog logger.
WINPR_ATTR_NODISCARD FREERDP_API const void * freerdp_settings_get_pointer(const rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id)
Returns a immutable pointer settings value.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_settings_get_type_name_for_type(SSIZE_T type)
Returns the type name for a type.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_string_from_utf16N(rdpSettings *settings, FreeRDP_Settings_Keys_String id, const WCHAR *param, size_t length)
Sets a string settings value. The param is converted to UTF-8 and the copy stored.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_update_from_caps(rdpSettings *settings, const BYTE *capsFlags, const BYTE **capsData, const UINT32 *capsSizes, UINT32 capsCount, BOOL serverReceivedCaps)
Parse capability data and apply to settings.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_pointer(rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, const void *val)
Set a pointer to value val.
FREERDP_API rdpSettings * freerdp_settings_new(DWORD flags)
creates a new setting struct
WINPR_ATTR_NODISCARD FREERDP_API char * freerdp_settings_get_string_writable(rdpSettings *settings, FreeRDP_Settings_Keys_String id)
Returns a string settings value.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_settings_get_server_name(const rdpSettings *settings)
A helper function to return the correct server name.
FREERDP_API rdpSettings * freerdp_settings_clone(const rdpSettings *settings)
Creates a deep copy of settings.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_int64(rdpSettings *settings, FreeRDP_Settings_Keys_Int64 id, INT64 val)
Sets a INT64 settings value.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_settings_get_string(const rdpSettings *settings, FreeRDP_Settings_Keys_String id)
Returns a immutable string settings value.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_bool(rdpSettings *settings, FreeRDP_Settings_Keys_Bool id, BOOL val)
Sets a BOOL settings value.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_copy_item(rdpSettings *dst, const rdpSettings *src, SSIZE_T id)
copies one setting identified by id from src to dst
WINPR_ATTR_NODISCARD FREERDP_API 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 val is copied.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_device_collection_del(rdpSettings *settings, const RDPDR_DEVICE *device)
Removed a device from the settings, returns ownership of the allocated device to caller.
WINPR_ATTR_NODISCARD FREERDP_API SSIZE_T freerdp_settings_get_type_for_name(const char *value)
Get a key type for the name string of that key.
WINPR_ATTR_NODISCARD FREERDP_API INT32 freerdp_settings_get_int32(const rdpSettings *settings, FreeRDP_Settings_Keys_Int32 id)
Returns a INT32 settings value.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_string_from_utf16(rdpSettings *settings, FreeRDP_Settings_Keys_String id, const WCHAR *param)
Sets a string settings value. The param is converted to UTF-8 and the copy stored.
WINPR_ATTR_NODISCARD FREERDP_API char * freerdp_settings_get_config_path(void)
return the configuration directory for the library
WINPR_ATTR_NODISCARD FREERDP_API void * freerdp_settings_get_pointer_writable(rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id)
Returns a mutable pointer settings value.
WINPR_ATTR_NODISCARD FREERDP_API rdpSettings * freerdp_settings_deserialize(const char *jstr, size_t length)
A function that converts a JSON string to a rdpSettings struct.
WINPR_ATTR_NODISCARD FREERDP_API UINT32 freerdp_settings_get_codecs_flags(const rdpSettings *settings)
helper function to get a mask of supported codec flags.
WINPR_ATTR_NODISCARD FREERDP_API UINT16 freerdp_settings_get_uint16(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt16 id)
Returns a UINT16 settings value.
WINPR_ATTR_NODISCARD FREERDP_API UINT64 freerdp_settings_get_uint64(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt64 id)
Returns a UINT64 settings value.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_copy(rdpSettings *dst, const rdpSettings *src)
Deep copies settings from src to dst.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_uint32(rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id, UINT32 val)
Sets a UINT32 settings value.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_pointer_len(rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id, const void *data, size_t len)
Set a pointer to value data.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_uint64(rdpSettings *settings, FreeRDP_Settings_Keys_UInt64 id, UINT64 val)
Sets a UINT64 settings value.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_int16(rdpSettings *settings, FreeRDP_Settings_Keys_Int16 id, INT16 val)
Sets a INT16 settings value.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_int32(rdpSettings *settings, FreeRDP_Settings_Keys_Int32 id, INT32 val)
Sets a INT32 settings value.
FREERDP_API void freerdp_settings_free(rdpSettings *settings)
Free a settings struct with all data in it.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_settings_get_type_name_for_key(SSIZE_T key)
Returns the type name for a key.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_append_string(rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *separator, const char *param)
appends a string to a settings value. The param is copied. If the initial value of the setting was no...
WINPR_ATTR_NODISCARD FREERDP_API INT16 freerdp_settings_get_int16(const rdpSettings *settings, FreeRDP_Settings_Keys_Int16 id)
Returns a INT16 settings value.
WINPR_ATTR_NODISCARD FREERDP_API const ADDIN_ARGV * freerdp_device_get_args(const RDPDR_DEVICE *device)
return the arguments passed to the device channel.
WINPR_ATTR_NODISCARD FREERDP_API SSIZE_T freerdp_settings_get_key_for_name(const char *value)
Get a key index for the name string of that key.
WINPR_ATTR_NODISCARD FREERDP_API UINT32 freerdp_settings_get_uint32(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id)
Returns a UINT32 settings value.
WINPR_ATTR_NODISCARD FREERDP_API INT64 freerdp_settings_get_int64(const rdpSettings *settings, FreeRDP_Settings_Keys_Int64 id)
Returns a INT64 settings value.
FREERDP_API WCHAR * freerdp_settings_get_string_as_utf16(const rdpSettings *settings, FreeRDP_Settings_Keys_String id, size_t *pCharLen)
Return an allocated UTF16 string.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_rdp_version_string(UINT32 version)
Returns a stringified representation of the RDP protocol version.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_are_valid(const rdpSettings *settings)
Returns TRUE if settings are in a valid state, FALSE otherwise.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_uint16(rdpSettings *settings, FreeRDP_Settings_Keys_UInt16 id, UINT16 val)
Sets a UINT16 settings value.
WINPR_ATTR_NODISCARD FREERDP_API char * freerdp_settings_serialize(const rdpSettings *settings, BOOL pretty, size_t *plength)
A function that converts a rdpSettings struct to a JSON serialized string.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_monitor_def_array_sorted(rdpSettings *settings, const rdpMonitor *monitors, size_t count)
Sort monitor array according to:
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_rail_support_flags_to_string(UINT32 flags, char *buffer, size_t length)
Returns a stringified representation of RAIL support flags.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_set_gateway_usage_method(rdpSettings *settings, UINT32 GatewayUsageMethod)
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_set_string(rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *val)
Sets a string settings value. The param is copied.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_rdpdr_dtyp_string(UINT32 type)
Returns a string representation of RDPDR_DTYP_*.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_supported_color_depths_string(UINT16 mask, char *buffer, size_t size)
returns a string representation of RNS_UD_XXBPP_SUPPORT values
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_get_bool(const rdpSettings *settings, FreeRDP_Settings_Keys_Bool id)
Returns a boolean settings value.
WINPR_ATTR_NODISCARD FREERDP_API const char * freerdp_settings_get_name_for_key(SSIZE_T key)
Returns the type name for a key.
WINPR_ATTR_NODISCARD FREERDP_API BOOL freerdp_settings_print_diff(wLog *log, DWORD level, const rdpSettings *settings, const rdpSettings *other)
Dumps the difference between two settings structs to a WLog.
WINPR_ATTR_NODISCARD FREERDP_API SSIZE_T freerdp_settings_get_type_for_key(SSIZE_T key)
Get a key type for the key index.