diff --git a/include/freerdp/channels/disp.h b/include/freerdp/channels/disp.h index 8e08bf263..9d66363e7 100644 --- a/include/freerdp/channels/disp.h +++ b/include/freerdp/channels/disp.h @@ -30,10 +30,6 @@ #define DISP_CHANNEL_NAME "disp" #define DISP_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::DisplayControl" -#define ORIENTATION_LANDSCAPE 0 -#define ORIENTATION_PORTRAIT 90 -#define ORIENTATION_LANDSCAPE_FLIPPED 180 -#define ORIENTATION_PORTRAIT_FLIPPED 270 #define DISPLAY_CONTROL_MONITOR_PRIMARY 0x00000001 #define DISPLAY_CONTROL_HEADER_LENGTH 0x00000008 diff --git a/include/freerdp/settings_types.h b/include/freerdp/settings_types.h index 33f426cc9..8c5947c92 100644 --- a/include/freerdp/settings_types.h +++ b/include/freerdp/settings_types.h @@ -326,10 +326,13 @@ extern "C" #define PACKET_COMPR_TYPE_RDP8 0x04 /* Desktop Rotation Flags */ -#define ORIENTATION_LANDSCAPE 0 -#define ORIENTATION_PORTRAIT 90 -#define ORIENTATION_LANDSCAPE_FLIPPED 180 -#define ORIENTATION_PORTRAIT_FLIPPED 270 +enum FreeRDP_DesktopRotationFlags +{ + ORIENTATION_LANDSCAPE = 0, + ORIENTATION_PORTRAIT = 90, + ORIENTATION_LANDSCAPE_FLIPPED = 180, + ORIENTATION_PORTRAIT_FLIPPED = 270 +}; /* Clipboard feature mask */ #define CLIPRDR_FLAG_LOCAL_TO_REMOTE 0x01 diff --git a/include/freerdp/utils/string.h b/include/freerdp/utils/string.h index 41f28ec05..097e2dc2a 100644 --- a/include/freerdp/utils/string.h +++ b/include/freerdp/utils/string.h @@ -47,6 +47,15 @@ extern "C" */ FREERDP_API BOOL freerdp_extract_key_value(const char* str, UINT32* pkey, UINT32* pvalue); + /** @brief Convert \ref FreeRDP_DesktopRotationFlags to string + * + * @param flags The value to convert + * @return A constant string representation of \ref flags or the string \b ORIENTATION_UNKNOWN + * for an invalid value + * @since verstion 3.22.0 + */ + FREERDP_API WINPR_ATTR_NODISCARD const char* + freerdp_desktop_rotation_flags_to_string(UINT32 flags); #ifdef __cplusplus } #endif diff --git a/libfreerdp/utils/string.c b/libfreerdp/utils/string.c index f7c97e206..a55a99b0f 100644 --- a/libfreerdp/utils/string.c +++ b/libfreerdp/utils/string.c @@ -126,3 +126,22 @@ BOOL freerdp_extract_key_value(const char* str, UINT32* pkey, UINT32* pvalue) *pvalue = (UINT32)val; return TRUE; } + +const char* freerdp_desktop_rotation_flags_to_string(UINT32 flags) +{ +#define ENTRY(x) \ + case x: \ + return #x + + switch (flags) + { + ENTRY(ORIENTATION_LANDSCAPE); + ENTRY(ORIENTATION_PORTRAIT); + ENTRY(ORIENTATION_LANDSCAPE_FLIPPED); + ENTRY(ORIENTATION_PORTRAIT_FLIPPED); + default: + return "ORIENTATION_UNKNOWN"; + } +#undef ENTRY +} +