1 from test
import test_support
2 test_support
.requires('audio')
4 from test
.test_support
import verbose
, findfile
, TestFailed
, TestSkipped
16 SND_FORMAT_MULAW_8
= 1
18 def play_sound_file(path
):
20 size
, enc
, rate
, nchannels
, extra
= sunaudio
.gethdr(fp
)
24 if enc
!= SND_FORMAT_MULAW_8
:
25 print "Expect .au file with 8-bit mu-law samples"
29 a
= linuxaudiodev
.open('w')
30 except linuxaudiodev
.error
, msg
:
31 if msg
[0] in (errno
.EACCES
, errno
.ENOENT
, errno
.ENODEV
, errno
.EBUSY
):
32 raise TestSkipped
, msg
35 # convert the data to 16-bit signed
36 data
= audioop
.ulaw2lin(data
, 2)
39 if sys
.byteorder
== 'little':
40 fmt
= linuxaudiodev
.AFMT_S16_LE
42 fmt
= linuxaudiodev
.AFMT_S16_BE
44 # at least check that these methods can be invoked
51 # set parameters based on .au file headers
52 a
.setparameters(rate
, 16, nchannels
, fmt
)
58 a
= linuxaudiodev
.open("w")
60 fmt
= linuxaudiodev
.AFMT_U8
64 a
.setparameters(-1, size
, nchannels
, fmt
)
65 except ValueError, msg
:
68 a
.setparameters(rate
, -2, nchannels
, fmt
)
69 except ValueError, msg
:
72 a
.setparameters(rate
, size
, 3, fmt
)
73 except ValueError, msg
:
76 a
.setparameters(rate
, size
, nchannels
, 177)
77 except ValueError, msg
:
80 a
.setparameters(rate
, size
, nchannels
, linuxaudiodev
.AFMT_U16_LE
)
81 except ValueError, msg
:
84 a
.setparameters(rate
, 16, nchannels
, fmt
)
85 except ValueError, msg
:
89 play_sound_file(findfile('audiotest.au'))