mirror of
https://github.com/romanz/amodem.git
synced 2026-04-01 00:36:50 +08:00
audio: fix GetDefault???Device API call
This commit is contained in:
@@ -62,7 +62,13 @@ class Stream(object):
|
||||
self.bytes_per_sample = config.sample_size
|
||||
assert config.bits_per_sample == 16 # just to make sure :)
|
||||
|
||||
index = lib.call('GetDefaultInputDevice', restype=ctypes.c_int)
|
||||
read = bool(read)
|
||||
write = bool(write)
|
||||
assert read != write
|
||||
|
||||
direction = 'Input' if read else 'Output'
|
||||
api_name = 'GetDefault{0}Device'.format(direction)
|
||||
index = lib.call(api_name, restype=ctypes.c_int)
|
||||
self.params = Stream.Parameters(
|
||||
device=index, # choose default device
|
||||
channelCount=1, # mono audio
|
||||
|
||||
@@ -10,7 +10,8 @@ def test():
|
||||
with mock.patch('ctypes.CDLL') as cdll:
|
||||
lib = mock.Mock()
|
||||
lib.Pa_GetErrorText = lambda code: 'Error' if code else 'Success'
|
||||
lib.Pa_GetDefaultInputDevice.return_value = 1
|
||||
lib.Pa_GetDefaultOutputDevice.return_value = 1
|
||||
lib.Pa_GetDefaultInputDevice.return_value = 2
|
||||
lib.Pa_OpenStream.return_value = 0
|
||||
cdll.return_value = lib
|
||||
interface = audio.Interface(
|
||||
@@ -18,12 +19,14 @@ def test():
|
||||
)
|
||||
with interface:
|
||||
s = interface.player()
|
||||
assert s.params.device == 1
|
||||
s.stream = 1 # simulate non-zero output stream handle
|
||||
s.write(data=data)
|
||||
s.close()
|
||||
|
||||
with interface:
|
||||
s = interface.recorder()
|
||||
assert s.params.device == 2
|
||||
s.stream = 2 # simulate non-zero input stream handle
|
||||
s.read(len(data))
|
||||
s.close()
|
||||
|
||||
Reference in New Issue
Block a user