Hi all

I have an issue about ossmix command. I download the ossmix.c
<http://manuals.opensound.com/developer/ossmix.c.html#LOC8> file and
complied it
bash-3.2#./ossmix -d 0 ,the output is: "Mixer device 0 doesn't exist."
bash-3.2#./ossmix -d -1 ,the output is: "Selected mixer -1/audio#0"
"Known controls are:"

I checked the code and the error caused by SNDCTL_MIX_NREXT
<http://manuals.opensound.com/developer/SNDCTL_MIX_NREXT.html> ioctl,
the errno is ENXIO
<http://manuals.opensound.com/developer/oss_errno.html> .
It seems that there is no mixer devices, but i do have the mixer device
,and below is
my audio device information:
bash-3.2# ls -l /dev/sound/
total 24
lrwxrwxrwx 1 root root 9 Jul 5 14:41 0 -> audiohd:0
lrwxrwxrwx 1 root root 12 Jul 5 14:41 0ctl -> audiohd:0ctl
lrwxrwxrwx 1 root root 8 Jul 7 12:59 1 -> usb_ac:0
lrwxrwxrwx 1 root root 11 Jul 7 12:59 1ctl -> usb_ac:0ctl
lrwxrwxrwx 1 root root 49 Jul 5 14:41 audiohd:0 ->
../../devices/pseudo/au...@0:sound,audiohd,audio0
lrwxrwxrwx 1 root root 52 Jul 5 14:41 audiohd:0ctl ->
../../devices/pseudo/au...@0:sound,audiohd,audioctl0
lrwxrwxrwx 1 root root 48 Jul 5 14:41 audiohd:0dsp ->
../../devices/p...@0,0/pci17aa,1...@1b:sound,dsp0
lrwxrwxrwx 1 root root 50 Jul 5 14:41 audiohd:0mixer ->
../../devices/p...@0,0/pci17aa,1...@1b:sound,mixer0
lrwxrwxrwx 1 root root 48 Jul 7 12:59 usb_ac:0 ->
../../devices/pseudo/au...@0:sound,usb_ac,audio0
lrwxrwxrwx 1 root root 51 Jul 7 12:59 usb_ac:0ctl ->
../../devices/pseudo/au...@0:sound,usb_ac,audioctl0
lrwxrwxrwx 1 root root 75 Jul 5 14:41 usb_ac:0dsp ->
../../devices/p...@0,0/pci17aa,1...@1d,3/dev...@2/sound-cont...@0:sound,dsp0
lrwxrwxrwx 1 root root 77 Jul 5 14:41 usb_ac:0mixer ->
../../devices/p...@0,0/pci17aa,1...@1d,3/dev...@2/sound-cont...@0:sound,mixer0

I checked the code about SNDCTL_MIX_NREXT
<http://manuals.opensound.com/developer/SNDCTL_MIX_NREXT.html> , here is
the code about this ioctl:
static int
sndctl_mix_nrext(audio_client_t *c, int *ncp)
{
audio_dev_t*d;
ossdev_t*odev;
d = auclnt_get_dev(c);
if ((*ncp != -1) && (*ncp != (auclnt_get_dev_index(d) - 1))) { // Why
(*ncp != -1)?????
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
return (ENXIO);
}
if ((odev = auclnt_get_dev_minor_data(d, AUDIO_MINOR_DSP)) == NULL) {
return (EINVAL);
}
*ncp = odev->d_nctrl;
return (0);
}

Can anybody tell me Why (*ncp != -1) in the line that i signed.
And Why SNDCTL_MIX_NREXT
<http://manuals.opensound.com/developer/SNDCTL_MIX_NREXT.html> failed
that can't find the mixer device 0.

My OS is Solaris snv_117.


Thanks.
Boliang.Guan


_______________________________________________
oss-devel mailing list
oss-devel@mailman.opensound.com
http://mailman.opensound.com/mailman/listinfo/oss-devel

Reply via email to