ALSA Library Reference Manual
NANE
snd_mixer_group_read - Mixerインターフェースのグループに関するデータを読み込む関数
SYNOPSIS
DESCRIPTION
snd_mixer_group_read関数はMixerインターフェースのgroup->gidの示すグループに関するデータを*group構造体に読み込む。
グループに関する情報を取得するには、*group構造体のうちgroup->gidに読み込みたいMixerグループを指定し、それ以外は使用前にクリアしてsnd_mixer_group_readを呼ぶ。すると以下の情報が返される。
- int group->elements_over
- このMixerグループに属するエレメントの数が返される。
- unsigned int group->caps
- このMixerグループの能力(SND_MIXER_GRPCAP_XXXX参照)がビットごとにセットされる。
- SND_MIXER_GRPCAP_VOLUME
- このグループは音量の調節ができる。
- SND_MIXER_GRPCAP_JOINTLY_VOLUME
- このグループは音量の調節ができる。
- SND_MIXER_GRPCAP_MUTE
- このグループはミュートができる。
- SND_MIXER_GRPCAP_JOINTLY_MUTE
- このグループは他の入力グループと連動してミュートができる。
- SND_MIXER_GRPCAP_CAPTURE
- このグループは録音ができる。
- SND_MIXER_GRPCAP_JOINTLY_CAPTURE
- このグループは他の入力グループと連動して録音ができる。
- SND_MIXER_GRPCAP_EXCL_CAPTURE
- このグループは他の入力グループでの録音を禁止して排他的に録音をする。
- unsigned int group->channels
- このMixerグループで動作可能なチャネルがビットごとにセットされる。
- unsigned int group->mute
- このMixerグループでミュートされているチャネルがビットごとにセットされる。
- unsigned int group->capture
- このMixerグループで録音可能なチャネルがビットごとにセットされる。
- int group->min
- このMixerグループで指定可能な音量の最小値が返される。
- int group->max
- このMixerグループで指定可能な音量の最大値が返される。
各チャネルの音量はgroup->volume.values[N]に返される。Nは0から31の範囲で、group->cnanelsでセットされたビットの番号のものが有効である。各チャネルの名称はsnd_mixer_channel_name関数で取得可能である。
上のチャネルの中で、しばしば使用される代表的なチャネルについては以下のgroup->volume.namesに用意されている。
- int group->volume.names.front_left
- 前方左の音量
- int group->volume.names.front_right
- 前方右の音量
- int group->volume.names.front_center
- 前方中央の音量
- int group->volume.names.rear_left
- 後方左の音量
- int group->volume.names.rear_right
- 後方右の音量
- int group->volume.names.woofer
- ウーハーの音量
さらにこのMixerグループに属するエレメントを調べるには、group->elements_overをgroup->elements_sizeに渡し、group->elementsとgroup->elements_overを再びクリアし、group->pelementsに取得するエレメントに必要な量のmallocで確保した領域を渡す。そしてもう一度snd_mixer_group_readを呼ぶとgroup->elementsに取得したエレメントの数を、group->elements_overに取得に失敗したエレメント数を、group->pelementsにエレメントに関する情報が順番に書き込まれる。
RETURN VALUES
snd_mixer_group_read関数は成功すれば0を返し、そうでなければエラーコードを返す。
ERRORS
- -EINVAL
- snd_mixer_group_readで与えられたhandleまたはgroupはNULLである。
SEE ALSO