annotate Lib/test/test_linuxaudiodev.py @ 27998:e27f58a50737 legacy-trunk

SF bug #690377: Dud footnote reference in distutils docs
author Raymond Hettinger <python@rcn.com>
date Fri, 21 Feb 2003 02:47:09 +0000
parents 4e31e4086849
children b3482164a100
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27896
4e31e4086849 - The audio driver tests (test_ossaudiodev.py and
Guido van Rossum <guido@python.org>
parents: 24364
diff changeset
1 from test import test_support
4e31e4086849 - The audio driver tests (test_ossaudiodev.py and
Guido van Rossum <guido@python.org>
parents: 24364
diff changeset
2 test_support.requires('audio')
4e31e4086849 - The audio driver tests (test_ossaudiodev.py and
Guido van Rossum <guido@python.org>
parents: 24364
diff changeset
3
24364
aa0d2d51fbde Get rid of relative imports in all unittests. Now anything that
Barry Warsaw <barry@python.org>
parents: 23235
diff changeset
4 from test.test_support import verbose, findfile, TestFailed, TestSkipped
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
5
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
6 import errno
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
7 import fcntl
12908
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
8 import linuxaudiodev
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
9 import os
15093
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
10 import sys
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
11 import select
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
12 import sunaudio
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
13 import time
15093
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
14 import audioop
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
15
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
16 SND_FORMAT_MULAW_8 = 1
12908
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
17
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
18 def play_sound_file(path):
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
19 fp = open(path, 'r')
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
20 size, enc, rate, nchannels, extra = sunaudio.gethdr(fp)
12908
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
21 data = fp.read()
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
22 fp.close()
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
23
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
24 if enc != SND_FORMAT_MULAW_8:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
25 print "Expect .au file with 8-bit mu-law samples"
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
26 return
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
27
12908
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
28 try:
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
29 a = linuxaudiodev.open('w')
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
30 except linuxaudiodev.error, msg:
23235
770c2d2f5472 don't fail if the audio device is busy, just skip.
Anthony Baxter <anthonybaxter@gmail.com>
parents: 15093
diff changeset
31 if msg[0] in (errno.EACCES, errno.ENODEV, errno.EBUSY):
13860
d74a4a43f45f Oooopsss.....tab and space mismatch corrected.
Moshe Zadka <moshez@math.huji.ac.il>
parents: 13857
diff changeset
32 raise TestSkipped, msg
12908
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
33 raise TestFailed, msg
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
34
15093
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
35 # convert the data to 16-bit signed
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
36 data = audioop.ulaw2lin(data, 2)
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
37
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
38 # set the data format
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
39 if sys.byteorder == 'little':
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
40 fmt = linuxaudiodev.AFMT_S16_LE
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
41 else:
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
42 fmt = linuxaudiodev.AFMT_S16_BE
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
43
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
44 # at least check that these methods can be invoked
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
45 a.bufsize()
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
46 a.obufcount()
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
47 a.obuffree()
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
48 a.getptr()
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
49 a.fileno()
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
50
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
51 # set parameters based on .au file headers
15093
1b34c475da87 It seems our sound cards can't play mulaw data. Use native-format
Guido van Rossum <guido@python.org>
parents: 15062
diff changeset
52 a.setparameters(rate, 16, nchannels, fmt)
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
53 a.write(data)
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
54 a.flush()
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
55 a.close()
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
56
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
57 def test_errors():
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
58 a = linuxaudiodev.open("w")
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
59 size = 8
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
60 fmt = linuxaudiodev.AFMT_U8
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
61 rate = 8000
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
62 nchannels = 1
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
63 try:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
64 a.setparameters(-1, size, nchannels, fmt)
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
65 except ValueError, msg:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
66 print msg
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
67 try:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
68 a.setparameters(rate, -2, nchannels, fmt)
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
69 except ValueError, msg:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
70 print msg
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
71 try:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
72 a.setparameters(rate, size, 3, fmt)
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
73 except ValueError, msg:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
74 print msg
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
75 try:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
76 a.setparameters(rate, size, nchannels, 177)
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
77 except ValueError, msg:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
78 print msg
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
79 try:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
80 a.setparameters(rate, size, nchannels, linuxaudiodev.AFMT_U16_LE)
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
81 except ValueError, msg:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
82 print msg
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
83 try:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
84 a.setparameters(rate, 16, nchannels, fmt)
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
85 except ValueError, msg:
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
86 print msg
12908
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
87
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
88 def test():
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
89 play_sound_file(findfile('audiotest.au'))
15062
675748378c81 test_linuxaudio:
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 13860
diff changeset
90 test_errors()
12908
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
91
1e784b879039 Added test for linnuxaudiodev module; directly adapted from sunaudiodev
Fred Drake <fdrake@acm.org>
parents:
diff changeset
92 test()