阿尔萨 snd_mixer_open() 'open mode'

Alsa snd_mixer_open() 'open mode'

documentation for snd_mixer_open中,第二个参数int mode的描述是:"open mode"。但是我找不到关于在同一模块中使用哪些符号值的更多信息。经过一番查找,我发现在snd_ctl/control模块中,有SND_CTL_NONBLOCK和SND_CTL_ASYNC等符号值,还有SND_CTL_READONLY。但是我仍然没有迹象表明可以在 snd_mixer_open 函数中使用哪些!由于这些以 'SND_CTL' 为前缀,我的印象是它们仅适用于 snd_ctl 模块的功能。

(我一般要实现的,是能够读取默认声卡的主声道音量。)

alsa-lib/src/mixer.c:68 中的来源,"mode" 参数被标记为未使用:

int snd_mixer_open(snd_mixer_t **mixerp, int mode ATTRIBUTE_UNUSED)

函数的来源证明了这一点。所以看起来在那里使用任何 int 都是安全的(我个人只使用 0)。