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
37static UINT sf_peer_audin_data(WINPR_ATTR_UNUSED audin_server_context* audin,
38 const SNDIN_DATA* data)
39{
40 /* TODO: Implement */
41 WINPR_ASSERT(audin);
42 WINPR_ASSERT(data);
43
44 WLog_WARN(TAG, "not implemented");
45 WLog_DBG(TAG, "receive %" PRIdz " bytes.", Stream_Length(data->Data));
46 return CHANNEL_RC_OK;
47}
48
49#endif
50
51BOOL sf_peer_audin_init(testPeerContext* context)
52{
53 WINPR_ASSERT(context);
54#if defined(CHANNEL_AUDIN_SERVER)
55 context->audin = audin_server_context_new(context->vcm);
56 WINPR_ASSERT(context->audin);
57
58 context->audin->rdpcontext = &context->_p;
59 context->audin->userdata = context;
60
61 context->audin->Data = sf_peer_audin_data;
62
63 return audin_server_set_formats(context->audin, -1, NULL);
64#else
65 return TRUE;
66#endif
67}
68
69BOOL sf_peer_audin_start(testPeerContext* context)
70{
71#if defined(CHANNEL_AUDIN_SERVER)
72 if (!context || !context->audin || !context->audin->Open)
73 return FALSE;
74
75 return context->audin->Open(context->audin);
76#else
77 return FALSE;
78#endif
79}
80
81BOOL sf_peer_audin_stop(testPeerContext* context)
82{
83#if defined(CHANNEL_AUDIN_SERVER)
84 if (!context || !context->audin || !context->audin->Close)
85 return FALSE;
86
87 return context->audin->Close(context->audin);
88#else
89 return FALSE;
90#endif
91}
92
93BOOL sf_peer_audin_running(testPeerContext* context)
94{
95#if defined(CHANNEL_AUDIN_SERVER)
96 if (!context || !context->audin || !context->audin->IsOpen)
97 return FALSE;
98
99 return context->audin->IsOpen(context->audin);
100#else
101 return FALSE;
102#endif
103}
104
105void sf_peer_audin_uninit(testPeerContext* context)
106{
107 WINPR_ASSERT(context);
108
109#if defined(CHANNEL_AUDIN_SERVER)
110 audin_server_context_free(context->audin);
111 context->audin = NULL;
112#endif
113}