FreeRDP
client/rdpsnd.h
1 
21 #ifndef FREERDP_CHANNEL_RDPSND_CLIENT_RDPSND_H
22 #define FREERDP_CHANNEL_RDPSND_CLIENT_RDPSND_H
23 
24 #include <freerdp/channels/rdpsnd.h>
25 #include <freerdp/settings.h>
26 
27 #ifdef __cplusplus
28 extern "C"
29 {
30 #endif
31 
35  typedef struct rdpsnd_plugin rdpsndPlugin;
36 
37  typedef struct rdpsnd_device_plugin rdpsndDevicePlugin;
38 
39  typedef BOOL (*pcFormatSupported)(rdpsndDevicePlugin* device, const AUDIO_FORMAT* format);
40  typedef BOOL (*pcOpen)(rdpsndDevicePlugin* device, const AUDIO_FORMAT* format, UINT32 latency);
41  typedef UINT32 (*pcGetVolume)(rdpsndDevicePlugin* device);
42  typedef BOOL (*pcSetVolume)(rdpsndDevicePlugin* device, UINT32 value);
43  typedef UINT (*pcPlay)(rdpsndDevicePlugin* device, const BYTE* data, size_t size);
44  typedef UINT (*pcPlayEx)(rdpsndDevicePlugin* device, const AUDIO_FORMAT* format,
45  const BYTE* data, size_t size);
46  typedef void (*pcStart)(rdpsndDevicePlugin* device);
47  typedef void (*pcClose)(rdpsndDevicePlugin* device);
48  typedef void (*pcFree)(rdpsndDevicePlugin* device);
49  typedef BOOL (*pcDefaultFormat)(rdpsndDevicePlugin* device, const AUDIO_FORMAT* desired,
50  AUDIO_FORMAT* defaultFormat);
51  typedef UINT (*pcServerFormatAnnounce)(rdpsndDevicePlugin* device, const AUDIO_FORMAT* formats,
52  size_t count);
53 
55  {
56  rdpsndPlugin* rdpsnd;
57 
58  pcFormatSupported FormatSupported;
59  pcOpen Open;
60  pcGetVolume GetVolume;
61  pcSetVolume SetVolume;
62  pcPlay Play;
63  pcStart Start; /* Deprecated, unused. */
64  pcClose Close;
65  pcFree Free;
66  pcDefaultFormat DefaultFormat;
67  pcServerFormatAnnounce ServerFormatAnnounce;
68  pcPlayEx PlayEx;
69  };
70 
71 #define RDPSND_DEVICE_EXPORT_FUNC_NAME "freerdp_rdpsnd_client_subsystem_entry"
72 
73 typedef void (*PREGISTERRDPSNDDEVICE)(rdpsndPlugin* rdpsnd, rdpsndDevicePlugin* device);
74 
75 typedef struct
76 {
77  rdpsndPlugin* rdpsnd;
78  PREGISTERRDPSNDDEVICE pRegisterRdpsndDevice;
79  const ADDIN_ARGV* args;
82 
83 typedef UINT(VCAPITYPE* PFREERDP_RDPSND_DEVICE_ENTRY)(
85 
86 FREERDP_API rdpContext* freerdp_rdpsnd_get_context(rdpsndPlugin* plugin);
87 
88 #ifdef __cplusplus
89 }
90 #endif
91 #endif /* FREERDP_CHANNEL_RDPSND_CLIENT_RDPSND_H */
Definition: client/rdpsnd.h:76