FreeRDP
Loading...
Searching...
No Matches
rdpecam-enumerator.h
1
20#ifndef FREERDP_CHANNEL_CAM_DEV_ENUM_SERVER_CAM_DEV_ENUM_H
21#define FREERDP_CHANNEL_CAM_DEV_ENUM_SERVER_CAM_DEV_ENUM_H
22
23#include <freerdp/channels/rdpecam.h>
24#include <freerdp/channels/wtsvc.h>
25
26#ifdef __cplusplus
27extern "C"
28{
29#endif
30
31 typedef struct s_cam_dev_enum_server_context CamDevEnumServerContext;
32
33 typedef UINT (*psCamDevEnumServerServerOpen)(CamDevEnumServerContext* context);
34 typedef UINT (*psCamDevEnumServerServerClose)(CamDevEnumServerContext* context);
35
36 typedef BOOL (*psCamDevEnumServerServerChannelIdAssigned)(CamDevEnumServerContext* context,
37 UINT32 channelId);
38
39 typedef UINT (*psCamDevEnumServerServerInitialize)(CamDevEnumServerContext* context,
40 BOOL externalThread);
41 typedef UINT (*psCamDevEnumServerServerPoll)(CamDevEnumServerContext* context);
42 typedef BOOL (*psCamDevEnumServerServerChannelHandle)(CamDevEnumServerContext* context,
43 HANDLE* handle);
44
45 typedef UINT (*psCamDevEnumServerServerSelectVersionRequest)(
46 CamDevEnumServerContext* context, const CAM_SELECT_VERSION_REQUEST* selectVersionRequest);
47 typedef UINT (*psCamDevEnumServerServerSelectVersionResponse)(
48 CamDevEnumServerContext* context, const CAM_SELECT_VERSION_RESPONSE* selectVersionResponse);
49
50 typedef UINT (*psCamDevEnumServerServerDeviceAddedNotification)(
51 CamDevEnumServerContext* context,
52 const CAM_DEVICE_ADDED_NOTIFICATION* deviceAddedNotification);
53 typedef UINT (*psCamDevEnumServerServerDeviceRemovedNotification)(
54 CamDevEnumServerContext* context,
55 const CAM_DEVICE_REMOVED_NOTIFICATION* deviceRemovedNotification);
56
58 {
59 HANDLE vcm;
60
61 /* Server self-defined pointer. */
62 void* userdata;
63
64 /*** APIs called by the server. ***/
65
73 WINPR_ATTR_NODISCARD psCamDevEnumServerServerInitialize Initialize;
74
78 WINPR_ATTR_NODISCARD psCamDevEnumServerServerOpen Open;
79
83 WINPR_ATTR_NODISCARD psCamDevEnumServerServerClose Close;
84
90 WINPR_ATTR_NODISCARD psCamDevEnumServerServerPoll Poll;
91
96 WINPR_ATTR_NODISCARD psCamDevEnumServerServerChannelHandle ChannelHandle;
97
98 /*
99 * Send a Select Version Response PDU.
100 */
101 WINPR_ATTR_NODISCARD psCamDevEnumServerServerSelectVersionResponse SelectVersionResponse;
102
103 /*** Callbacks registered by the server. ***/
104
108 WINPR_ATTR_NODISCARD psCamDevEnumServerServerChannelIdAssigned ChannelIdAssigned;
109
113 WINPR_ATTR_NODISCARD psCamDevEnumServerServerSelectVersionRequest SelectVersionRequest;
114
118 WINPR_ATTR_NODISCARD psCamDevEnumServerServerDeviceAddedNotification
120
124 WINPR_ATTR_NODISCARD psCamDevEnumServerServerDeviceRemovedNotification
126
127 rdpContext* rdpcontext;
128 };
129
130 FREERDP_API void cam_dev_enum_server_context_free(CamDevEnumServerContext* context);
131
132 WINPR_ATTR_MALLOC(cam_dev_enum_server_context_free, 1)
133 WINPR_ATTR_NODISCARD
134 FREERDP_API CamDevEnumServerContext* cam_dev_enum_server_context_new(HANDLE vcm);
135
136#ifdef __cplusplus
137}
138#endif
139
140#endif /* FREERDP_CHANNEL_CAM_DEV_ENUM_SERVER_CAM_DEV_ENUM_H */
WINPR_ATTR_NODISCARD psCamDevEnumServerServerClose Close
WINPR_ATTR_NODISCARD psCamDevEnumServerServerInitialize Initialize
WINPR_ATTR_NODISCARD psCamDevEnumServerServerDeviceAddedNotification DeviceAddedNotification
WINPR_ATTR_NODISCARD psCamDevEnumServerServerChannelHandle ChannelHandle
WINPR_ATTR_NODISCARD psCamDevEnumServerServerPoll Poll
WINPR_ATTR_NODISCARD psCamDevEnumServerServerOpen Open
WINPR_ATTR_NODISCARD psCamDevEnumServerServerChannelIdAssigned ChannelIdAssigned
WINPR_ATTR_NODISCARD psCamDevEnumServerServerDeviceRemovedNotification DeviceRemovedNotification
WINPR_ATTR_NODISCARD psCamDevEnumServerServerSelectVersionRequest SelectVersionRequest