Software PCM mixing

In the case where the sound card has a playback PCM device with only one subchannel,
the device driver writer can choose to include a PCM software mixing device.

This device simply appears as a new PCM playback device that supports many subchannels, but it has a few
differences from a true hardware device:

The mixing of the PCM streams is done in software using the CPU.
Even with only one stream, the CPU is used more than if the hardware device were used.

When the PCM software mixer is started, it opens a connection to the real hardware device.
If the real hardware device is already in use, the PCM software mixer can't run.
Likewise, if the PCM software mixer is running, the real hardware device is in use and is unavailable.

The PCM software mixer is specifically attached to a single hardware PCM device.
This one-to-one mapping allows for an API call to identify the PCM
software-mixing device associated with its hardware device.