FreeRDP
Loading...
Searching...
No Matches
server/audin.h
1
23#ifndef FREERDP_CHANNEL_AUDIN_SERVER_H
24#define FREERDP_CHANNEL_AUDIN_SERVER_H
25
26#include <freerdp/config.h>
27
28#include <freerdp/channels/audin.h>
29#include <freerdp/channels/wtsvc.h>
30
31#if !defined(CHANNEL_AUDIN_SERVER)
32#error "This header must not be included if CHANNEL_AUDIN_SERVER is not defined"
33#endif
34
35#ifdef __cplusplus
36extern "C"
37{
38#endif
39
40 typedef struct s_audin_server_context audin_server_context;
41
42 typedef BOOL (*psAudinServerChannelOpen)(audin_server_context* context);
43 typedef BOOL (*psAudinServerChannelIsOpen)(audin_server_context* context);
44 typedef BOOL (*psAudinServerChannelClose)(audin_server_context* context);
45
46 typedef BOOL (*psAudinServerChannelIdAssigned)(audin_server_context* context, UINT32 channelId);
47
48 typedef UINT (*psAudinServerVersion)(audin_server_context* context,
49 const SNDIN_VERSION* version);
50 typedef UINT (*psAudinServerFormats)(audin_server_context* context,
51 const SNDIN_FORMATS* formats);
52 typedef UINT (*psAudinServerOpen)(audin_server_context* context, const SNDIN_OPEN* open);
53 typedef UINT (*psAudinServerOpenReply)(audin_server_context* context,
54 const SNDIN_OPEN_REPLY* open_reply);
55 typedef UINT (*psAudinServerIncomingData)(audin_server_context* context,
56 const SNDIN_DATA_INCOMING* data_incoming);
57 typedef UINT (*psAudinServerData)(audin_server_context* context, const SNDIN_DATA* data);
58 typedef UINT (*psAudinServerFormatChange)(audin_server_context* context,
59 const SNDIN_FORMATCHANGE* format_change);
60
62 {
63 HANDLE vcm;
64
65 /* Server self-defined pointer. */
66 void* userdata;
67
72 SNDIN_VERSION_Version serverVersion;
73
74 /*** APIs called by the server. ***/
75
79 WINPR_ATTR_NODISCARD psAudinServerChannelOpen Open;
80
84 WINPR_ATTR_NODISCARD psAudinServerChannelIsOpen IsOpen;
85
89 WINPR_ATTR_NODISCARD psAudinServerChannelClose Close;
90
99 WINPR_ATTR_NODISCARD psAudinServerVersion SendVersion;
100
104 WINPR_ATTR_NODISCARD psAudinServerFormats SendFormats;
105
109 WINPR_ATTR_NODISCARD psAudinServerOpen SendOpen;
110
114 WINPR_ATTR_NODISCARD psAudinServerFormatChange SendFormatChange;
115
116 /*** Callbacks registered by the server. ***/
117
121 WINPR_ATTR_NODISCARD psAudinServerChannelIdAssigned ChannelIdAssigned;
122
123 /*
124 * Callback for the Version PDU.
125 */
126 WINPR_ATTR_NODISCARD psAudinServerVersion ReceiveVersion;
127
128 /*
129 * Callback for the Sound Formats PDU.
130 */
131 WINPR_ATTR_NODISCARD psAudinServerFormats ReceiveFormats;
132
133 /*
134 * Callback for the Open Reply PDU.
135 */
136 WINPR_ATTR_NODISCARD psAudinServerOpenReply OpenReply;
137
138 /*
139 * Callback for the Incoming Data PDU.
140 */
141 WINPR_ATTR_NODISCARD psAudinServerIncomingData IncomingData;
142
143 /*
144 * Callback for the Data PDU.
145 */
146 WINPR_ATTR_NODISCARD psAudinServerData Data;
147
148 /*
149 * Callback for the Format Change PDU.
150 */
151 WINPR_ATTR_NODISCARD psAudinServerFormatChange ReceiveFormatChange;
152
153 rdpContext* rdpcontext;
154 };
155
156 FREERDP_API void audin_server_context_free(audin_server_context* context);
157
158 WINPR_ATTR_MALLOC(audin_server_context_free, 1)
159 WINPR_ATTR_NODISCARD
160 FREERDP_API audin_server_context* audin_server_context_new(HANDLE vcm);
161
170 WINPR_ATTR_NODISCARD
171 FREERDP_API BOOL audin_server_set_formats(audin_server_context* context, SSIZE_T count,
172 const AUDIO_FORMAT* formats);
173
174 WINPR_ATTR_NODISCARD
175 FREERDP_API const AUDIO_FORMAT*
176 audin_server_get_negotiated_format(const audin_server_context* context);
177
178#ifdef __cplusplus
179}
180#endif
181
182#endif /* FREERDP_CHANNEL_AUDIN_SERVER_H */
WINPR_ATTR_NODISCARD psAudinServerOpen SendOpen
WINPR_ATTR_NODISCARD psAudinServerChannelOpen Open
WINPR_ATTR_NODISCARD psAudinServerFormats SendFormats
WINPR_ATTR_NODISCARD psAudinServerChannelClose Close
WINPR_ATTR_NODISCARD psAudinServerChannelIsOpen IsOpen
WINPR_ATTR_NODISCARD psAudinServerChannelIdAssigned ChannelIdAssigned
WINPR_ATTR_NODISCARD psAudinServerFormatChange SendFormatChange
WINPR_ATTR_NODISCARD psAudinServerVersion SendVersion
SNDIN_VERSION_Version serverVersion