def get_user_selected_input_name() -> str: from pupil_audio.utils.pyaudio import DeviceInfo default_device = DeviceInfo.default_input() if default_device is None: print("No default input device availabe!") exit(-1) input_names = sorted(device.name for device in DeviceInfo.inputs_by_name().values()) default_name = DeviceInfo.default_input().name print("-" * 80) print("PLEASE SELECT INPUT DEVICE:") for index, name in enumerate(input_names): default_flag = "D" if name == default_name else " " print(f"\t[{index}] {default_flag}: {name}") try: selected_name = input_names[int(input(">>> "))] except (ValueError, IndexError): print("Invalid input device number. Try again.") exit(-1) print("-" * 80) return selected_name
def main(): import pprint from pupil_audio.utils.pyaudio import DeviceInfo input_devices, output_devices = DeviceInfo.inputs_by_name( ), DeviceInfo.outputs_by_name() input_default, output_default = DeviceInfo.default_input( ), DeviceInfo.default_output() pp = pprint.PrettyPrinter(indent=4) print("-" * 80) print(f"### INPUT DEVICES (default = \"{input_default.name}\") ###") pp.pprint(input_devices) print("-" * 80) print(f"### OUTPUT DEVICES (default = \"{output_default.name}\") ###") pp.pprint(output_devices) print("-" * 80)
def available_input_devices(): return sorted(DeviceInfo.inputs_by_name().keys())
def enumerate_devices(): return sorted(DeviceInfo.inputs_by_name().values(), key=lambda x: x.index)