1 /* ************************************************** *
2  *						      *
3  *  Request, Reply, Event, Error Printing	      *
4  *						      *
5  *	James Peterson, 1988			      *
6  *	(c) Copyright MCC, 1988 		      *
7  *						      *
8  * ************************************************** */
9 
10 #include "scope.h"
11 #include "nas.h"
12 
13 
14 /* ************************************************************ */
15 /*								*/
16 /*								*/
17 /* ************************************************************ */
18 
19 /*
20   In printing the contents of the fields of the X11 packets, some
21   fields are of obvious value, and others are of lesser value.  To
22   control the amount of output, we generate our output according
23   to the level of Verbose-ness that was selected by the user.
24 
25   NasVerbose = 0 ==  Headers only, time and request/reply/... names.
26 
27   NasVerbose = 1 ==  Very useful content fields.
28 
29   NasVerbose = 2 ==  Almost everything.
30 
31   NasVerbose = 3 ==  Every single bit and byte.
32 
33 */
34 
35 /*
36   To aid in making the choice between level 1 and level 2, we
37   define the following define, which does not print relatively
38   unimportant fields.
39 */
40 
41 #define printfield(a,b,c,d,e) if (NasVerbose > 1) PrintField(a,b,c,d,e)
42 
43 static void PrintFailedAudioSetUpReply(const unsigned char *buf);
44 static void PrintSuccessfulAudioSetUpReply(const unsigned char *buf);
45 
46 /* ************************************************************ */
47 /*								*/
48 /*								*/
49 /* ************************************************************ */
50 
51 void
PrintAudioSetUpMessage(const unsigned char * buf)52 PrintAudioSetUpMessage(const unsigned char *buf)
53 {
54     short n;
55     short d;
56 
57     enterprocedure("PrintSetUpMessage");
58     if (NasVerbose < 1)
59         return;
60     SetIndentLevel(PRINTCLIENT);
61     PrintField(buf, 0, 1, BYTEMODE, "byte-order");
62     PrintField(buf, 2, 2, CARD16, "major-version");
63     PrintField(buf, 4, 2, CARD16, "minor-version");
64     printfield(buf, 6, 2, DVALUE2(n), "length of name");
65     n = IShort(&buf[6]);
66     printfield(buf, 8, 2, DVALUE2(d), "length of data");
67     d = IShort(&buf[8]);
68     PrintString8(&buf[12], (long) n, "authorization-protocol-name");
69     PrintString8(&buf[pad((long) (12 + n))], (long) d,
70                  "authorization-protocol-data");
71 }
72 
73 void
PrintAudioSetUpReply(const unsigned char * buf)74 PrintAudioSetUpReply(const unsigned char *buf)
75 {
76     enterprocedure("PrintSetUpReply");
77     SetIndentLevel(PRINTSERVER);
78     if (IByte(&buf[0]))
79         PrintSuccessfulAudioSetUpReply(buf);
80     else
81         PrintFailedAudioSetUpReply(buf);
82 }
83 
84 static void
PrintFailedAudioSetUpReply(const unsigned char * buf)85 PrintFailedAudioSetUpReply(const unsigned char *buf)
86 {
87     short n;
88 
89     PrintField(buf, 0, 1, 0, "SetUp Failed");
90     if (NasVerbose < 1)
91         return;
92     printfield(buf, 1, 1, DVALUE1(n), "length of reason in bytes");
93     n = IByte(&buf[1]);
94     PrintField(buf, 2, 2, CARD16, "major-version");
95     PrintField(buf, 4, 2, CARD16, "minor-version");
96     printfield(buf, 6, 2, DVALUE2((n + p) / 4), "length of data");
97     PrintString8(&buf[8], (long) n, "reason");
98 }
99 
100 static void
PrintSuccessfulAudioSetUpReply(const unsigned char * buf)101 PrintSuccessfulAudioSetUpReply(const unsigned char *buf)
102 {
103     short v;
104     short n;
105     short m;
106 
107     if (NasVerbose < 1)
108         return;
109     PrintField(buf, 2, 2, CARD16, "protocol-major-version");
110     PrintField(buf, 4, 2, CARD16, "protocol-minor-version");
111     printfield(buf, 6, 2, DVALUE2(8 + 2 * n + (v + p + m) / 4),
112                "length of data");
113     PrintField(buf, 8, 4, CARD32, "release-number");
114     PrintField(buf, 12, 4, CARD32, "resource-id-base");
115     PrintField(buf, 16, 4, CARD32, "resource-id-mask");
116     PrintField(buf, 20, 2, CARD16, "min-sample-rate");
117     PrintField(buf, 22, 2, CARD16, "max-sample-rate");
118     printfield(buf, 24, 2, DVALUE2(v), "length of vendor");
119     v = IShort(&buf[24]);
120     printfield(buf, 26, 2, CARD16, "maximum-request-length");
121     printfield(buf, 28, 1, CARD8, "max-tracks");
122     m = IByte(&buf[28]);
123     printfield(buf, 29, 1, DVALUE1(n), "number of audio formats");
124     n = IByte(&buf[29]);
125     PrintField(buf, 30, 1, CARD8, "number of element-types");
126     PrintField(buf, 31, 1, CARD8, "number of wave-forms");
127     PrintField(buf, 32, 1, CARD8, "number of actions");
128     PrintField(buf, 33, 1, CARD8, "number of devices");
129     PrintField(buf, 34, 1, CARD8, "number of buckets");
130     PrintField(buf, 35, 1, CARD8, "number of radios");
131     PrintString8(&buf[36], (long) v, "vendor");
132 }
133 
134 /* ************************************************************ */
135 /*								*/
136 /*								*/
137 /* ************************************************************ */
138 
139 /* Error Printing procedures */
140 
141 static void
AudioRequestError(const unsigned char * buf)142 AudioRequestError(const unsigned char *buf)
143 {
144     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Request */
145     if (NasVerbose < 1)
146         return;
147     printfield(buf, 2, 2, CARD16, "sequence number");
148     PrintField(buf, 8, 2, CARD16, "minor opcode");
149     PrintField(buf, 10, 1, CARD8, "major opcode");
150 }
151 
152 static void
AudioValueError(const unsigned char * buf)153 AudioValueError(const unsigned char *buf)
154 {
155     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Value */
156     if (NasVerbose < 1)
157         return;
158     printfield(buf, 2, 2, CARD16, "sequence number");
159     PrintField(buf, 4, 4, INT32, "bad value");
160     PrintField(buf, 8, 2, CARD16, "minor opcode");
161     PrintField(buf, 10, 1, CARD8, "major opcode");
162 }
163 
164 static void
AudioMatchError(const unsigned char * buf)165 AudioMatchError(const unsigned char *buf)
166 {
167     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Match */
168     if (NasVerbose < 1)
169         return;
170     printfield(buf, 2, 2, CARD16, "sequence number");
171     PrintField(buf, 8, 2, CARD16, "minor opcode");
172     PrintField(buf, 10, 1, CARD8, "major opcode");
173 }
174 
175 static void
AudioAccessError(const unsigned char * buf)176 AudioAccessError(const unsigned char *buf)
177 {
178     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Access */
179     if (NasVerbose < 1)
180         return;
181     printfield(buf, 2, 2, CARD16, "sequence number");
182     PrintField(buf, 8, 2, CARD16, "minor opcode");
183     PrintField(buf, 10, 1, CARD8, "major opcode");
184 }
185 
186 static void
AudioAllocError(const unsigned char * buf)187 AudioAllocError(const unsigned char *buf)
188 {
189     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Alloc */
190     if (NasVerbose < 1)
191         return;
192     printfield(buf, 2, 2, CARD16, "sequence number");
193     PrintField(buf, 8, 2, CARD16, "minor opcode");
194     PrintField(buf, 10, 1, CARD8, "major opcode");
195 }
196 
197 static void
AudioIDChoiceError(const unsigned char * buf)198 AudioIDChoiceError(const unsigned char *buf)
199 {
200     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* IDChoice */
201     if (NasVerbose < 1)
202         return;
203     printfield(buf, 2, 2, CARD16, "sequence number");
204     PrintField(buf, 4, 4, CARD32, "bad resource id");
205     PrintField(buf, 8, 2, CARD16, "minor opcode");
206     PrintField(buf, 10, 1, CARD8, "major opcode");
207 }
208 
209 static void
AudioLengthError(const unsigned char * buf)210 AudioLengthError(const unsigned char *buf)
211 {
212     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Length */
213     if (NasVerbose < 1)
214         return;
215     printfield(buf, 2, 2, CARD16, "sequence number");
216     PrintField(buf, 8, 2, CARD16, "minor opcode");
217     PrintField(buf, 10, 1, CARD8, "major opcode");
218 }
219 
220 static void
AudioImplementationError(const unsigned char * buf)221 AudioImplementationError(const unsigned char *buf)
222 {
223     PrintField(buf, 1, 1, ERROR, ERRORHEADER); /* Implementation */
224     if (NasVerbose < 1)
225         return;
226     printfield(buf, 2, 2, CARD16, "sequence number");
227     PrintField(buf, 8, 2, CARD16, "minor opcode");
228     PrintField(buf, 10, 1, CARD8, "major opcode");
229 }
230 
231 /* ************************************************************ */
232 /*								*/
233 /*								*/
234 /* ************************************************************ */
235 
236 /* Event Printing procedures */
237 
238 void
AudioElementNotify(const unsigned char * buf)239 AudioElementNotify(const unsigned char *buf)
240 {
241     PrintField(buf, 0, 1, NASEVENT, EVENTHEADER);
242     if (NasVerbose < 1)
243         return;
244     printfield(buf, 1, 1, CARD8, "detail");
245     printfield(buf, 2, 2, CARD16, "sequence number");
246     PrintField(buf, 4, 4, TIMESTAMP, "time");
247     PrintField(buf, 8, 4, CARD32, "flow");
248     printfield(buf, 12, 2, CARD16, "element num");
249     printfield(buf, 14, 2, CARD16, "kind");
250     printfield(buf, 16, 2, CARD16, "prev state");
251     printfield(buf, 18, 2, CARD16, "cur state");
252     printfield(buf, 20, 2, CARD16, "reason");
253     printfield(buf, 24, 4, CARD32, "num bytes");
254 }
255 
256 void
AudioGrabNotify(const unsigned char * buf)257 AudioGrabNotify(const unsigned char *buf)
258 {
259 }
260 
261 void
AudioMonitorNotify(const unsigned char * buf)262 AudioMonitorNotify(const unsigned char *buf)
263 {
264     PrintField(buf, 0, 1, NASEVENT, EVENTHEADER);
265     if (NasVerbose < 1)
266         return;
267     printfield(buf, 1, 1, CARD8, "detail");
268     printfield(buf, 2, 2, CARD16, "sequence number");
269     PrintField(buf, 4, 4, TIMESTAMP, "time");
270     PrintField(buf, 8, 4, CARD32, "flow");
271     printfield(buf, 12, 2, CARD16, "element num");
272     printfield(buf, 14, 1, CARD8, "format");
273     printfield(buf, 15, 1, CARD8, "num tracks");
274     printfield(buf, 16, 2, CARD16, "count");
275     printfield(buf, 18, 2, CARD16, "num fields");
276     PrintField(buf, 20, 4, CARD32, "data");
277     PrintField(buf, 24, 4, CARD32, "date1");
278     PrintField(buf, 28, 4, CARD32, "data2");
279 }
280 
281 void
AudioBucketNotify(const unsigned char * buf)282 AudioBucketNotify(const unsigned char *buf)
283 {
284 }
285 
286 void
AudioDeviceNotify(const unsigned char * buf)287 AudioDeviceNotify(const unsigned char *buf)
288 {
289 }
290 
291 /* ************************************************************ */
292 /*								*/
293 /*								*/
294 /* ************************************************************ */
295 
296 /* Request and Reply Printing procedures */
297 
298 void
UnknownAudioReply(const unsigned char * buf)299 UnknownAudioReply(const unsigned char *buf)
300 {
301     long n;
302 
303     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
304     PrintField(buf, 1, 1, CARD8, "data");
305     printfield(buf, 2, 2, CARD16, "sequence number");
306     printfield(buf, 4, 4, DVALUE4(n), "reply length");
307     n = ILong(&buf[4]) + 6;
308     (void) PrintList(&buf[8], n, CARD32, "data");
309 }
310 
311 void
AudioListDevices(const unsigned char * buf)312 AudioListDevices(const unsigned char *buf)
313 {
314     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER); /* ListDevices */
315     if (NasVerbose < 1)
316         return;
317     if (NasVerbose > 1)
318         PrintField(SBf, 0, 4, CARD32, "sequence number");
319 
320     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
321 }
322 
323 void
AudioListDevicesReply(const unsigned char * buf)324 AudioListDevicesReply(const unsigned char *buf)
325 {
326     long n;
327 
328     PrintField(RBf, 0, 1, REPLY, REPLYHEADER); /* GetWindowAttributes */
329     if (NasVerbose < 1)
330         return;
331     printfield(buf, 2, 2, CARD16, "sequence number");
332     printfield(buf, 4, 4, CARD32, "reply length");
333     printfield(buf, 8, 4, CARD32, "num devices");
334 
335     n = ILong(&buf[8]);
336 }
337 
338 static long
AuString(const unsigned char * buf)339 AuString(const unsigned char *buf)
340 {
341     long n;
342 
343     printfield(buf, 0, 1, CARD8, "type");
344     printfield(buf, 4, 4, CARD32, "length");
345 
346     n = ILong(&buf[8]);
347     PrintString8(&buf[8], n, "string");
348     return 8 + pad(n);
349 }
350 
351 static void
AuDeviceAttributes(const unsigned char * buf)352 AuDeviceAttributes(const unsigned char *buf)
353 {
354     int l;
355 
356     printfield(buf, 0, 4, CARD32, "value mask");
357     printfield(buf, 4, 4, CARD32, "changable mask");
358     printfield(buf, 8, 4, CARD32, "id");
359     printfield(buf, 12, 1, CARD8, "kind");
360     printfield(buf, 13, 1, CARD8, "use");
361     printfield(buf, 14, 1, CARD8, "format");
362     printfield(buf, 15, 1, CARD8, "num tracks");
363     printfield(buf, 16, 4, CARD32, "access");
364 
365     l = 20 + AuString(&buf[20]);
366 }
367 
368 void
AudioGetDeviceAttributes(const unsigned char * buf)369 AudioGetDeviceAttributes(const unsigned char *buf)
370 {
371     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
372     if (NasVerbose < 1)
373         return;
374     if (NasVerbose > 1)
375         PrintField(SBf, 0, 4, CARD32, "sequence number");
376 
377     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
378 }
379 
380 void
AudioGetDeviceAttributesReply(const unsigned char * buf)381 AudioGetDeviceAttributesReply(const unsigned char *buf)
382 {
383     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
384     if (NasVerbose < 1)
385         return;
386     printfield(buf, 2, 2, CARD16, "sequence number");
387     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
388     AuDeviceAttributes(&buf[32]);
389 }
390 
391 void
AudioSetDeviceAttributes(const unsigned char * buf)392 AudioSetDeviceAttributes(const unsigned char *buf)
393 {
394     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
395     if (NasVerbose < 1)
396         return;
397     if (NasVerbose > 1)
398         PrintField(SBf, 0, 4, CARD32, "sequence number");
399 
400     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
401     printfield(buf, 4, 4, CARD32, "device");
402 
403     AuDeviceAttributes(&buf[8]);
404 }
405 
406 void
AudioCreateBucket(const unsigned char * buf)407 AudioCreateBucket(const unsigned char *buf)
408 {
409     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
410     if (NasVerbose < 1)
411         return;
412     if (NasVerbose > 1)
413         PrintField(SBf, 0, 4, CARD32, "sequence number");
414 
415     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
416 }
417 
418 void
AudioDestroyBucket(const unsigned char * buf)419 AudioDestroyBucket(const unsigned char *buf)
420 {
421     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
422     if (NasVerbose < 1)
423         return;
424     if (NasVerbose > 1)
425         PrintField(SBf, 0, 4, CARD32, "sequence number");
426 
427     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
428 }
429 
430 void
AudioListBuckets(const unsigned char * buf)431 AudioListBuckets(const unsigned char *buf)
432 {
433     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
434     if (NasVerbose < 1)
435         return;
436     if (NasVerbose > 1)
437         PrintField(SBf, 0, 4, CARD32, "sequence number");
438 
439     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
440 }
441 
442 void
AudioListBucketsReply(const unsigned char * buf)443 AudioListBucketsReply(const unsigned char *buf)
444 {
445     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
446     if (NasVerbose < 1)
447         return;
448     printfield(buf, 2, 2, CARD16, "sequence number");
449     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
450 }
451 
452 void
AudioGetBucketAttributes(const unsigned char * buf)453 AudioGetBucketAttributes(const unsigned char *buf)
454 {
455     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
456     if (NasVerbose < 1)
457         return;
458     if (NasVerbose > 1)
459         PrintField(SBf, 0, 4, CARD32, "sequence number");
460 
461     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
462 }
463 
464 void
AudioGetBucketAttributesReply(const unsigned char * buf)465 AudioGetBucketAttributesReply(const unsigned char *buf)
466 {
467     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
468     if (NasVerbose < 1)
469         return;
470     printfield(buf, 2, 2, CARD16, "sequence number");
471     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
472 }
473 
474 void
AudioSetBucketAttributes(const unsigned char * buf)475 AudioSetBucketAttributes(const unsigned char *buf)
476 {
477     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
478     if (NasVerbose < 1)
479         return;
480     if (NasVerbose > 1)
481         PrintField(SBf, 0, 4, CARD32, "sequence number");
482 
483     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
484 }
485 
486 void
AudioCreateRadio(const unsigned char * buf)487 AudioCreateRadio(const unsigned char *buf)
488 {
489     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
490     if (NasVerbose < 1)
491         return;
492     if (NasVerbose > 1)
493         PrintField(SBf, 0, 4, CARD32, "sequence number");
494 
495     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
496 }
497 
498 void
AudioDestroyRadio(const unsigned char * buf)499 AudioDestroyRadio(const unsigned char *buf)
500 {
501     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
502     if (NasVerbose < 1)
503         return;
504     if (NasVerbose > 1)
505         PrintField(SBf, 0, 4, CARD32, "sequence number");
506 
507     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
508 }
509 
510 void
AudioListRadios(const unsigned char * buf)511 AudioListRadios(const unsigned char *buf)
512 {
513     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
514     if (NasVerbose < 1)
515         return;
516     if (NasVerbose > 1)
517         PrintField(SBf, 0, 4, CARD32, "sequence number");
518 
519     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
520 }
521 
522 void
AudioListRadiosReply(const unsigned char * buf)523 AudioListRadiosReply(const unsigned char *buf)
524 {
525     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
526     if (NasVerbose < 1)
527         return;
528     printfield(buf, 2, 2, CARD16, "sequence number");
529     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
530 }
531 
532 void
AudioGetRadioAttributes(const unsigned char * buf)533 AudioGetRadioAttributes(const unsigned char *buf)
534 {
535     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
536     if (NasVerbose < 1)
537         return;
538     if (NasVerbose > 1)
539         PrintField(SBf, 0, 4, CARD32, "sequence number");
540 
541     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
542 }
543 
544 void
AudioGetRadioAttributesReply(const unsigned char * buf)545 AudioGetRadioAttributesReply(const unsigned char *buf)
546 {
547     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
548     if (NasVerbose < 1)
549         return;
550     printfield(buf, 2, 2, CARD16, "sequence number");
551     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
552 }
553 
554 void
AudioSetRadioAttributes(const unsigned char * buf)555 AudioSetRadioAttributes(const unsigned char *buf)
556 {
557     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
558     if (NasVerbose < 1)
559         return;
560     if (NasVerbose > 1)
561         PrintField(SBf, 0, 4, CARD32, "sequence number");
562 
563     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
564 }
565 
566 void
AudioCreateFlow(const unsigned char * buf)567 AudioCreateFlow(const unsigned char *buf)
568 {
569     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
570     if (NasVerbose < 1)
571         return;
572     if (NasVerbose > 1)
573         PrintField(SBf, 0, 4, CARD32, "sequence number");
574 
575     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
576 }
577 
578 void
AudioDestroyFlow(const unsigned char * buf)579 AudioDestroyFlow(const unsigned char *buf)
580 {
581     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
582     if (NasVerbose < 1)
583         return;
584     if (NasVerbose > 1)
585         PrintField(SBf, 0, 4, CARD32, "sequence number");
586 
587     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
588 }
589 
590 void
AudioGetFlowAttributes(const unsigned char * buf)591 AudioGetFlowAttributes(const unsigned char *buf)
592 {
593     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
594     if (NasVerbose < 1)
595         return;
596     if (NasVerbose > 1)
597         PrintField(SBf, 0, 4, CARD32, "sequence number");
598 
599     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
600 }
601 
602 void
AudioGetFlowAttributesReply(const unsigned char * buf)603 AudioGetFlowAttributesReply(const unsigned char *buf)
604 {
605     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
606     if (NasVerbose < 1)
607         return;
608     printfield(buf, 2, 2, CARD16, "sequence number");
609     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
610 }
611 
612 void
AudioSetFlowAttributes(const unsigned char * buf)613 AudioSetFlowAttributes(const unsigned char *buf)
614 {
615     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
616     if (NasVerbose < 1)
617         return;
618     if (NasVerbose > 1)
619         PrintField(SBf, 0, 4, CARD32, "sequence number");
620 
621     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
622 }
623 
624 void
AudioGetElements(const unsigned char * buf)625 AudioGetElements(const unsigned char *buf)
626 {
627     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
628     if (NasVerbose < 1)
629         return;
630     if (NasVerbose > 1)
631         PrintField(SBf, 0, 4, CARD32, "sequence number");
632 
633     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
634 }
635 
636 void
AudioGetElementsReply(const unsigned char * buf)637 AudioGetElementsReply(const unsigned char *buf)
638 {
639     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
640     if (NasVerbose < 1)
641         return;
642     printfield(buf, 2, 2, CARD16, "sequence number");
643     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
644 }
645 
646 void
AudioSetElements(const unsigned char * buf)647 AudioSetElements(const unsigned char *buf)
648 {
649     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
650     if (NasVerbose < 1)
651         return;
652     if (NasVerbose > 1)
653         PrintField(SBf, 0, 4, CARD32, "sequence number");
654 
655     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
656 }
657 
658 void
AudioGetElementStates(const unsigned char * buf)659 AudioGetElementStates(const unsigned char *buf)
660 {
661     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
662     if (NasVerbose < 1)
663         return;
664     if (NasVerbose > 1)
665         PrintField(SBf, 0, 4, CARD32, "sequence number");
666 
667     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
668 }
669 
670 void
AudioElementState(const unsigned char * buf)671 AudioElementState(const unsigned char *buf)
672 {
673     printfield(buf, 0, 4, CARD32, "flow");
674     printfield(buf, 4, 1, CARD8, "element number");
675     printfield(buf, 5, 1, CARD8, "state");
676 }
677 
678 void
AudioGetElementStatesReply(const unsigned char * buf)679 AudioGetElementStatesReply(const unsigned char *buf)
680 {
681     int n, i;
682 
683     int o;
684 
685     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
686     if (NasVerbose < 1)
687         return;
688     printfield(buf, 2, 2, CARD16, "sequence number");
689     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
690     n = ILong(&buf[8]);
691     o = 32;
692     for (i = 0; i < n; i++) {
693         AudioElementState(buf + o);
694         o += 8;
695     }
696 }
697 
698 void
AudioSetElementStates(const unsigned char * buf)699 AudioSetElementStates(const unsigned char *buf)
700 {
701     int nstates, i;
702     int o;
703 
704     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
705     if (NasVerbose < 1)
706         return;
707     if (NasVerbose > 1)
708         PrintField(SBf, 0, 4, CARD32, "sequence number");
709 
710     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
711     printfield(buf, 4, 4, CARD32, "number states");
712 
713     nstates = ILong(&buf[4]);
714     o = 8;
715     for (i = 0; i < nstates; i++) {
716         AudioElementState(buf + o);
717         o += 8;
718     }
719 }
720 
721 void
AudioGetElementParameters(const unsigned char * buf)722 AudioGetElementParameters(const unsigned char *buf)
723 {
724     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
725     if (NasVerbose < 1)
726         return;
727     if (NasVerbose > 1)
728         PrintField(SBf, 0, 4, CARD32, "sequence number");
729 
730     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
731 }
732 
733 void
AudioGetElementParametersReply(const unsigned char * buf)734 AudioGetElementParametersReply(const unsigned char *buf)
735 {
736     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
737     if (NasVerbose < 1)
738         return;
739     printfield(buf, 2, 2, CARD16, "sequence number");
740     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
741 }
742 
743 void
AudioSetElementParameters(const unsigned char * buf)744 AudioSetElementParameters(const unsigned char *buf)
745 {
746     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
747     if (NasVerbose < 1)
748         return;
749     if (NasVerbose > 1)
750         PrintField(SBf, 0, 4, CARD32, "sequence number");
751 
752     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
753 }
754 
755 void
AudioWriteElement(const unsigned char * buf)756 AudioWriteElement(const unsigned char *buf)
757 {
758     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
759     if (NasVerbose < 1)
760         return;
761     if (NasVerbose > 1)
762         PrintField(SBf, 0, 4, CARD32, "sequence number");
763 
764     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
765     printfield(buf, 4, 4, CARD32, "flow");
766     printfield(buf, 8, 4, CARD32, "num bytes");
767     printfield(buf, 12, 1, CARD8, "state");
768 }
769 
770 void
AudioReadElement(const unsigned char * buf)771 AudioReadElement(const unsigned char *buf)
772 {
773     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
774     if (NasVerbose < 1)
775         return;
776     if (NasVerbose > 1)
777         PrintField(SBf, 0, 4, CARD32, "sequence number");
778 
779     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
780 }
781 
782 void
AudioReadElementReply(const unsigned char * buf)783 AudioReadElementReply(const unsigned char *buf)
784 {
785     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
786     if (NasVerbose < 1)
787         return;
788     printfield(buf, 2, 2, CARD16, "sequence number");
789     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
790 }
791 
792 void
AudioGrabComponent(const unsigned char * buf)793 AudioGrabComponent(const unsigned char *buf)
794 {
795     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
796     if (NasVerbose < 1)
797         return;
798     if (NasVerbose > 1)
799         PrintField(SBf, 0, 4, CARD32, "sequence number");
800 
801     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
802 }
803 
804 void
AudioUngrabComponent(const unsigned char * buf)805 AudioUngrabComponent(const unsigned char *buf)
806 {
807     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
808     if (NasVerbose < 1)
809         return;
810     if (NasVerbose > 1)
811         PrintField(SBf, 0, 4, CARD32, "sequence number");
812 
813     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
814 }
815 
816 void
AudioSendEvent(const unsigned char * buf)817 AudioSendEvent(const unsigned char *buf)
818 {
819     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
820     if (NasVerbose < 1)
821         return;
822     if (NasVerbose > 1)
823         PrintField(SBf, 0, 4, CARD32, "sequence number");
824 
825     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
826 }
827 
828 void
AudioGetAllowedUsers(const unsigned char * buf)829 AudioGetAllowedUsers(const unsigned char *buf)
830 {
831     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
832     if (NasVerbose < 1)
833         return;
834     if (NasVerbose > 1)
835         PrintField(SBf, 0, 4, CARD32, "sequence number");
836 
837     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
838 }
839 
840 void
AudioGetAllowedUsersReply(const unsigned char * buf)841 AudioGetAllowedUsersReply(const unsigned char *buf)
842 {
843     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
844     if (NasVerbose < 1)
845         return;
846     printfield(buf, 2, 2, CARD16, "sequence number");
847     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
848 }
849 
850 void
AudioSetAllowedUsers(const unsigned char * buf)851 AudioSetAllowedUsers(const unsigned char *buf)
852 {
853     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
854     if (NasVerbose < 1)
855         return;
856     if (NasVerbose > 1)
857         PrintField(SBf, 0, 4, CARD32, "sequence number");
858 
859     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
860 }
861 
862 void
AudioListExtensions(const unsigned char * buf)863 AudioListExtensions(const unsigned char *buf)
864 {
865     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
866     if (NasVerbose < 1)
867         return;
868     if (NasVerbose > 1)
869         PrintField(SBf, 0, 4, CARD32, "sequence number");
870 
871     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
872 }
873 
874 void
AudioListExtensionsReply(const unsigned char * buf)875 AudioListExtensionsReply(const unsigned char *buf)
876 {
877     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
878     if (NasVerbose < 1)
879         return;
880     printfield(buf, 2, 2, CARD16, "sequence number");
881     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
882 }
883 
884 void
AudioQueryExtension(const unsigned char * buf)885 AudioQueryExtension(const unsigned char *buf)
886 {
887     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
888     if (NasVerbose < 1)
889         return;
890     if (NasVerbose > 1)
891         PrintField(SBf, 0, 4, CARD32, "sequence number");
892 
893     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
894 }
895 
896 void
AudioQueryExtensionReply(const unsigned char * buf)897 AudioQueryExtensionReply(const unsigned char *buf)
898 {
899     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
900     if (NasVerbose < 1)
901         return;
902     printfield(buf, 2, 2, CARD16, "sequence number");
903     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
904 }
905 
906 void
AudioGetCloseDownMode(const unsigned char * buf)907 AudioGetCloseDownMode(const unsigned char *buf)
908 {
909     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
910     if (NasVerbose < 1)
911         return;
912     if (NasVerbose > 1)
913         PrintField(SBf, 0, 4, CARD32, "sequence number");
914 
915     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
916 }
917 
918 void
AudioGetCloseDownModeReply(const unsigned char * buf)919 AudioGetCloseDownModeReply(const unsigned char *buf)
920 {
921     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
922     if (NasVerbose < 1)
923         return;
924     printfield(buf, 2, 2, CARD16, "sequence number");
925     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
926 }
927 
928 void
AudioSetCloseDownMode(const unsigned char * buf)929 AudioSetCloseDownMode(const unsigned char *buf)
930 {
931     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
932     if (NasVerbose < 1)
933         return;
934     if (NasVerbose > 1)
935         PrintField(SBf, 0, 4, CARD32, "sequence number");
936 
937     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
938 }
939 
940 void
AudioKillClient(const unsigned char * buf)941 AudioKillClient(const unsigned char *buf)
942 {
943     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
944     if (NasVerbose < 1)
945         return;
946     if (NasVerbose > 1)
947         PrintField(SBf, 0, 4, CARD32, "sequence number");
948 
949     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
950 }
951 
952 void
AudioGetServerTime(const unsigned char * buf)953 AudioGetServerTime(const unsigned char *buf)
954 {
955     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
956     if (NasVerbose < 1)
957         return;
958     if (NasVerbose > 1)
959         PrintField(SBf, 0, 4, CARD32, "sequence number");
960 
961     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
962 }
963 
964 void
AudioGetServerTimeReply(const unsigned char * buf)965 AudioGetServerTimeReply(const unsigned char *buf)
966 {
967     PrintField(RBf, 0, 1, NASREPLY, REPLYHEADER);
968     if (NasVerbose < 1)
969         return;
970     printfield(buf, 2, 2, CARD16, "sequence number");
971     printfield(buf, 4, 4, DVALUE4((n + p) / 4), "reply length");
972 }
973 
974 void
AudioNoOperation(const unsigned char * buf)975 AudioNoOperation(const unsigned char *buf)
976 {
977     PrintField(buf, 0, 1, NASREQUEST, REQUESTHEADER);
978     if (NasVerbose < 1)
979         return;
980     if (NasVerbose > 1)
981         PrintField(SBf, 0, 4, CARD32, "sequence number");
982 
983     printfield(buf, 2, 2, DVALUE2(8 + n), "request length");
984 }
985