FreeRDP
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
29 extern "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  psGfxRedirOpen Open;
71  psGfxRedirClose Close;
72 
73  psGfxRedirError Error;
74 
75  psGfxRedirGraphicsRedirectionLegacyCaps GraphicsRedirectionLegacyCaps;
76 
77  psGfxRedirGraphicsRedirectionCapsAdvertise GraphicsRedirectionCapsAdvertise;
78  psGfxRedirGraphicsRedirectionCapsConfirm GraphicsRedirectionCapsConfirm;
79 
80  psGfxRedirOpenPool OpenPool;
81  psGfxRedirClosePool ClosePool;
82 
83  psGfxRedirCreateBuffer CreateBuffer;
84  psGfxRedirDestroyBuffer DestroyBuffer;
85 
86  psGfxRedirPresentBuffer PresentBuffer;
87  psGfxRedirPresentBufferAck PresentBufferAck;
88 
89  GfxRedirServerPrivate* priv;
90  rdpContext* rdpcontext;
91 
92  UINT32 confirmedCapsVersion;
93  };
94 
95  FREERDP_API void gfxredir_server_context_free(GfxRedirServerContext* context);
96 
97  WINPR_ATTR_MALLOC(gfxredir_server_context_free, 1)
98  FREERDP_API GfxRedirServerContext* gfxredir_server_context_new(HANDLE vcm);
99 
100 #ifdef __cplusplus
101 }
102 #endif
103 
104 #endif /* FREERDP_CHANNEL_GFXREDIR_SERVER_GFXREDIR_H */