* Audio Format Functions
*/
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API UINT32 rdpsnd_compute_audio_time_length(AUDIO_FORMAT* format, int size);
FREERDP_API char* rdpsnd_get_audio_tag_string(UINT16 wFormatTag);
FREERDP_API void rdpsnd_free_audio_formats(AUDIO_FORMAT* formats, UINT16 count);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CODEC_AUDIO_H */
wStream* bts;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int interleaved_decompress(BITMAP_INTERLEAVED_CONTEXT* interleaved, BYTE* pSrcData, UINT32 SrcSize, int bpp,
BYTE** ppDstData, DWORD DstFormat, int nDstStep, int nXDst, int nYDst, int nWidth, int nHeight, BYTE* palette);
FREERDP_API BITMAP_INTERLEAVED_CONTEXT* bitmap_interleaved_context_new(BOOL Compressor);
FREERDP_API void bitmap_interleaved_context_free(BITMAP_INTERLEAVED_CONTEXT* interleaved);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CODEC_INTERLEAVED_H */
#include <freerdp/api.h>
#include <freerdp/types.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API BOOL jpeg_decompress(BYTE* input, BYTE* output, int width, int height, int size, int bpp);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CODEC_JPEG_H */
BYTE* TempBuffer;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int freerdp_split_color_planes(BYTE* data, UINT32 format, int width, int height, int scanline, BYTE* planes[4]);
FREERDP_API BYTE* freerdp_bitmap_planar_compress_plane_rle(BYTE* plane, int width, int height, BYTE* outPlane, int* dstSize);
FREERDP_API BYTE* freerdp_bitmap_planar_delta_encode_plane(BYTE* inPlane, int width, int height, BYTE* outPlane);
FREERDP_API int planar_decompress(BITMAP_PLANAR_CONTEXT* planar, BYTE* pSrcData, UINT32 SrcSize,
BYTE** ppDstData, DWORD DstFormat, int nDstStep, int nXDst, int nYDst, int nWidth, int nHeight, BOOL vFlip);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CODEC_PLANAR_H */
BITMAP_INTERLEAVED_CONTEXT* interleaved;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int freerdp_client_codecs_prepare(rdpCodecs* codecs, UINT32 flags);
FREERDP_API int freerdp_client_codecs_reset(rdpCodecs* codecs, UINT32 flags);
FREERDP_API rdpCodecs* codecs_new(rdpContext* context);
FREERDP_API void codecs_free(rdpCodecs* codecs);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CODECS_H */
#define BER_PC(_pc) (_pc ? BER_CONSTRUCT : BER_PRIMITIVE)
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API BOOL ber_read_length(wStream* s, int* length);
FREERDP_API int ber_write_length(wStream* s, int length);
FREERDP_API int _ber_sizeof_length(int length);
FREERDP_API BOOL ber_read_integer_length(wStream* s, int* length);
FREERDP_API int ber_sizeof_integer(UINT32 value);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CRYPTO_BER_H */
rdpCertificateData* certificate_data;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API rdpCertificateData* certificate_data_new(char* hostname, char* fingerprint);
FREERDP_API void certificate_data_free(rdpCertificateData* certificate_data);
FREERDP_API rdpCertificateStore* certificate_store_new(rdpSettings* settings);
FREERDP_API int certificate_data_match(rdpCertificateStore* certificate_store, rdpCertificateData* certificate_data);
FREERDP_API void certificate_data_print(rdpCertificateStore* certificate_store, rdpCertificateData* certificate_data);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CRYPTO_CERTIFICATE_H */
X509 * px509;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
#define CRYPTO_SHA1_DIGEST_LENGTH SHA_DIGEST_LENGTH
typedef struct crypto_sha1_struct* CryptoSha1;
FREERDP_API char* crypto_base64_encode(const BYTE* data, int length);
FREERDP_API void crypto_base64_decode(const char* enc_data, int length, BYTE** dec_data, int* res_length);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CRYPTO_H */
#include <freerdp/crypto/er.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int _der_skip_length(int length);
FREERDP_API int der_write_length(wStream* s, int length);
FREERDP_API int der_get_content_length(int length);
FREERDP_API int der_write_contextual_tag(wStream* s, BYTE tag, int length, BOOL pc);
FREERDP_API void der_write_octet_string(wStream* s, BYTE* oct_str, int length);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CRYPTO_DER_H */
#define ER_PC(_pc) (_pc ? ER_CONSTRUCT : ER_PRIMITIVE)
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API void er_read_length(wStream* s, int* length);
FREERDP_API int er_write_length(wStream* s, int length, BOOL flag);
FREERDP_API int _er_skip_length(int length);
FREERDP_API BOOL er_read_integer_length(wStream* s, int* length);
FREERDP_API int er_skip_integer(INT32 value);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CRYPTO_ER_H */
#include <winpr/stream.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API BOOL per_read_length(wStream* s, UINT16* length);
FREERDP_API void per_write_length(wStream* s, int length);
FREERDP_API BOOL per_read_choice(wStream* s, BYTE* choice);
FREERDP_API BOOL per_read_numeric_string(wStream* s, int min);
FREERDP_API void per_write_numeric_string(wStream* s, BYTE* num_str, int length, int min);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CRYPTO_PER_H */
BOOL isGatewayTransport;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int tls_connect(rdpTls* tls, BIO *underlying);
FREERDP_API BOOL tls_accept(rdpTls* tls, BIO *underlying, const char* cert_file, const char* privatekey_file);
FREERDP_API BOOL tls_disconnect(rdpTls* tls);
FREERDP_API rdpTls* tls_new(rdpSettings* settings);
FREERDP_API void tls_free(rdpTls* tls);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CRYPTO_TLS_H */
typedef int (*pLineTo_16bpp)(HGDI_DC hdc, int nXEnd, int nYEnd);
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API UINT16 gdi_get_color_16bpp(HGDI_DC hdc, GDI_COLOR color);
FREERDP_API int FillRect_16bpp(HGDI_DC hdc, HGDI_RECT rect, HGDI_BRUSH hbr);
FREERDP_API int PatBlt_16bpp(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, int rop);
FREERDP_API int LineTo_16bpp(HGDI_DC hdc, int nXEnd, int nYEnd);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_16BPP_H */
typedef int (*pLineTo_32bpp)(HGDI_DC hdc, int nXEnd, int nYEnd);
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API UINT32 gdi_get_color_32bpp(HGDI_DC hdc, GDI_COLOR color);
FREERDP_API int FillRect_32bpp(HGDI_DC hdc, HGDI_RECT rect, HGDI_BRUSH hbr);
FREERDP_API int PatBlt_32bpp(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, int rop);
FREERDP_API int LineTo_32bpp(HGDI_DC hdc, int nXEnd, int nYEnd);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_32BPP_H */
typedef int (*pLineTo_8bpp)(HGDI_DC hdc, int nXEnd, int nYEnd);
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API BYTE gdi_get_color_8bpp(HGDI_DC hdc, GDI_COLOR color);
FREERDP_API int FillRect_8bpp(HGDI_DC hdc, HGDI_RECT rect, HGDI_BRUSH hbr);
FREERDP_API int PatBlt_8bpp(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, int rop);
FREERDP_API int LineTo_8bpp(HGDI_DC hdc, int nXEnd, int nYEnd);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_8BPP_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API GDI_COLOR gdi_GetPixel(HGDI_DC hdc, int nXPos, int nYPos);
FREERDP_API GDI_COLOR gdi_SetPixel(HGDI_DC hdc, int X, int Y, GDI_COLOR crColor);
FREERDP_API BYTE gdi_GetPixel_8bpp(HGDI_BITMAP hBmp, int X, int Y);
typedef int (*p_BitBlt)(HGDI_DC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HGDI_DC hdcSrc, int nXSrc, int nYSrc, int rop);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_BITMAP_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API HGDI_BRUSH gdi_CreateSolidBrush(GDI_COLOR crColor);
FREERDP_API HGDI_BRUSH gdi_CreatePatternBrush(HGDI_BITMAP hbmp);
FREERDP_API HGDI_BRUSH gdi_CreateHatchBrush(HGDI_BITMAP hbmp);
FREERDP_API int gdi_PatBlt(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, int rop);
+#ifdef __cplusplus
+ }
+#endif
+
typedef int (*p_PatBlt)(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, int rop);
#endif /* FREERDP_GDI_BRUSH_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int gdi_SetClipRgn(HGDI_DC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight);
FREERDP_API HGDI_RGN gdi_GetClipRgn(HGDI_DC hdc);
FREERDP_API int gdi_SetNullClipRgn(HGDI_DC hdc);
FREERDP_API int gdi_ClipCoords(HGDI_DC hdc, int *x, int *y, int *w, int *h, int *srcx, int *srcy);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_CLIPPING_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API HGDI_DC gdi_GetDC(void);
FREERDP_API HGDI_DC gdi_CreateDC(UINT32 flags, int bpp);
FREERDP_API HGDI_DC gdi_CreateCompatibleDC(HGDI_DC hdc);
FREERDP_API int gdi_DeleteObject(HGDIOBJECT hgdiobject);
FREERDP_API int gdi_DeleteDC(HGDI_DC hdc);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_DC_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int gdi_GetROP2(HGDI_DC hdc);
FREERDP_API int gdi_SetROP2(HGDI_DC hdc, int fnDrawMode);
FREERDP_API GDI_COLOR gdi_GetBkColor(HGDI_DC hdc);
FREERDP_API int gdi_SetBkMode(HGDI_DC hdc, int iBkMode);
FREERDP_API GDI_COLOR gdi_SetTextColor(HGDI_DC hdc, GDI_COLOR crColor);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_DRAWING_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int gdi_LineTo(HGDI_DC hdc, int nXEnd, int nYEnd);
FREERDP_API int gdi_PolylineTo(HGDI_DC hdc, GDI_POINT *lppt, int cCount);
FREERDP_API int gdi_Polyline(HGDI_DC hdc, GDI_POINT *lppt, int cPoints);
FREERDP_API int gdi_PolyPolyline(HGDI_DC hdc, GDI_POINT *lppt, int *lpdwPolyPoints, int cCount);
FREERDP_API int gdi_MoveToEx(HGDI_DC hdc, int X, int Y, HGDI_POINT lpPoint);
+#ifdef __cplusplus
+ }
+#endif
+
typedef int (*p_LineTo)(HGDI_DC hdc, int nXEnd, int nYEnd);
#endif /* FREERDP_GDI_LINE_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API HGDI_PALETTE gdi_CreatePalette(HGDI_PALETTE palette);
FREERDP_API HGDI_PALETTE gdi_GetSystemPalette(void);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_PALETTE_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API HGDI_PEN gdi_CreatePen(int fnPenStyle, int nWidth, int crColor);
FREERDP_API BYTE gdi_GetPenColor_8bpp(HGDI_PEN pen);
FREERDP_API UINT16 gdi_GetPenColor_16bpp(HGDI_PEN pen);
FREERDP_API UINT32 gdi_GetPenColor_32bpp(HGDI_PEN pen);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_PEN_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API HGDI_RGN gdi_CreateRectRgn(int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
FREERDP_API HGDI_RECT gdi_CreateRect(int xLeft, int yTop, int xRight, int yBottom);
FREERDP_API void gdi_RectToRgn(HGDI_RECT rect, HGDI_RGN rgn);
FREERDP_API int gdi_PtInRect(HGDI_RECT rc, int x, int y);
FREERDP_API int gdi_InvalidateRegion(HGDI_DC hdc, int x, int y, int w, int h);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_REGION_H */
#include <freerdp/api.h>
#include <freerdp/gdi/gdi.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API int gdi_Ellipse(HGDI_DC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect);
FREERDP_API int gdi_FillRect(HGDI_DC hdc, HGDI_RECT rect, HGDI_BRUSH hbr);
FREERDP_API int gdi_Polygon(HGDI_DC hdc, GDI_POINT *lpPoints, int nCount);
typedef int (*p_FillRect)(HGDI_DC hdc, HGDI_RECT rect, HGDI_BRUSH hbr);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_GDI_SHAPE_H */
#define YORUBA 0x046A
#define ZULU 0x0435
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API DWORD freerdp_get_system_locale_id(void);
FREERDP_API const char* freerdp_get_system_locale_name_from_id(DWORD localeId);
FREERDP_API int freerdp_detect_keyboard_layout_from_system_locale(DWORD* keyboardLayoutId);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_LOCALE_H */
#include <freerdp/types.h>
#include <freerdp/settings.h>
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API void freerdp_time_zone_detect(TIME_ZONE_INFO* clientTimeZone);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_LOCALE_TIMEZONE_H */
double TotalCompressionRatio;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API double metrics_write_bytes(rdpMetrics* metrics, UINT32 UncompressedBytes, UINT32 CompressedBytes);
FREERDP_API rdpMetrics* metrics_new(rdpContext* context);
FREERDP_API void metrics_free(rdpMetrics* metrics);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_METRICS_H */
CliprdrServerPrivate* priv;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API CliprdrServerContext* cliprdr_server_context_new(HANDLE vcm);
FREERDP_API void cliprdr_server_context_free(CliprdrServerContext* context);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CHANNEL_SERVER_CLIPRDR_H */
DrdynvcServerPrivate* priv;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API DrdynvcServerContext* drdynvc_server_context_new(HANDLE vcm);
FREERDP_API void drdynvc_server_context_free(DrdynvcServerContext* context);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CHANNEL_SERVER_DRDYNVC_H */
EncomspServerPrivate* priv;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API EncomspServerContext* encomsp_server_context_new(HANDLE vcm);
FREERDP_API void encomsp_server_context_free(EncomspServerContext* context);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CHANNEL_SERVER_ENCOMSP_H */
RdpdrServerPrivate* priv;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API RdpdrServerContext* rdpdr_server_context_new(HANDLE vcm);
FREERDP_API void rdpdr_server_context_free(RdpdrServerContext* context);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CHANNEL_SERVER_RDPDR_H */
RemdeskServerPrivate* priv;
};
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
FREERDP_API RemdeskServerContext* remdesk_server_context_new(HANDLE vcm);
FREERDP_API void remdesk_server_context_free(RemdeskServerContext* context);
+#ifdef __cplusplus
+ }
+#endif
+
#endif /* FREERDP_CHANNEL_SERVER_REMDESK_H */