How to configure a U24XL adc/dac for digital input

From: Craig Leres <leres_at_freebsd.org>
Date: Fri, 01 Mar 2024 21:50:28 UTC
I've been using an ESI U24XL for about 8 years to simultaneously record 
and play back S/PDIF (using in-house C programs under FreeBSD). Recently 
recording stopped working (playback is still fine) and I believe the 
cause is that the device has somehow switched to using its analog input.

I installed the driver and control panel on a windows system and it can 
easily switch between inputs. I installed wireshark and usbpcap and made 
some short captures one for switching from digital to analog and another 
switching back to digital:

     https://xse.com/leres/scratch/u24xl-analog.pcapng
     https://xse.com/leres/scratch/u24xl-digital.pcapng

I believe the "URB_CONTROL out" packet is used to switch inputs; looking 
at the two versions of that packet I see "data fragment" is 01 when 
going to analog and 02 when going to digital.

Could someone please give me some hints on how I might send these 
packets under FreeBSD?

		Craig