FreeRDP
Loading...
Searching...
No Matches
sf_audin.c
1
23#include <freerdp/config.h>
24
25#include <winpr/assert.h>
26
27#include "sfreerdp.h"
28
29#include "sf_audin.h"
30
31#include <freerdp/server/server-common.h>
32#include <freerdp/log.h>
33#define TAG SERVER_TAG("sample")
34
35#if defined(CHANNEL_AUDIN_SERVER)
36
37WINPR_ATTR_NODISCARD
38static UINT sf_peer_audin_data(WINPR_ATTR_UNUSED audin_server_context* audin,
39 const SNDIN_DATA* data)
40{
41 /* TODO: Implement */
42 WINPR_ASSERT(audin);
43 WINPR_ASSERT(data);
44
45 WLog_WARN(TAG, "not implemented");
46 WLog_DBG(TAG, "receive %" PRIuz " bytes.", Stream_Length(data->Data));
47 return CHANNEL_RC_OK;
48}
49
50#endif
51
52BOOL sf_peer_audin_init(testPeerContext* context)
53{
54 WINPR_ASSERT(context);
55#if defined(CHANNEL_AUDIN_SERVER)
56 context->audin = audin_server_context_new(context->vcm);
57 WINPR_ASSERT(context->audin);
58
59 context->audin->rdpcontext = &context->_p;
60 context->audin->userdata = context;
61
62 context->audin->Data = sf_peer_audin_data;
63
64 return audin_server_set_formats(context->audin, -1, nullptr);
65#else
66 return TRUE;
67#endif
68}
69
70BOOL sf_peer_audin_start(testPeerContext* context)
71{
72#if defined(CHANNEL_AUDIN_SERVER)
73 if (!context || !context->audin || !context->audin->Open)
74 return FALSE;
75
76 return context->audin->Open(context->audin);
77#else
78 return FALSE;
79#endif
80}
81
82BOOL sf_peer_audin_stop(testPeerContext* context)
83{
84#if defined(CHANNEL_AUDIN_SERVER)
85 if (!context || !context->audin || !context->audin->Close)
86 return FALSE;
87
88 return context->audin->Close(context->audin);
89#else
90 return FALSE;
91#endif
92}
93
94BOOL sf_peer_audin_running(testPeerContext* context)
95{
96#if defined(CHANNEL_AUDIN_SERVER)
97 if (!context || !context->audin || !context->audin->IsOpen)
98 return FALSE;
99
100 return context->audin->IsOpen(context->audin);
101#else
102 return FALSE;
103#endif
104}
105
106void sf_peer_audin_uninit(testPeerContext* context)
107{
108 WINPR_ASSERT(context);
109
110#if defined(CHANNEL_AUDIN_SERVER)
111 audin_server_context_free(context->audin);
112 context->audin = nullptr;
113#endif
114}