3 #include "../core/settings.h"
4 #include "settings_str.h"
6 BOOL 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:
95 const rdpSettings* other)
100 WINPR_ASSERT(settings);
103 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
108 case FREERDP_SETTINGS_TYPE_BOOL:
116 WLog_Print(log, level,
"%s [BOOL]: %s -> %s", cur->str, sval ?
"TRUE" :
"FALSE",
117 cval ?
"TRUE" :
"FALSE");
121 case FREERDP_SETTINGS_TYPE_UINT16:
130 WLog_Print(log, level,
"%s [UINT16]: %" PRIu16
" -> %" PRIu16, cur->str, sval,
135 case FREERDP_SETTINGS_TYPE_INT16:
144 WLog_Print(log, level,
"%s [INT16]: %" PRId16
" -> %" PRId16, cur->str, sval,
149 case FREERDP_SETTINGS_TYPE_UINT32:
158 WLog_Print(log, level,
"%s [UINT32]: %" PRIu32
" -> %" PRIu32, cur->str, sval,
163 case FREERDP_SETTINGS_TYPE_INT32:
172 WLog_Print(log, level,
"%s [INT32]: %" PRId32
" -> %" PRId32, cur->str, sval,
177 case FREERDP_SETTINGS_TYPE_UINT64:
186 WLog_Print(log, level,
"%s [UINT64]: %" PRIu64
" -> %" PRIu64, cur->str, sval,
191 case FREERDP_SETTINGS_TYPE_INT64:
200 WLog_Print(log, level,
"%s [INT64]: %" PRId64
" -> %" PRId64, cur->str, sval,
205 case FREERDP_SETTINGS_TYPE_STRING:
213 if (!sval || !cval || (strcmp(sval, cval) != 0))
216 WLog_Print(log, level,
"%s [STRING]: '%s' -> '%s'", cur->str, sval, cval);
221 case FREERDP_SETTINGS_TYPE_POINTER:
229 if ((sval && !cval) || (!sval && cval))
232 WLog_Print(log, level,
"%s [POINTER]: '%p' -> '%p'", cur->str, sval, cval);
245 WINPR_ASSERT(settings);
247 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
252 case FREERDP_SETTINGS_TYPE_BOOL:
256 WLog_Print(log, level,
"%s [BOOL]: %s", cur->str, sval ?
"TRUE" :
"FALSE");
259 case FREERDP_SETTINGS_TYPE_UINT16:
263 WLog_Print(log, level,
"%s [UINT16]: %" PRIu16, cur->str, sval);
266 case FREERDP_SETTINGS_TYPE_INT16:
270 WLog_Print(log, level,
"%s [INT16]: %" PRId16, cur->str, sval);
273 case FREERDP_SETTINGS_TYPE_UINT32:
277 WLog_Print(log, level,
"%s [UINT32]: %" PRIu32, cur->str, sval);
280 case FREERDP_SETTINGS_TYPE_INT32:
284 WLog_Print(log, level,
"%s [INT32]: %" PRId32, cur->str, sval);
287 case FREERDP_SETTINGS_TYPE_UINT64:
291 WLog_Print(log, level,
"%s [UINT64]: %" PRIu64, cur->str, sval);
294 case FREERDP_SETTINGS_TYPE_INT64:
298 WLog_Print(log, level,
"%s [INT64]: %" PRId64, cur->str, sval);
301 case FREERDP_SETTINGS_TYPE_STRING:
305 WLog_Print(log, level,
"%s [STRING]: '%s'", cur->str, sval);
308 case FREERDP_SETTINGS_TYPE_POINTER:
312 WLog_Print(log, level,
"%s [POINTER]: '%p'", cur->str, sval);
319 void freerdp_settings_free_keys(rdpSettings* dst, BOOL cleanup)
323 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
328 case FREERDP_SETTINGS_TYPE_STRING:
329 (void)freerdp_settings_set_string_copy_(dst, (FreeRDP_Settings_Keys_String)cur->id,
332 case FREERDP_SETTINGS_TYPE_POINTER:
344 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
347 if (strcmp(value, cur->str) == 0)
357 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
360 if (strcmp(value, cur->str) == 0)
376 case FREERDP_SETTINGS_TYPE_BOOL:
377 return "FREERDP_SETTINGS_TYPE_BOOL";
378 case FREERDP_SETTINGS_TYPE_UINT16:
379 return "FREERDP_SETTINGS_TYPE_UINT16";
380 case FREERDP_SETTINGS_TYPE_INT16:
381 return "FREERDP_SETTINGS_TYPE_INT16";
382 case FREERDP_SETTINGS_TYPE_UINT32:
383 return "FREERDP_SETTINGS_TYPE_UINT32";
384 case FREERDP_SETTINGS_TYPE_INT32:
385 return "FREERDP_SETTINGS_TYPE_INT32";
386 case FREERDP_SETTINGS_TYPE_UINT64:
387 return "FREERDP_SETTINGS_TYPE_UINT64";
388 case FREERDP_SETTINGS_TYPE_INT64:
389 return "FREERDP_SETTINGS_TYPE_INT64";
390 case FREERDP_SETTINGS_TYPE_STRING:
391 return "FREERDP_SETTINGS_TYPE_STRING";
392 case FREERDP_SETTINGS_TYPE_POINTER:
393 return "FREERDP_SETTINGS_TYPE_POINTER";
395 return "FREERDP_SETTINGS_TYPE_UNKNOWN";
401 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
412 for (
size_t x = 0; x < ARRAYSIZE(settings_map); x++)
429 case FREERDP_SETTINGS_TYPE_BOOL:
434 case FREERDP_SETTINGS_TYPE_INT16:
439 case FREERDP_SETTINGS_TYPE_INT32:
444 case FREERDP_SETTINGS_TYPE_INT64:
449 case FREERDP_SETTINGS_TYPE_UINT16:
454 case FREERDP_SETTINGS_TYPE_UINT32:
459 case FREERDP_SETTINGS_TYPE_UINT64:
464 case FREERDP_SETTINGS_TYPE_STRING:
469 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 const void * freerdp_settings_get_pointer(const rdpSettings *settings, FreeRDP_Settings_Keys_Pointer id)
Returns a immutable pointer 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.
const char * freerdp_settings_get_type_name_for_type(SSIZE_T type)
Returns the type name for a type.
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 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_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 BOOL freerdp_settings_set_uint32(rdpSettings *settings, FreeRDP_Settings_Keys_UInt32 id, UINT32 param)
Sets a UINT32 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.
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_bool(rdpSettings *settings, FreeRDP_Settings_Keys_Bool id, BOOL param)
Sets a BOOL settings value.
const char * freerdp_settings_get_name_for_key(SSIZE_T key)
Returns the type name for a key.