I have some problems with wave audio in Wine. It sais that my device does not
support any format at all. I run the following
Code:
#include <windows.h>
#include <cstdio>
typedef int (*EnumDevicesCallback)(const WAVEOUTCAPS* caps,void* param_through);
int enumDevices(EnumDevicesCallback onDevice,void* param_through)
{
unsigned int n_devs=waveOutGetNumDevs();
unsigned int i=0;
WAVEOUTCAPS caps;
do
{
waveOutGetDevCaps(i,&caps,sizeof(caps));
if(!onDevice(&caps,param_through))
{return i;}
i++;
}
while(i!=n_devs);
return -1;
}
void printMMVersion(MMVERSION ver,FILE* file)
{
fprintf(file,"%u.%u",ver>>8,ver&0xff);
}
void printDevCaps(const WAVEOUTCAPS* caps,FILE* file)
{
fprintf(file,"Device %x:%x driver version
",caps->wMid,caps->wPid);
printMMVersion(caps->vDriverVersion,file);
fprintf(file," (%s)\n",caps->szPname);
fprintf(file,"dwFormats=%x\n",caps->dwFormats);
fprintf(file,"wChannels=%u\n",caps->wChannels);
fprintf(file,"dwSupport=%u\n",caps->dwSupport);
putc('\n',file);
}
int checkDevice(const WAVEOUTCAPS* caps,void* param_through)
{
printDevCaps(caps,(FILE*)param_through);
return 1;
}
int main()
{
enumDevices(checkDevice,stdout);
return 0;
}
And get this output:
fixme:mixer:ALSA_MixerInit No master control found on UA-25, disabling mixer
fixme:wave:ALSA_ComputeCaps Device has a minimum of 2 channels
err:alsa:ALSA_CheckSetVolume Could not find 'PCM Playback Volume'
element
fixme:wave:ALSA_ComputeCaps Device has a minimum of 2 channels
err:alsa:ALSA_CheckSetVolume Could not find 'PCM Playback Volume'
element
fixme:wave:ALSA_ComputeCaps Device has a minimum of 2 channels
err:alsa:ALSA_CheckSetVolume Could not find 'PCM Playback Volume'
element
fixme:wave:ALSA_ComputeCaps Device has a minimum of 2 channels
err:alsa:ALSA_CheckSetVolume Could not find 'PCM Playback Volume'
element
Device 2:68 driver version 1.0 (USB Audio)
dwFormats=0
wChannels=2
dwSupport=96
Device 2:68 driver version 1.0 (USB Audio)
dwFormats=0
wChannels=2
dwSupport=96
In Windows (on the same computer) i get
Device 1:64 driver version 5.10 (EDIROL UA-25)
dwFormats=bffff
wChannels=65535
dwSupport=44
Device 18:149 driver version 5.3 (MME EDIROL UA-25 Out)
dwFormats=f00
wChannels=2
dwSupport=32
Device 1:64 driver version 5.10 (Sound Blaster Live! 24-bit)
dwFormats=bffff
wChannels=65535
dwSupport=44
It looks like it finds the UA-25, which is the one that has speakers, but
nothing more. Is it a but or is it something in my configuration of ALSA?