FreeRDP
Loading...
Searching...
No Matches
client/audin.h
1
22#ifndef FREERDP_CHANNEL_AUDIN_CLIENT_AUDIN_H
23#define FREERDP_CHANNEL_AUDIN_CLIENT_AUDIN_H
24
25#include <freerdp/api.h>
26#include <freerdp/types.h>
27
28#include <freerdp/channels/audin.h>
29#include <freerdp/codec/audio.h>
30
31#ifdef __cplusplus
32extern "C"
33{
34#endif
35
40 typedef UINT (*AudinReceive)(const AUDIO_FORMAT* format, const BYTE* data, size_t size,
41 void* userData);
42
43 typedef struct s_IAudinDevice IAudinDevice;
45 {
46 WINPR_ATTR_NODISCARD UINT (*Open)(IAudinDevice* devplugin, AudinReceive receive,
47 void* userData);
48 WINPR_ATTR_NODISCARD BOOL (*FormatSupported)(IAudinDevice* devplugin,
49 const AUDIO_FORMAT* format);
50 WINPR_ATTR_NODISCARD UINT (*SetFormat)(IAudinDevice* devplugin, const AUDIO_FORMAT* format,
51 UINT32 FramesPerPacket);
52 WINPR_ATTR_NODISCARD UINT (*Close)(IAudinDevice* devplugin);
53 WINPR_ATTR_NODISCARD UINT (*Free)(IAudinDevice* devplugin);
54 };
55
56#define AUDIN_DEVICE_EXPORT_FUNC_NAME "freerdp_audin_client_subsystem_entry"
57
58 typedef UINT (*PREGISTERAUDINDEVICE)(IWTSPlugin* plugin, IAudinDevice* device);
59
60 typedef struct
61 {
62 IWTSPlugin* plugin;
63 WINPR_ATTR_NODISCARD PREGISTERAUDINDEVICE pRegisterAudinDevice;
64 const ADDIN_ARGV* args;
65 rdpContext* rdpcontext;
68
69typedef UINT(VCAPITYPE* PFREERDP_AUDIN_DEVICE_ENTRY)(
71
72#ifdef __cplusplus
73}
74#endif
75
76#endif /* FREERDP_CHANNEL_AUDIN_CLIENT_AUDIN_H */