From b26ab2f069c0fee0caeb6fc7e9eff24874c91945 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Thu, 5 Sep 2024 16:08:38 +0200 Subject: [PATCH 1/2] [client,common] extended parser --- client/common/client.c | 14 ++++++++++++-- include/freerdp/client.h | 8 ++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/client/common/client.c b/client/common/client.c index 4742ab30f..55a6d9a34 100644 --- a/client/common/client.c +++ b/client/common/client.c @@ -278,6 +278,16 @@ out_error: int freerdp_client_settings_parse_command_line(rdpSettings* settings, int argc, char** argv, BOOL allowUnknown) + +{ + return freerdp_client_settings_parse_command_line_ex(settings, argc, argv, allowUnknown, NULL, + 0, NULL, NULL); +} + +int freerdp_client_settings_parse_command_line_ex( + rdpSettings* settings, int argc, char** argv, BOOL allowUnknown, COMMAND_LINE_ARGUMENT_A* args, + size_t count, int (*handle_option)(const COMMAND_LINE_ARGUMENT* arg, void* custom), + void* handle_userdata) { int status = 0; @@ -287,8 +297,8 @@ int freerdp_client_settings_parse_command_line(rdpSettings* settings, int argc, if (!argv) return -1; - status = - freerdp_client_settings_parse_command_line_arguments(settings, argc, argv, allowUnknown); + status = freerdp_client_settings_parse_command_line_arguments_ex( + settings, argc, argv, allowUnknown, args, count, handle_option, handle_userdata); if (status < 0) return status; diff --git a/include/freerdp/client.h b/include/freerdp/client.h index d30c417ba..0cc8e1ab9 100644 --- a/include/freerdp/client.h +++ b/include/freerdp/client.h @@ -20,6 +20,8 @@ #ifndef FREERDP_CLIENT_H #define FREERDP_CLIENT_H +#include + #include #include #include @@ -152,6 +154,12 @@ extern "C" FREERDP_API int freerdp_client_settings_parse_command_line(rdpSettings* settings, int argc, char** argv, BOOL allowUnknown); + FREERDP_API int freerdp_client_settings_parse_command_line_ex( + rdpSettings* settings, int argc, char** argv, BOOL allowUnknown, + COMMAND_LINE_ARGUMENT_A* args, size_t count, + int (*handle_option)(const COMMAND_LINE_ARGUMENT* arg, void* custom), + void* handle_userdata); + FREERDP_API int freerdp_client_settings_parse_connection_file(rdpSettings* settings, const char* filename); FREERDP_API int freerdp_client_settings_parse_connection_file_buffer(rdpSettings* settings, From 1e1e9a445b2468fb1cb9dc1b1a1a55914a6316c3 Mon Sep 17 00:00:00 2001 From: akallabeth Date: Fri, 6 Sep 2024 08:37:52 +0200 Subject: [PATCH 2/2] [utils,gfx] add rdpgfx_caps_version_str --- include/freerdp/utils/gfx.h | 2 ++ libfreerdp/gdi/gfx.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/include/freerdp/utils/gfx.h b/include/freerdp/utils/gfx.h index 0f5c1898e..1e487862b 100644 --- a/include/freerdp/utils/gfx.h +++ b/include/freerdp/utils/gfx.h @@ -30,6 +30,8 @@ extern "C" { #endif + FREERDP_API const char* rdpgfx_caps_version_str(UINT32 capsVersion); + FREERDP_API const char* rdpgfx_get_cmd_id_string(UINT16 cmdId); FREERDP_API const char* rdpgfx_get_codec_id_string(UINT16 codecId); diff --git a/libfreerdp/gdi/gfx.c b/libfreerdp/gdi/gfx.c index 7972243f7..2b44a5f0d 100644 --- a/libfreerdp/gdi/gfx.c +++ b/libfreerdp/gdi/gfx.c @@ -1941,3 +1941,34 @@ void gdi_graphics_pipeline_uninit(rdpGdi* gdi, RdpgfxClientContext* gfx) PROFILER_PRINT_FOOTER PROFILER_FREE(gfx->SurfaceProfiler) } + +const char* rdpgfx_caps_version_str(UINT32 capsVersion) +{ + switch (capsVersion) + { + case RDPGFX_CAPVERSION_8: + return "RDPGFX_CAPVERSION_8"; + case RDPGFX_CAPVERSION_81: + return "RDPGFX_CAPVERSION_81"; + case RDPGFX_CAPVERSION_10: + return "RDPGFX_CAPVERSION_10"; + case RDPGFX_CAPVERSION_101: + return "RDPGFX_CAPVERSION_101"; + case RDPGFX_CAPVERSION_102: + return "RDPGFX_CAPVERSION_102"; + case RDPGFX_CAPVERSION_103: + return "RDPGFX_CAPVERSION_103"; + case RDPGFX_CAPVERSION_104: + return "RDPGFX_CAPVERSION_104"; + case RDPGFX_CAPVERSION_105: + return "RDPGFX_CAPVERSION_105"; + case RDPGFX_CAPVERSION_106: + return "RDPGFX_CAPVERSION_106"; + case RDPGFX_CAPVERSION_106_ERR: + return "RDPGFX_CAPVERSION_106_ERR"; + case RDPGFX_CAPVERSION_107: + return "RDPGFX_CAPVERSION_107"; + default: + return "RDPGFX_CAPVERSION_UNKNOWN"; + } +}