From ff266e9575d20608deed6ce23512b553b67f8738 Mon Sep 17 00:00:00 2001 From: Armin Novak Date: Mon, 28 Nov 2022 12:35:02 +0100 Subject: [PATCH] furter added settings documentation --- include/freerdp/settings.h | 43 +++++++++++++++++++++++++++++++++--- libfreerdp/common/settings.c | 5 +++-- 2 files changed, 43 insertions(+), 5 deletions(-) diff --git a/include/freerdp/settings.h b/include/freerdp/settings.h index 3a201f851..b03dfd695 100644 --- a/include/freerdp/settings.h +++ b/include/freerdp/settings.h @@ -2125,9 +2125,30 @@ extern "C" FREERDP_API BOOL freerdp_settings_set_value_for_name(rdpSettings* settings, const char* name, const char* value); + /** \brief Get a key index for the name string of that key + * + * \param value A key name string like FreeRDP_ServerMode + * + * \return The key index or -1 in case of an error (e.g. name does not exist) + */ FREERDP_API SSIZE_T freerdp_settings_get_key_for_name(const char* value); + + /** \brief Get a key type for the name string of that key + * + * \param value A key name string like FreeRDP_ServerMode + * + * \return The key type (e.g. FREERDP_SETTINGS_TYPE_BOOL) or -1 in case of an error (e.g. name + * does not exist) + */ FREERDP_API SSIZE_T freerdp_settings_get_type_for_name(const char* value); + /** \brief Get a key type for the key index + * + * \param key The key index like FreeRDP_ServerMode + * + * \return The key type (e.g. FREERDP_SETTINGS_TYPE_BOOL) or -1 in case of an error (e.g. name + * does not exist) + */ FREERDP_API SSIZE_T freerdp_settings_get_type_for_key(size_t key); FREERDP_API const char* freerdp_settings_get_type_name_for_key(size_t key); FREERDP_API const char* freerdp_settings_get_type_name_for_type(SSIZE_T type); @@ -2135,9 +2156,25 @@ extern "C" FREERDP_API const char* freerdp_settings_get_name_for_key(size_t key); FREERDP_API UINT32 freerdp_settings_get_codecs_flags(const rdpSettings* settings); - FREERDP_API BOOL freerdp_settings_update_from_caps(rdpSettings* settings, BYTE* capsFlags, - BYTE** capsData, UINT32* capsSizes, - UINT32 capsCount, BOOL serverReceivedCaps); + /** \brief Parse capability data and apply to settings + * + * The capability message is stored in raw form in the settings, the data parsed and applied to + * the settings. + * + * \param settings A pointer to the settings to use + * \param capsFlags A pointer to the capablity flags, must have capsCount fields + * \param capsData A pointer array to the RAW capability data, must have capsCount fields + * \param capsSizes A pointer to an array of RAW capability sizes, must have capsCount fields + * \param capsCount The number of capabilities contained in the RAW data + * \param serverReceivedCaps Indicates if the parser should assume to be a server or client + * instance + * + * \return \b TRUE for success, \b FALSE in case of an error + */ + FREERDP_API BOOL freerdp_settings_update_from_caps(rdpSettings* settings, const BYTE* capsFlags, + const BYTE** capsData, + const UINT32* capsSizes, UINT32 capsCount, + BOOL serverReceivedCaps); /** \brief A helper function to return the correct server name. * diff --git a/libfreerdp/common/settings.c b/libfreerdp/common/settings.c index 683013e3c..9b7d61299 100644 --- a/libfreerdp/common/settings.c +++ b/libfreerdp/common/settings.c @@ -1951,8 +1951,9 @@ char* freerdp_rail_support_flags_to_string(UINT32 flags, char* buffer, size_t le return buffer; } -BOOL freerdp_settings_update_from_caps(rdpSettings* settings, BYTE* capsFlags, BYTE** capsData, - UINT32* capsSizes, UINT32 capsCount, BOOL serverReceivedCaps) +BOOL freerdp_settings_update_from_caps(rdpSettings* settings, const BYTE* capsFlags, + const BYTE** capsData, const UINT32* capsSizes, + UINT32 capsCount, BOOL serverReceivedCaps) { UINT32 x; WINPR_ASSERT(settings);