FreeRDP
Loading...
Searching...
No Matches
zgfx.h
1
20#ifndef FREERDP_CODEC_ZGFX_H
21#define FREERDP_CODEC_ZGFX_H
22
23#include <freerdp/api.h>
24#include <freerdp/types.h>
25
26#include <freerdp/codec/bulk.h>
27
28#define ZGFX_SEGMENTED_SINGLE 0xE0
29#define ZGFX_SEGMENTED_MULTIPART 0xE1
30
31#define ZGFX_PACKET_COMPR_TYPE_RDP8 0x04
32
33#define ZGFX_SEGMENTED_MAXSIZE 65535
34
35#ifdef __cplusplus
36extern "C"
37{
38#endif
39
40 typedef struct S_ZGFX_CONTEXT ZGFX_CONTEXT;
41
42 WINPR_ATTR_NODISCARD
43 FREERDP_API int zgfx_decompress(ZGFX_CONTEXT* WINPR_RESTRICT zgfx,
44 const BYTE* WINPR_RESTRICT pSrcData, UINT32 SrcSize,
45 BYTE** WINPR_RESTRICT ppDstData,
46 UINT32* WINPR_RESTRICT pDstSize, UINT32 flags);
47
48 WINPR_ATTR_NODISCARD
49 FREERDP_API int zgfx_compress(ZGFX_CONTEXT* WINPR_RESTRICT zgfx,
50 const BYTE* WINPR_RESTRICT pSrcData, UINT32 SrcSize,
51 BYTE** WINPR_RESTRICT ppDstData, UINT32* WINPR_RESTRICT pDstSize,
52 UINT32* WINPR_RESTRICT pFlags);
53
54 WINPR_ATTR_NODISCARD
55 FREERDP_API int zgfx_compress_to_stream(ZGFX_CONTEXT* WINPR_RESTRICT zgfx,
56 wStream* WINPR_RESTRICT sDst,
57 const BYTE* WINPR_RESTRICT pUncompressed,
58 UINT32 uncompressedSize, UINT32* WINPR_RESTRICT pFlags);
59
60 FREERDP_API void zgfx_context_reset(ZGFX_CONTEXT* WINPR_RESTRICT zgfx, BOOL flush);
61
62 FREERDP_API void zgfx_context_free(ZGFX_CONTEXT* zgfx);
63
64 WINPR_ATTR_MALLOC(zgfx_context_free, 1)
65 WINPR_ATTR_NODISCARD
66 FREERDP_API ZGFX_CONTEXT* zgfx_context_new(BOOL Compressor);
67
68#ifdef __cplusplus
69}
70#endif
71
72#endif /* FREERDP_CODEC_ZGFX_H */