File: protocol.txt

package info (click to toggle)
nas 1.8-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 8,452 kB
  • ctags: 23,094
  • sloc: ansic: 54,190; makefile: 23,934; sh: 7,406; perl: 2,208; yacc: 244; cpp: 216; lex: 63
file content (312 lines) | stat: -rw-r--r-- 6,703 bytes parent folder | download | duplicates (3)
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
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
	      Network Audio System Protocol Description

($Id: protocol.txt,v 1.2 1999/07/08 00:51:29 jon Exp $)
($NCDId: @(#)protocol.txt,v 1.2 1994/06/01 17:50:38 greg Exp $)

Common Types

__________________________________________________________________
Name	       Value
__________________________________________________________________

LISTofFOO      A type name of the form LISTofFOO means a counted
	       list of elements of type FOO.  The size of the
	       length field may vary (it is not necessarily the
	       same size as a FOO), and in some cases, it may be
	       implicit. Except where explicitly noted, zero-length
	       lists are legal.
AUID	       32-bit value (top three bits guaranteed to be zero)
AUDEVICEID     32-bit value (top three bits guaranteed to be zero)
AUBUCKETID     32-bit value (top three bits guaranteed to be zero)
AUFLOWID       32-bit value (top three bits guaranteed to be zero)
BYTE	       8-bit value
INT8	       8-bit signed integer
INT16	       16-bit signed integer
INT32	       32-bit signed integer
CARD8	       8-bit unsigned integer
CARD16	       16-bit unsigned integer
CARD32	       32-bit unsigned integer
AUFIXED	       CARD32
TIMESTAMP      CARD32
BOOL	       {True, False}
STRING8	       LISTofCARD8

Connection Setup

    Connection Initiation

	byte-order: CARD8
	protocol-major-version: CARD16
	protocol-minor-version: CARD16
	authorization-protocol-name: STRING8
	authorization-protocol-data: STRING8

    Server Response

	success: BOOL
	protocol-major-version: CARD16
	protocol-minor-version: CARD16
	length: CARD16

    The client receives the following additional data if authorization
    fails:

	reason: STRING8

    The client receives the following additional data if authorization
    is accepted:

	vendor: STRING8
	release-number: CARD32
	resource-id-base, resource-id-mask: CARD32
	maximum-request-length: CARD16
	min-sample-rate, max-sample-rate: CARD16
	max-tracks: CARD8
	data-formats: LISTofCARD8
	elements: LISTofCARD8
	wave-forms: LISTofCARD8
	actions: LISTofCARD8
	devices: LISTofDEVICEATTRIBUTES
	buckets: LISTofBUCKETATTRIBUTES
	radios: LISTofRADIOATTRIBUTES

    where:

	COMMON			value-mask: CARD32
				changable-mask: CARD32
				id: AUID
				kind: CARD8
				use: CARD8
				format: CARD8
				num-tracks: CARD8
				access: CARD32
				description: STRING8

	DEVICE			location: CARD32
				gain: CARD32
				min-sample-rate: CARD16
				max-sample-rate: CARD16
				line-mode: CARD8
				children: LISTofAUDEVICEID

	BUCKET			sample-rate: CARD16
				num-samples: CARD32

	DEVICEATTRIBUTES	common: COMMON
				device: DEVICE

	BUCKETATTRIBUTES	common: COMMON
				bucket: BUCKET

	RADIOATTRIBUTES		XXX unimplemented XXX

Requests

*** ListDevices
    -->
	devices: LISTofDEVICEATTRIBUTES

*** GetDeviceAttributes
	device: AUDEVICEID
    -->
	attributes: DEVICEATTRIBUTES

*** SetDeviceAttributes
	device: AUDEVICEID
	attributes: DEVICEATTRIBUTES

*** CreateBucket
	bucket: AUBUCKETID
	attributes: BUCKETATTRIBUTES

*** DestroyBucket
	bucket: AUBUCKETID

*** ListBuckets
    -->
	buckets: LISTofBUCKETATTRIBUTES

*** GetBucketAttributes
	bucket: AUBUCKETID
    -->
	attributes: BUCKETATTRIBUTES

*** SetBucketAttributes				XXX unimplemented XXX
	bucket: AUBUCKETID
	attributes: BUCKETATTRIBUTES

*** CreateRadio					XXX unimplemented XXX
*** DestroyRadio				XXX unimplemented XXX
*** ListRadios					XXX unimplemented XXX
*** GetRadioAttributes				XXX unimplemented XXX
*** SetRadioAttributes				XXX unimplemented XXX

*** CreateFlow
	flow: AUFLOWID

*** DestroyFlow
	flow: AUFLOWID

*** GetFlowAttributes				XXX unimplemented XXX
*** SetFlowAttributes				XXX unimplemented XXX

*** GetElements
	flow: AUFLOWID
    -->
	clocked: BOOL
	flow: AUFLOWID
	elements: LISTofELEMENT

where:

	ELEMENT			type: CARD16
				element: IMPORTCLIENT or
					 IMPORTDEVICE or
					 IMPORTBUCKET or
					 IMPORTWAVEFORM or
					 IMPORTRADIO or
					 BUNDLE or
					 MULTIPLYCONSTANT or
					 ADDCONSTANT or
					 SUM or
					 EXPORTCLIENT or
					 EXPORTDEVICE or
					 EXPORTBUCKET or
					 EXPORTRADIO or
					 EXPORTMONITOR

	ACTION			flow: AUFLOWID
				element-num: CARD8
				trigger-state: CARD8
				trigger-prev-state: CARD8
				trigger-reason: CARD8
				action: CARD8
				new-state: CARD8

	TRACK			element-num: CARD8
				track: CARD8

	IMPORTCLIENT		sample-rate: CARD16
				format: CARD8
				num-tracks: CARD8
				discard: BOOL
				max-samples: CARD32
				low-water-mark: CARD32
				actions: LISTofACTION

	IMPORTDEVICE		sample-rate: CARD16
				num-samples: CARD32
				device: AUDEVICEID
				actions: LISTofACTION

	IMPORTBUCKET		sample-rate: CARD16
				num-samples: CARD32
				bucket: AUBUCKETID
				offset: CARD32
				actions: LISTofACTION

	IMPORTWAVEFORM		sample-rate: CARD16
				num-samples: CARD32
				wave-form: CARD8
				frequency: CARD32
				actions: LISTofACTION

	IMPORTRADIO		XXX unimplemented XXX

	BUNDLE			tracks: LISTofTRACK

	MULTIPLYCONSTANT	input: CARD16
				constant: AUFIXED

	ADDCONSTANT		input: CARD16
				constant: AUFIXED

	SUM			inputs: LISTofCARD16

	EXPORTCLIENT		sample-rate: CARD16
				input: CARD16
				format: CARD8
				num-tracks: CARD8
				discard: BOOL
				max-samples: CARD32
				high-water-mark: CARD32
				actions: LISTofACTION

	EXPORTDEVICE		sample-rate: CARD16
				input: CARD16
				num-samples: CARD32
				actions: LISTofACTION
				device: AUDEVICEID
				actions: LISTofACTION

	EXPORTBUCKET		input: CARD16
				num-samples: CARD32
				bucket: AUBUCKETID
				offset: CARD32
				actions: LISTofACTION

	EXPORTRADIO		XXX unimplemented XXX

	EXPORTMONITOR		event-rate: CARD16
				input: CARD16
				format: CARD8
				num-tracks: CARD8

*** SetElements
	flow: AUFLOWID
	clocked: BOOL
	elements: LISTofELEMENT

*** GetElementStates
	states: LISTofELEMENTSTATE
    -->
	states: LISTofELEMENTSTATE

where:

	ELEMENTSTATE		flow: AUFLOWID
				element-num: CARD8
				state: CARD8

*** SetElementStates
	states: LISTofELEMENTSTATE

*** GetElementParameters			XXX unimplemented XXX

*** SetElementParameters
	parameters: LISTofPARAMETER

where:

	PARAMETER		flow: AUFLOWID
				element-num: CARD8
				parameters: LISTofCARD32

*** WriteElement
	flow: AUFLOWID
	element-num: CARD8
	state: CARD8
	data: LISTofBYTE

*** ReadElement
	flow: AUFLOWID
	element-num: CARD8
	num-bytes: CARD32
    -->
	data: LISTofBYTE

*** GrabComponent				XXX unimplemented XXX
*** UngrabComponent				XXX unimplemented XXX
*** SendEvent					XXX unimplemented XXX

*** GetAllowedUsers				XXX unimplemented XXX
*** SetAllowedUsers				XXX unimplemented XXX

*** ListExtensions				XXX unimplemented XXX
*** QueryExtension				XXX unimplemented XXX

*** GetCloseDownMode
*** SetCloseDownMode
*** KillClient
*** GetServerTime
*** NoOperation