3#include "../core/settings.h"
4#include "settings_str.h"
6BOOL freerdp_settings_clone_keys(rdpSettings* dst,
const rdpSettings* src)
11 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
16 case FREERDP_SETTINGS_TYPE_BOOL:
23 case FREERDP_SETTINGS_TYPE_UINT16:
31 case FREERDP_SETTINGS_TYPE_INT16:
38 case FREERDP_SETTINGS_TYPE_UINT32:
46 case FREERDP_SETTINGS_TYPE_INT32:
53 case FREERDP_SETTINGS_TYPE_UINT64:
61 case FREERDP_SETTINGS_TYPE_INT64:
68 case FREERDP_SETTINGS_TYPE_STRING:
75 if (!freerdp_settings_set_string_copy_(dst, (FreeRDP_Settings_Keys_String)cur->id,
80 case FREERDP_SETTINGS_TYPE_POINTER:
82 if (cur->id == FreeRDP_instance)
100 const rdpSettings* other)
105 WINPR_ASSERT(settings);
108 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
113 case FREERDP_SETTINGS_TYPE_BOOL:
121 WLog_Print(log, level,
"%s [BOOL]: %s -> %s", cur->str, sval ?
"TRUE" :
"FALSE",
122 cval ?
"TRUE" :
"FALSE");
126 case FREERDP_SETTINGS_TYPE_UINT16:
135 WLog_Print(log, level,
"%s [UINT16]: %" PRIu16
" -> %" PRIu16, cur->str, sval,
140 case FREERDP_SETTINGS_TYPE_INT16:
149 WLog_Print(log, level,
"%s [INT16]: %" PRId16
" -> %" PRId16, cur->str, sval,
154 case FREERDP_SETTINGS_TYPE_UINT32:
163 WLog_Print(log, level,
"%s [UINT32]: %" PRIu32
" -> %" PRIu32, cur->str, sval,
168 case FREERDP_SETTINGS_TYPE_INT32:
177 WLog_Print(log, level,
"%s [INT32]: %" PRId32
" -> %" PRId32, cur->str, sval,
182 case FREERDP_SETTINGS_TYPE_UINT64:
191 WLog_Print(log, level,
"%s [UINT64]: %" PRIu64
" -> %" PRIu64, cur->str, sval,
196 case FREERDP_SETTINGS_TYPE_INT64:
205 WLog_Print(log, level,
"%s [INT64]: %" PRId64
" -> %" PRId64, cur->str, sval,
210 case FREERDP_SETTINGS_TYPE_STRING:
218 if (!sval || !cval || (strcmp(sval, cval) != 0))
221 WLog_Print(log, level,
"%s [STRING]: '%s' -> '%s'", cur->str, sval, cval);
226 case FREERDP_SETTINGS_TYPE_POINTER:
234 if ((sval && !cval) || (!sval && cval))
237 WLog_Print(log, level,
"%s [POINTER]: '%p' -> '%p'", cur->str, sval, cval);
252 WINPR_ASSERT(settings);
254 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
259 case FREERDP_SETTINGS_TYPE_BOOL:
263 WLog_Print(log, level,
"%s [BOOL]: %s", cur->str, sval ?
"TRUE" :
"FALSE");
266 case FREERDP_SETTINGS_TYPE_UINT16:
270 WLog_Print(log, level,
"%s [UINT16]: %" PRIu16, cur->str, sval);
273 case FREERDP_SETTINGS_TYPE_INT16:
277 WLog_Print(log, level,
"%s [INT16]: %" PRId16, cur->str, sval);
280 case FREERDP_SETTINGS_TYPE_UINT32:
284 WLog_Print(log, level,
"%s [UINT32]: %" PRIu32, cur->str, sval);
287 case FREERDP_SETTINGS_TYPE_INT32:
291 WLog_Print(log, level,
"%s [INT32]: %" PRId32, cur->str, sval);
294 case FREERDP_SETTINGS_TYPE_UINT64:
298 WLog_Print(log, level,
"%s [UINT64]: %" PRIu64, cur->str, sval);
301 case FREERDP_SETTINGS_TYPE_INT64:
305 WLog_Print(log, level,
"%s [INT64]: %" PRId64, cur->str, sval);
308 case FREERDP_SETTINGS_TYPE_STRING:
312 WLog_Print(log, level,
"%s [STRING]: '%s'", cur->str, sval);
315 case FREERDP_SETTINGS_TYPE_POINTER:
319 WLog_Print(log, level,
"%s [POINTER]: '%p'", cur->str, sval);
328void freerdp_settings_free_keys(rdpSettings* dst, BOOL cleanup)
332 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
337 case FREERDP_SETTINGS_TYPE_STRING:
338 (void)freerdp_settings_set_string_copy_(dst, (FreeRDP_Settings_Keys_String)cur->id,
341 case FREERDP_SETTINGS_TYPE_POINTER:
355 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
358 if (strcmp(value, cur->str) == 0)
368 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
371 if (strcmp(value, cur->str) == 0)
387 case FREERDP_SETTINGS_TYPE_BOOL:
388 return "FREERDP_SETTINGS_TYPE_BOOL";
389 case FREERDP_SETTINGS_TYPE_UINT16:
390 return "FREERDP_SETTINGS_TYPE_UINT16";
391 case FREERDP_SETTINGS_TYPE_INT16:
392 return "FREERDP_SETTINGS_TYPE_INT16";
393 case FREERDP_SETTINGS_TYPE_UINT32:
394 return "FREERDP_SETTINGS_TYPE_UINT32";
395 case FREERDP_SETTINGS_TYPE_INT32:
396 return "FREERDP_SETTINGS_TYPE_INT32";
397 case FREERDP_SETTINGS_TYPE_UINT64:
398 return "FREERDP_SETTINGS_TYPE_UINT64";
399 case FREERDP_SETTINGS_TYPE_INT64:
400 return "FREERDP_SETTINGS_TYPE_INT64";
401 case FREERDP_SETTINGS_TYPE_STRING:
402 return "FREERDP_SETTINGS_TYPE_STRING";
403 case FREERDP_SETTINGS_TYPE_POINTER:
404 return "FREERDP_SETTINGS_TYPE_POINTER";
406 return "FREERDP_SETTINGS_TYPE_UNKNOWN";
412 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
423 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
440 case FREERDP_SETTINGS_TYPE_BOOL:
445 case FREERDP_SETTINGS_TYPE_INT16:
450 case FREERDP_SETTINGS_TYPE_INT32:
455 case FREERDP_SETTINGS_TYPE_INT64:
460 case FREERDP_SETTINGS_TYPE_UINT16:
465 case FREERDP_SETTINGS_TYPE_UINT32:
470 case FREERDP_SETTINGS_TYPE_UINT64:
475 case FREERDP_SETTINGS_TYPE_STRING:
480 case FREERDP_SETTINGS_TYPE_POINTER:
void freerdp_settings_dump(wLog *log, DWORD level, const rdpSettings *settings)
Dumps the contents of a settings struct to a WLog logger.
FREERDP_API UINT32 freerdp_settings_get_uint32(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id)
Returns a UINT32 settings value.
FREERDP_API BOOL freerdp_settings_set_string(rdpSettings *settings, FreeRDP_Settings_Keys_String id, const char *param)
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.
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.
SSIZE_T freerdp_settings_get_type_for_name(const char *value)
Get a key type for the name string of that key.
SSIZE_T freerdp_settings_get_type_for_key(SSIZE_T key)
Get a key type for the key index.
FREERDP_API UINT64 freerdp_settings_get_uint64(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt64 id)
Returns a UINT64 settings value.
SSIZE_T freerdp_settings_get_key_for_name(const char *value)
Get a key index for the name string of that key.
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.
FREERDP_API BOOL freerdp_settings_set_int32(rdpSettings *settings, FreeRDP_Settings_Keys_Int32 id, INT32 param)
Sets a INT32 settings value.
BOOL freerdp_settings_copy_item(rdpSettings *dst, const rdpSettings *src, SSIZE_T id)
copies one setting identified by id from src to dst
FREERDP_API UINT16 freerdp_settings_get_uint16(const rdpSettings *settings, FreeRDP_Settings_Keys_UInt16 id)
Returns a UINT16 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 void * freerdp_settings_get_pointer(const rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id)
Returns a immutable pointer settings value.
const char * freerdp_settings_get_type_name_for_key(SSIZE_T key)
Returns the type name for a key.
FREERDP_API BOOL freerdp_settings_set_uint32(rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id, UINT32 param)
Sets a UINT32 settings value.
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.
const char * freerdp_settings_get_type_name_for_type(SSIZE_T type)
Returns the type name for a type.
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.