diff options
author | Greg Ward <gward@python.net> | 2002-12-10 16:24:21 (GMT) |
---|---|---|
committer | Greg Ward <gward@python.net> | 2002-12-10 16:24:21 (GMT) |
commit | 36dacfa49c8385efa59a1f57c3476dfc6e1e15b5 (patch) | |
tree | 8e914041c9b18588c71525b7864bfecd87f83b1f /Lib/test | |
parent | 731a986dfa321252e0c91d5dbf49670bd151382c (diff) | |
download | cpython-36dacfa49c8385efa59a1f57c3476dfc6e1e15b5.zip cpython-36dacfa49c8385efa59a1f57c3476dfc6e1e15b5.tar.gz cpython-36dacfa49c8385efa59a1f57c3476dfc6e1e15b5.tar.bz2 |
Initial revision is rev 1.8 of test_linuxaudiodev.py, with
the obvious s/linuxaudiodev/ossaudiodev/ change made.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_ossaudiodev.py | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Lib/test/test_ossaudiodev.py b/Lib/test/test_ossaudiodev.py new file mode 100644 index 0000000..1aa0f92 --- /dev/null +++ b/Lib/test/test_ossaudiodev.py @@ -0,0 +1,89 @@ +from test.test_support import verbose, findfile, TestFailed, TestSkipped + +import errno +import fcntl +import ossaudiodev +import os +import sys +import select +import sunaudio +import time +import audioop + +SND_FORMAT_MULAW_8 = 1 + +def play_sound_file(path): + fp = open(path, 'r') + size, enc, rate, nchannels, extra = sunaudio.gethdr(fp) + data = fp.read() + fp.close() + + if enc != SND_FORMAT_MULAW_8: + print "Expect .au file with 8-bit mu-law samples" + return + + try: + a = ossaudiodev.open('w') + except ossaudiodev.error, msg: + if msg[0] in (errno.EACCES, errno.ENODEV, errno.EBUSY): + raise TestSkipped, msg + raise TestFailed, msg + + # convert the data to 16-bit signed + data = audioop.ulaw2lin(data, 2) + + # set the data format + if sys.byteorder == 'little': + fmt = ossaudiodev.AFMT_S16_LE + else: + fmt = ossaudiodev.AFMT_S16_BE + + # at least check that these methods can be invoked + a.bufsize() + a.obufcount() + a.obuffree() + a.getptr() + a.fileno() + + # set parameters based on .au file headers + a.setparameters(rate, 16, nchannels, fmt) + a.write(data) + a.flush() + a.close() + +def test_errors(): + a = ossaudiodev.open("w") + size = 8 + fmt = ossaudiodev.AFMT_U8 + rate = 8000 + nchannels = 1 + try: + a.setparameters(-1, size, nchannels, fmt) + except ValueError, msg: + print msg + try: + a.setparameters(rate, -2, nchannels, fmt) + except ValueError, msg: + print msg + try: + a.setparameters(rate, size, 3, fmt) + except ValueError, msg: + print msg + try: + a.setparameters(rate, size, nchannels, 177) + except ValueError, msg: + print msg + try: + a.setparameters(rate, size, nchannels, ossaudiodev.AFMT_U16_LE) + except ValueError, msg: + print msg + try: + a.setparameters(rate, 16, nchannels, fmt) + except ValueError, msg: + print msg + +def test(): + play_sound_file(findfile('audiotest.au')) + test_errors() + +test() |