The following output shows that the types of device supported by my Windows computer are Windows Audio and DirectSound, and that while there are no devices of type Windows Audio, there are two input and two output devices of type DirectSound.
Device Type Name = Windows Audio
Device Type Name = DirectSound
Input Device Name = Primary Sound Capture Driver
Input Device Name = Microphone (Parallels Audio Con
Output Device Name = Primary Sound Driver
Output Device Name = Speakers (Parallels Audio Controller)
The DirectSound devices are maintained in a structure called DSoundDeviceList.
StringArray outputDeviceNames, inputDeviceNames;
What I glean from this structure is that the number of input devices need not be the same as the number of output devices. In general, is that correct?
Until I found this structure, I was under the impression that input and output devices were paired, so that in UML terms a device type defines the type of many devices, and a device has an input device and an input device. However, that seems wrong to me now. On the basis of this structure, it appears as though there's no such thing as a device - just device types and input and output devices. So, a device type defines the type of many input devices and many output devices.