25 lines
753 B
Python
25 lines
753 B
Python
from dataclasses import dataclass
|
|
import sounddevice as sd
|
|
|
|
|
|
@dataclass
|
|
class StreamingDevices:
|
|
output: dict
|
|
out_l: list
|
|
input: dict
|
|
in_l: list
|
|
|
|
|
|
def get_streaming_devices() -> StreamingDevices:
|
|
devices = StreamingDevices(dict(), list(), dict(), list())
|
|
|
|
for device in sd.query_hostapis()[0]['devices']:
|
|
if sd.query_devices(device)['max_output_channels'] == 0:
|
|
devices.input[sd.query_devices(device)['name']] = sd.query_devices(device)['index']
|
|
devices.in_l.append(sd.query_devices(device)['name'])
|
|
else:
|
|
devices.output[sd.query_devices(device)['name']] = sd.query_devices(device)['index']
|
|
devices.out_l.append(sd.query_devices(device)['name'])
|
|
|
|
return devices
|