FreeRDP
Loading...
Searching...
No Matches
server/gfxredir.h
1
20#ifndef FREERDP_CHANNEL_GFXREDIR_SERVER_GFXREDIR_H
21#define FREERDP_CHANNEL_GFXREDIR_SERVER_GFXREDIR_H
22
23#include <freerdp/channels/gfxredir.h>
24
25#include <freerdp/api.h>
26#include <freerdp/types.h>
27
28#ifdef __cplusplus
29extern "C"
30{
31#endif
32
33 typedef struct s_gfxredir_server_private GfxRedirServerPrivate;
34 typedef struct s_gfxredir_server_context GfxRedirServerContext;
35
36 typedef UINT (*psGfxRedirOpen)(GfxRedirServerContext* context);
37 typedef UINT (*psGfxRedirClose)(GfxRedirServerContext* context);
38
39 typedef UINT (*psGfxRedirError)(GfxRedirServerContext* context,
40 const GFXREDIR_ERROR_PDU* error);
41
42 typedef UINT (*psGfxRedirGraphicsRedirectionLegacyCaps)(
43 GfxRedirServerContext* context, const GFXREDIR_LEGACY_CAPS_PDU* graphicsCaps);
44
45 typedef UINT (*psGfxRedirGraphicsRedirectionCapsAdvertise)(
46 GfxRedirServerContext* context, const GFXREDIR_CAPS_ADVERTISE_PDU* graphicsCapsAdvertise);
47 typedef UINT (*psGfxRedirGraphicsRedirectionCapsConfirm)(
48 GfxRedirServerContext* context, const GFXREDIR_CAPS_CONFIRM_PDU* graphicsCapsConfirm);
49
50 typedef UINT (*psGfxRedirOpenPool)(GfxRedirServerContext* context,
51 const GFXREDIR_OPEN_POOL_PDU* openPool);
52 typedef UINT (*psGfxRedirClosePool)(GfxRedirServerContext* context,
53 const GFXREDIR_CLOSE_POOL_PDU* closePool);
54
55 typedef UINT (*psGfxRedirCreateBuffer)(GfxRedirServerContext* context,
56 const GFXREDIR_CREATE_BUFFER_PDU* createBuffer);
57 typedef UINT (*psGfxRedirDestroyBuffer)(GfxRedirServerContext* context,
58 const GFXREDIR_DESTROY_BUFFER_PDU* destroyBuffer);
59
60 typedef UINT (*psGfxRedirPresentBuffer)(GfxRedirServerContext* context,
61 const GFXREDIR_PRESENT_BUFFER_PDU* presentBuffer);
62 typedef UINT (*psGfxRedirPresentBufferAck)(
63 GfxRedirServerContext* context, const GFXREDIR_PRESENT_BUFFER_ACK_PDU* presentBufferAck);
64
66 {
67 void* custom;
68 HANDLE vcm;
69
70 WINPR_ATTR_NODISCARD psGfxRedirOpen Open;
71 WINPR_ATTR_NODISCARD psGfxRedirClose Close;
72
73 WINPR_ATTR_NODISCARD psGfxRedirError Error;
74
75 WINPR_ATTR_NODISCARD psGfxRedirGraphicsRedirectionLegacyCaps GraphicsRedirectionLegacyCaps;
76
77 WINPR_ATTR_NODISCARD psGfxRedirGraphicsRedirectionCapsAdvertise
78 GraphicsRedirectionCapsAdvertise;
79 WINPR_ATTR_NODISCARD psGfxRedirGraphicsRedirectionCapsConfirm
80 GraphicsRedirectionCapsConfirm;
81
82 WINPR_ATTR_NODISCARD psGfxRedirOpenPool OpenPool;
83 WINPR_ATTR_NODISCARD psGfxRedirClosePool ClosePool;
84
85 WINPR_ATTR_NODISCARD psGfxRedirCreateBuffer CreateBuffer;
86 WINPR_ATTR_NODISCARD psGfxRedirDestroyBuffer DestroyBuffer;
87
88 WINPR_ATTR_NODISCARD psGfxRedirPresentBuffer PresentBuffer;
89 WINPR_ATTR_NODISCARD psGfxRedirPresentBufferAck PresentBufferAck;
90
91 GfxRedirServerPrivate* priv;
92 rdpContext* rdpcontext;
93
94 UINT32 confirmedCapsVersion;
95 };
96
97 FREERDP_API void gfxredir_server_context_free(GfxRedirServerContext* context);
98
99 WINPR_ATTR_MALLOC(gfxredir_server_context_free, 1)
100 WINPR_ATTR_NODISCARD
101 FREERDP_API GfxRedirServerContext* gfxredir_server_context_new(HANDLE vcm);
102
103#ifdef __cplusplus
104}
105#endif
106
107#endif /* FREERDP_CHANNEL_GFXREDIR_SERVER_GFXREDIR_H */