[docs] add doxygen comments for 3.0 API

This commit is contained in:
akallabeth 2024-09-09 10:11:21 +02:00
parent 801c825e2b
commit f891bd3646
No known key found for this signature in database
GPG Key ID: A49454A3FC909FD5
28 changed files with 293 additions and 0 deletions

View File

@ -11,6 +11,11 @@
#cmakedefine AVRESAMPLE_FOUND
/* Options */
/** If set the rdpSettings struct is opaque and internals can only be accessed
* through getters/setters
*
* \version 3.0.0
*/
#cmakedefine WITH_OPAQUE_SETTINGS
#cmakedefine WITH_ADD_PLUGIN_TO_RPATH
@ -35,6 +40,10 @@
#cmakedefine WITH_OPENSLES
#cmakedefine WITH_GSM
#cmakedefine WITH_LAME
/** If defined Opus codec support is available.
*
* \version 3.0.0
*/
#cmakedefine WITH_OPUS
#cmakedefine WITH_FAAD2
#cmakedefine WITH_FAAC
@ -92,8 +101,20 @@
#cmakedefine CHANNEL_GFXREDIR
#cmakedefine CHANNEL_GFXREDIR_CLIENT
#cmakedefine CHANNEL_GFXREDIR_SERVER
/** If defined location channel support is available.
*
* \version 3.0.0
*/
#cmakedefine CHANNEL_LOCATION
/** If defined location client side channel support is available.
*
* \version 3.0.0
*/
#cmakedefine CHANNEL_LOCATION_CLIENT
/** If defined location server side channel support is available.
*
* \version 3.0.0
*/
#cmakedefine CHANNEL_LOCATION_SERVER
#cmakedefine CHANNEL_PARALLEL
#cmakedefine CHANNEL_PARALLEL_CLIENT
@ -119,8 +140,22 @@
#cmakedefine CHANNEL_RDPGFX
#cmakedefine CHANNEL_RDPGFX_CLIENT
#cmakedefine CHANNEL_RDPGFX_SERVER
/** If defined mouse cursor channel support is available.
*
* \version 3.0.0
*/
#cmakedefine CHANNEL_RDPEMSC
/** If defined mouse cursor channel support is available.
*
* \version 3.0.0
*/
#cmakedefine CHANNEL_RDPEMSC_CLIENT
/** If defined mouse cursor channel support is available.
*
* \version 3.0.0
*/
#cmakedefine CHANNEL_RDPEMSC_SERVER
#cmakedefine CHANNEL_RDPSND
#cmakedefine CHANNEL_RDPSND_CLIENT
@ -186,6 +221,10 @@
#cmakedefine WITH_PROXY_MODULES
#cmakedefine WITH_PROXY_EMULATE_SMARTCARD
/** If defined linux/vm_sockets.h support is available.
*
* \version 3.0.0
*/
#cmakedefine HAVE_AF_VSOCK_H
#endif /* FREERDP_CONFIG_H */

View File

@ -28,52 +28,92 @@ extern "C"
{
#endif
/** A list of available settings keys of type BOOL
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_BOOL@
} FreeRDP_Settings_Keys_Bool;
/** A list of available settings keys of type INT16
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_INT16@
} FreeRDP_Settings_Keys_Int16;
/** A list of available settings keys of type UINT16
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_UINT16@
} FreeRDP_Settings_Keys_UInt16;
/** A list of available settings keys of type INT32
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_INT32@
} FreeRDP_Settings_Keys_Int32;
/** A list of available settings keys of type UINT32
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_UINT32@
} FreeRDP_Settings_Keys_UInt32;
/** A list of available settings keys of type INT64
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_INT64@
} FreeRDP_Settings_Keys_Int64;
/** A list of available settings keys of type UINT64
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_UINT64@
} FreeRDP_Settings_Keys_UInt64;
/** A list of available settings keys of type STRING
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_STRING@
} FreeRDP_Settings_Keys_String;
/** A list of available settings keys of type POINTER
*
* \version 3.0.0
*/
typedef enum
{
@SETTINGS_KEYS_POINTER@
} FreeRDP_Settings_Keys_Pointer;
/** Highest indes in the rdpSettings stable API
*
* \version 3.0.0
*/
#define FreeRDP_Settings_StableAPI_MAX 5312
#ifdef __cplusplus

View File

@ -26,7 +26,16 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define AUDIN_CHANNEL_NAME "audin"
/** The name of the channel (protocol internal)
*
* \version 3.0.0
*/
#define AUDIN_DVC_CHANNEL_NAME "AUDIO_INPUT"
typedef struct

View File

@ -26,6 +26,10 @@
#include <winpr/shell.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define CLIPRDR_CHANNEL_NAME "cliprdr"
#define CLIPRDR_SVC_CHANNEL_NAME "cliprdr"

View File

@ -25,6 +25,10 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define DRDYNVC_CHANNEL_NAME "drdynvc"
#define DRDYNVC_SVC_CHANNEL_NAME "drdynvc"

View File

@ -25,6 +25,10 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define ECHO_CHANNEL_NAME "echo"
#define ECHO_DVC_CHANNEL_NAME "ECHO"

View File

@ -28,6 +28,10 @@ extern "C"
{
#endif
/** The command line name of the channel
*
* \version 3.0.0
*/
#define ENCOMSP_CHANNEL_NAME "encomsp"
#define ENCOMSP_SVC_CHANNEL_NAME "encomsp"

View File

@ -23,6 +23,10 @@
#include <winpr/wtypes.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define GEOMETRY_CHANNEL_NAME "geometry"
#define GEOMETRY_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Geometry::v08.01"

View File

@ -24,7 +24,12 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define LOCATION_CHANNEL_NAME "location"
#define LOCATION_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Location"
#ifdef __cplusplus

View File

@ -42,6 +42,10 @@ extern "C"
{
#endif
/** The command line name of the channel
*
* \version 3.0.0
*/
#define RDPDR_CHANNEL_NAME "rdpdr"
#define RDPDR_SVC_CHANNEL_NAME "rdpdr"

View File

@ -24,6 +24,10 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define RDPECAM_CHANNEL_NAME "rdpecam"
#define RDPECAM_DVC_CHANNEL_NAME "rdpecam"
#define RDPECAM_CONTROL_DVC_CHANNEL_NAME "RDCamera_Device_Enumerator"

View File

@ -31,6 +31,10 @@ extern "C"
#define RDPINPUT_HEADER_LENGTH 6
/** The command line name of the channel
*
* \version 3.0.0
*/
#define RDPEI_CHANNEL_NAME "rdpei"
#define RDPEI_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Input"

View File

@ -20,10 +20,19 @@
#ifndef FREERDP_CHANNEL_RDPEMSC_H
#define FREERDP_CHANNEL_RDPEMSC_H
/** \file [MS-RDPEMSC] Mouse Cursor Virtual Channel Extension
* \link
* https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-rdpemsc/2591b507-cd5a-4537-be29-b45540543dc8
* \version 3.0.0
*/
#include <freerdp/api.h>
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define RDPEMSC_CHANNEL_NAME "mousecursor"
#define RDPEMSC_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::MouseCursor"

View File

@ -25,6 +25,10 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define RDPEWA_CHANNEL_NAME "rdpewa"
#define RDPEWA_DVC_CHANNEL_NAME "rdpewa"

View File

@ -24,6 +24,10 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define RDPGFX_CHANNEL_NAME "rdpgfx"
#define RDPGFX_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Graphics"

View File

@ -28,6 +28,10 @@ extern "C"
{
#endif
/** The command line name of the channel
*
* \version 3.0.0
*/
#define REMDESK_CHANNEL_NAME "remdesk"
#define REMDESK_SVC_CHANNEL_NAME "remdesk"

View File

@ -24,6 +24,10 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define TELEMETRY_CHANNEL_NAME "telemetry"
#define TELEMETRY_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Telemetry"

View File

@ -30,6 +30,10 @@
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define TSMF_CHANNEL_NAME "tsmf"
#define TSMF_DVC_CHANNEL_NAME "TSMF"

View File

@ -25,6 +25,10 @@
#include <freerdp/dvc.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define URBDRC_CHANNEL_NAME "urbdrc"
#define URBDRC_DVC_CHANNEL_NAME "urbdrc"

View File

@ -23,6 +23,10 @@
#include <winpr/wtypes.h>
#include <freerdp/types.h>
/** The command line name of the channel
*
* \version 3.0.0
*/
#define VIDEO_CHANNEL_NAME "video"
#define VIDEO_CONTROL_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Video::Control::v08.01"
#define VIDEO_DATA_DVC_CHANNEL_NAME "Microsoft::Windows::RDS::Video::Data::v08.01"

View File

@ -56,6 +56,8 @@ extern "C"
* \param handle_option the handler function for custom arguments.
* \param handle_userdata custom data supplied to \b handle_option as context
*
* \version 3.0.0
*
* \return \b 0 in case of success, a negative number in case of failure.
*/
FREERDP_API int freerdp_client_settings_parse_command_line_arguments_ex(
@ -73,8 +75,22 @@ extern "C"
const COMMAND_LINE_ARGUMENT_A* custom);
FREERDP_API BOOL freerdp_client_load_addins(rdpChannels* channels, rdpSettings* settings);
/** Print a command line warning about the component being unmaintained.
*
* \version 3.0.0
*/
FREERDP_API void freerdp_client_warn_unmaintained(int argc, char* argv[]);
/** Print a command line warning about the component being experimental.
*
* \version 3.0.0
*/
FREERDP_API void freerdp_client_warn_experimental(int argc, char* argv[]);
/** Print a command line warning about the component being deprecated.
*
* \version 3.0.0
*/
FREERDP_API void freerdp_client_warn_deprecated(int argc, char* argv[]);
FREERDP_API BOOL freerdp_client_print_version(void);

View File

@ -190,6 +190,10 @@ extern "C"
#define WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS 0x1500
#define WAVE_FORMAT_DVM 0x2000
#endif /* !WAVE_FORMAT_LUCENT_G723 */
/** Opus format identifier
* \version 3.0.0
*/
#define WAVE_FORMAT_OPUS 0x704F
#define WAVE_FORMAT_AAC_MS 0xA106

View File

@ -70,6 +70,15 @@ extern "C"
FREERDP_API PROGRESSIVE_CONTEXT* progressive_context_new_ex(BOOL Compressor,
UINT32 ThreadingFlags);
/** Write a RFX message as simple progressive message to a stream.
* Forward wrapper for \link rfx_write_message_progressive_simple
* @param progressive The progressive codec context
* @param s The stream to write to
* @param msg The message to encode
*
* @version 3.0.0
* @return \b TRUE in case of success, \b FALSE for any error
*/
FREERDP_API BOOL progressive_rfx_write_message_progressive_simple(
PROGRESSIVE_CONTEXT* progressive, wStream* s, const RFX_MESSAGE* msg);

View File

@ -124,16 +124,49 @@ extern "C"
FREERDP_API BOOL rfx_context_reset(RFX_CONTEXT* context, UINT32 width, UINT32 height);
FREERDP_API BOOL rfx_context_set_mode(RFX_CONTEXT* context, RLGR_MODE mode);
/** Getter for RFX mode
* @param context The RFX context to query
*
* @version 3.0.0
*
* @return The RFX mode that is currently in use
*/
FREERDP_API RLGR_MODE rfx_context_get_mode(RFX_CONTEXT* context);
FREERDP_API void rfx_context_set_pixel_format(RFX_CONTEXT* context, UINT32 pixel_format);
/** Getter for RFX pixel format
* @param context The RFX context to query
*
* @version 3.0.0
*
* @return The RFX pixel format that is currently in use
*/
FREERDP_API UINT32 rfx_context_get_pixel_format(RFX_CONTEXT* context);
FREERDP_API void rfx_context_set_palette(RFX_CONTEXT* context, const BYTE* palette);
/** Getter for RFX palette
* @param context The RFX context to query
*
* @version 3.0.0
*
* @return The RFX palette that is currently in use or \b NULL
*/
FREERDP_API const BYTE* rfx_context_get_palette(RFX_CONTEXT* context);
FREERDP_API UINT32 rfx_context_get_frame_idx(const RFX_CONTEXT* context);
/** Write a RFX message as simple progressive message to a stream.
*
* @param rfx The RFX codec context
* @param s The stream to write to
* @param msg The message to encode
*
* @version 3.0.0
* @return \b TRUE in case of success, \b FALSE for any error
*/
FREERDP_API BOOL rfx_write_message_progressive_simple(RFX_CONTEXT* rfx, wStream* s,
const RFX_MESSAGE* msg);

View File

@ -62,6 +62,16 @@ extern "C"
FREERDP_API const char*
freerdp_certificate_store_get_hosts_path(const rdpCertificateStore* store);
/** Query the certificate store path
*
* @param store The certificate store to query
* @param host The hostname to look up
* @param port The port to look up
*
* @version 3.0.0
*
* @return The certificate store file path or \b NULL
*/
FREERDP_API char* freerdp_certificate_store_get_cert_path(const rdpCertificateStore* store,
const char* host, UINT16 port);

View File

@ -39,6 +39,17 @@ extern "C"
typedef struct rdp_CertInfo rdpCertInfo;
FREERDP_API char* crypto_base64_encode(const BYTE* WINPR_RESTRICT data, size_t length);
/** BASE64 encode data
*
* @param data The data to encode
* @param length The lenght of the data in bytes
* @param withCrLf Option to split the encoded data with CRLF linebreaks
*
* @version 3.0.0
*
* @return The encoded BASE64 string or \b NULL if failed
*/
FREERDP_API char* crypto_base64_encode_ex(const BYTE* WINPR_RESTRICT data, size_t length,
BOOL withCrLf);

View File

@ -21,6 +21,9 @@
#ifndef FREERDP_UTILS_AAD_H
#define FREERDP_UTILS_AAD_H
/** \file AAD related helper utilities
* \version 3.0.0
*/
#include <winpr/wlog.h>
#include <freerdp/api.h>
@ -28,6 +31,15 @@
#ifdef WITH_AAD
/** Helper to retrieve the AAD access token from JSON input
*
* @param data The JSON to parse
* @param length The number of bytes of the JSON data
*
* @version 3.0.0
*
* @return The token string or \b NULL
*/
FREERDP_API char* freerdp_utils_aad_get_access_token(wLog* log, const char* data, size_t length);
#endif

View File

@ -21,6 +21,10 @@
#ifndef FREERDP_UTILS_ENCODED_TYPES_H
#define FREERDP_UTILS_ENCODED_TYPES_H
/** \file Encoded Types helpers
* \version 3.0.0
*/
#include <freerdp/api.h>
#include <winpr/stream.h>
@ -29,15 +33,47 @@ extern "C"
{
#endif
/** Maximum value of a 4 byte signed integer
* \version 3.x.0
*/
#define FREERDP_FOUR_BYTE_SIGNED_INT_MAX 0x1FFFFFFFl
/** Minimum value of a 4 byte signed integer
* \version 3.x.0
*/
#define FREERDP_FOUR_BYTE_SIGNED_INT_MIN -0x1FFFFFFFl
/** Maximum value of a 4 byte float
* \version 3.x.0
*/
#define FREERDP_FOUR_BYTE_FLOAT_MAX 0x3FFFFFF
/** Minimum value of a 4 byte float
* \version 3.x.0
*/
#define FREERDP_FOUR_BYTE_FLOAT_MIN -0x3FFFFFF
/** Read a 4 byte signed integer from a stream and store the decoded value
*
* @param s The steam to read from
* @param value A pointer to an INT32 to hold the result
*
* @version 3.0.0
*
* @return \bTRUE for successful reading, \b FALSE otherwise
*/
FREERDP_API BOOL freerdp_read_four_byte_signed_integer(wStream* s, INT32* value);
FREERDP_API BOOL freerdp_write_four_byte_signed_integer(wStream* s, INT32 value);
/** Read a 4 byte float from a stream and store the decoded value
*
* @param s The steam to read from
* @param value A pointer to a double to hold the result
*
* @version 3.0.0
*
* @return \bTRUE for successful reading, \b FALSE otherwise
*/
FREERDP_API BOOL freerdp_read_four_byte_float(wStream* s, double* value);
FREERDP_API BOOL freerdp_read_four_byte_float_exp(wStream* s, double* value, BYTE* exp);
FREERDP_API BOOL freerdp_write_four_byte_float(wStream* s, double value);