Приветствую всех.
> При выводе через WaveOut у вас звук кидается, грубо говоря, сразу на
> звуковую карту.
Грубо говоря, все обстоит ровно наоборот: DirectX (и входящий в него компонент
DirectSound) как раз и был разработан для того, чтобы обеспечить прямой (насколько
это возможно в NT) доступ к игровому железу (в т.ч. звуковой карте).
То, что в обсуждаемой теме проходит как WaveOut, -- это многоуровневая и относительно
медленная звуковая подсистема. Она плохо подходит для игровых приложений и для
приложений, использующих обработку звука в реальном времени. Для первых, вместо
mmsystem, используется DirectX/DirectSound, а для вторых -- Asio.
И никакого "прямого кидания" звука на звуковую карту при работе через WaveOut
не происходит. Данные идут через системную службу.
> При этом для регулировки громкости используются
> средства звуковой карты. Т.е. крутя ползунок громкости в винампе, мы
> крутим, на самом деле, какой-то ползунок на звуковухе, причём, какой
> именно, зависит от версии винампа (точнее, версии плагина
> WaveOut.dll), от модели звуковухи и от версии её драйверов.
Средства регулировки самой звуковухи, конечно, так или иначе используются, но
вот роль этого плагина в этом процессе сильно преувеличена.
От версии плагина waveout.dll тут мало что зависит, так как этот плагин работает
через стандартный API системы (см. функции, начинающиеся с префикса WaveOut...),
а не напрямую с драйверами звуковой карты (к этим драйверам из пользовательского
пространства никто доступ получить не может).
Успехов. Анатолий.