-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathaoo_controls.h
More file actions
217 lines (187 loc) · 5.41 KB
/
aoo_controls.h
File metadata and controls
217 lines (187 loc) · 5.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
/* Copyright (c) 2021 Christof Ressi
* For information on usage and redistribution, and for a DISCLAIMER OF ALL
* WARRANTIES, see the file, "LICENSE.txt," in this distribution. */
/** \file
* \brief AOO controls
*/
#pragma once
#include "aoo_config.h"
/** \cond DO_NOT_DOCUMENT */
#define AOO_ARG(x) ((void *)&x), sizeof(x)
/** \endcond */
/*------------------------------------------------------*/
/* AOO source/sink controls */
/*------------------------------------------------------*/
/** \brief AOO source/sink control constants
*
* These are passed to AooSource_control() resp. AooSink_control()
* internally by helper functions and shouldn't be used directly.
*/
enum
{
kAooCtlSetId = 0,
kAooCtlGetId,
kAooCtlSetFormat,
kAooCtlGetFormat,
kAooCtlReset,
kAooCtlActivate,
kAooCtlIsActive,
kAooCtlSetLatency,
kAooCtlGetLatency,
kAooCtlSetBufferSize,
kAooCtlGetBufferSize,
kAooCtlReportXRun,
kAooCtlSetResampleMethod,
kAooCtlGetResampleMethod,
kAooCtlSetDynamicResampling,
kAooCtlGetDynamicResampling,
kAooCtlGetRealSampleRate,
kAooCtlSetDllBandwidth,
kAooCtlGetDllBandwidth,
kAooCtlResetDll,
kAooCtlSetSinkChannelOffset,
kAooCtlGetSinkChannelOffset,
kAooCtlSetPacketSize,
kAooCtlGetPacketSize,
kAooCtlSetPingInterval,
kAooCtlGetPingInterval,
kAooCtlSetResendData,
kAooCtlGetResendData,
kAooCtlSetResendBufferSize,
kAooCtlGetResendBufferSize,
kAooCtlSetResendInterval,
kAooCtlGetResendInterval,
kAooCtlSetResendLimit,
kAooCtlGetResendLimit,
kAooCtlSetRedundancy,
kAooCtlGetRedundancy,
kAooCtlSetSourceTimeout,
kAooCtlGetSourceTimeout,
kAooCtlSetSinkTimeout,
kAooCtlGetSinkTimeout,
kAooCtlSetInviteTimeout,
kAooCtlGetInviteTimeout,
kAooCtlGetBufferFillRatio,
kAooCtlSetBinaryFormat,
kAooCtlGetBinaryFormat,
kAooCtlSetStreamTimeSendInterval,
kAooCtlGetStreamTimeSendInterval,
#if AOO_NET
kAooCtlSetPassword = 1000,
kAooCtlSetRelayHost,
kAooCtlSetUseInternalRelay,
kAooCtlGetUseInternalRelay,
kAooCtlSetGroupAutoCreate,
kAooCtlGetGroupAutoCreate,
kAooCtlSetPingSettings,
kAooCtlGetPingSettings,
kAooCtlAddInterfaceAddress,
kAooCtlRemoveInterfaceAddress,
/* server group controls */
kAooCtlUpdateGroup,
kAooCtlUpdateUser,
#endif
kAooCtlSentinel
};
/* default values */
/** \brief default source send buffer size in seconds */
#ifndef AOO_SOURCE_BUFFER_SIZE
#define AOO_SOURCE_BUFFER_SIZE 0.025
#endif
/** \brief default sink latency in seconds */
#ifndef AOO_SINK_LATENCY
#define AOO_SINK_LATENCY 0.05
#endif
/** \brief use binary data message format by default */
#ifndef AOO_BINARY_FORMAT
#define AOO_BINARY_FORMAT 1
#endif
/** \brief stream time send interval in seconds (0 = disabled) */
#ifndef AOO_STREAM_TIME_SEND_INTERVAL
#define AOO_STREAM_TIME_SEND_INTERVAL 1.0
#endif
/** \brief default resample mode*/
#ifndef AOO_RESAMPLE_MODE
#define AOO_RESAMPLE_MODE kAooResampleCubic
#endif
/** \brief enable/disable dynamic resampling by default */
#ifndef AOO_DYNAMIC_RESAMPLING
#define AOO_DYNAMIC_RESAMPLING 0
#endif
/** \brief default time DLL filter bandwidth */
#ifndef AOO_DLL_BANDWIDTH
#define AOO_DLL_BANDWIDTH 0.012
#endif
/** \brief default ping interval in seconds */
#ifndef AOO_PING_INTERVAL
#define AOO_PING_INTERVAL 1.0
#endif
/** \brief default resend buffer size in seconds */
#ifndef AOO_RESEND_BUFFER_SIZE
#define AOO_RESEND_BUFFER_SIZE 1.0
#endif
/** \brief default send redundancy */
#ifndef AOO_SEND_REDUNDANCY
#define AOO_SEND_REDUNDANCY 1
#endif
/** \brief enable/disable packet resending by default */
#ifndef AOO_RESEND_DATA
#define AOO_RESEND_DATA 1
#endif
/** \brief default resend interval in seconds */
#ifndef AOO_RESEND_INTERVAL
#define AOO_RESEND_INTERVAL 0.01
#endif
/** \brief default resend limit */
#ifndef AOO_RESEND_LIMIT
#define AOO_RESEND_LIMIT 16
#endif
/** \brief default source timeout */
#ifndef AOO_SOURCE_TIMEOUT
#define AOO_SOURCE_TIMEOUT 10.0
#endif
/** \brief default invite timeout */
#ifndef AOO_INVITE_TIMEOUT
#define AOO_INVITE_TIMEOUT 1.0
#endif
/** \brief enable/disable internal server relay by default */
#ifndef AOO_SERVER_INTERNAL_RELAY
#define AOO_SERVER_INTERNAL_RELAY 0
#endif
/** \brief enable/disable automatic group creation by default */
#ifndef AOO_GROUP_AUTO_CREATE
#define AOO_GROUP_AUTO_CREATE 1
#endif
/** \brief enable/disable automatic user creation by default */
#ifndef AOO_USER_AUTO_CREATE
#define AOO_USER_AUTO_CREATE 1
#endif
/*------------------------------------------------------*/
/* user defined controls */
/*------------------------------------------------------*/
/* User defined controls (for custom AOO versions)
* must start from kAooCtlUserDefined, for example:
*
* enum MyAooControls
* {
* kMyControl1 = kAooCtlUserDefined
* kMyControl2,
* kMyControl3,
* ...
* };
*/
/** \brief offset for user defined controls */
#define kAooCtlUserDefined 10000
/*------------------------------------------------------*/
/* private controls */
/*------------------------------------------------------*/
/* Don't use! TODO: move somewhere else. */
enum
{
kAooCtlSetClient = -1000,
kAooCtlNeedRelay,
kAooCtlGetRelayAddress,
kAooCtlSetSimulatePacketLoss,
kAooCtlSetSimulatePacketReorder,
kAooCtlSetSimulatePacketJitter
};