On Tuesday 14 June 2005 11:21 pm, Jeremy White wrote:
> Kevin Koltzau wrote:
> Actually, try this one instead.  Turns out that if
> you open a device with default:0 on some versions
> of alsalib (my laptop, as opposed to my work box),
> then snd_pcm_name() fails.  Sigh.

Getting closer, I had to change
+ � � � � � �/*----------------------------------------------------------------
+ � � � � � �** See if it's a valid playback device 
+ � � � � � �**--------------------------------------------------------------*/
+ � � � � � �if (ALSA_TestDeviceForWine(card, device, SND_PCM_STREAM_PLAYBACK) 
== 0)

to check for < 0 (would return -16 when it failed), and it detected default and 
worked great!

One try it was actually able to open hw:0,0, though the format I was sending 
through was
unsupported and ended up failing to play. It would have worked if plug:hw:0,0 
was opened instead
as plug will do format conversion. I would prefer default in that case also 
however, as wine
was blocking all my other audio apps from working. Always checking for default, 
even if hw works,
might be a good idea.

Also for
+ � � � �sprintf(ctlname, "hw:%d", fixedctlcard == -1 ? card : fixedctlcard);
+ � � � �rc = snd_ctl_open(&ctl, ctlname, SND_CTL_NONBLOCK);
the case default was used,  you should open default as well rather then hw:0


Reply via email to