diff --git a/src/auracast/multicast_script.py b/src/auracast/multicast_script.py index dd0ead6..6b1ca16 100644 --- a/src/auracast/multicast_script.py +++ b/src/auracast/multicast_script.py @@ -98,11 +98,15 @@ if __name__ == "__main__": input_sel, selected_dev = aes67_inputs[0] logging.info(f"Selected first AES67 input: index={input_sel}, device={selected_dev['name']}") else: - if usb_inputs: - input_sel, selected_dev = usb_inputs[0] - logging.info(f"Selected first USB input: index={input_sel}, device={selected_dev['name']}") - else: - raise RuntimeError("No USB audio inputs found.") + # Loop until a USB input becomes available (mirror AES67 retry behavior) + while True: + current = list_usb_pw_inputs() + if current: + input_sel, selected_dev = current[0] + logging.info(f"Selected first USB input: index={input_sel}, device={selected_dev['name']}") + break + logging.info("Waiting for USB input... retrying in 2s") + time.sleep(2) TRANSPORT1 = 'serial:/dev/ttyAMA3,1000000,rtscts' # transport for raspberry pi gpio header TRANSPORT2 = 'serial:/dev/ttyAMA4,1000000,rtscts' # transport for raspberry pi gpio header