ALSA Library Reference Manual
NANE
snd_mixer_element_info_build - Mixerインターフェースのエレメントの情報を取得する関数
SYNOPSIS
DESCRIPTION
snd_mixer_element_info_build関数はMixerインターフェースのinfo->eidの示すエレメントの情報をinfo->data共用体のそれぞれ適した構造体に取得する。指定したエレメントから情報が取得できるかどうかはsnd_mixer_element_has_info関数で調べることができる。
この関数で取得した情報にはmallocで確保された領域を含むことがあるので使用した情報はsnd_mixer_element_info_free関数で解放すること。
この関数では、info->eidの示すエレメントの種類によってそれぞれ以下の情報が取得できる。
- SND_MIXER_ETYPE_INPUT
- SND_MIXER_ETYPE_OUTPUT
- このエレメントはそれぞれ入力または出力である。
unsigned int info->data.io.attribにこの入出力の属性をSND_MIXER_EIO_XXXXに照合されるビット値で示す。
- SND_MIXER_EIO_DIGITAL
- この入出力にはディジタル入出力がある。
int info->data.io.voicesにチャネル数を、snd_mixer_voice_t info->data.io.pvoices[0...(voices-1)]にチャネルの種類を示す。
unsigned pvoices[n].voiceにチャネルの番号を示す。unsigned int pvoices[n].vindexに0がセットされている場合はチャネルの種類でありSND_MIXER_VOICE_XXXXで定義される。1がセットされている場合はチャネルの番号である。
- SND_MIXER_VOICE_UNUSED
- このチャネルは未使用である。
- SND_MIXER_VOICE_MONO
- このチャネルはモノラルである。
- SND_MIXER_VOICE_LEFT
- このチャネルは前方左である。
- SND_MIXER_VOICE_RIGHT
- このチャネルは前方右である。
- SND_MIXER_VOICE_CENTER
- このチャネルは前方中央である。
- SND_MIXER_VOICE_REAR_LEFT
- このチャネルは後方左である。
- SND_MIXER_VOICE_REAR_RIGHT
- このチャネルは後方右である。
- SND_MIXER_VOICE_WOOFER
- このチャネルはウーハーである。
- SND_MIXER_ETYPE_PLAYBACK1
- SND_MIXER_ETYPE_CAPTURE1
- このエレメントはPCMデバイスであり、それぞれ再生または録音を行なう。
int info->data.pcm1.devicesにデバイス数を、int info->data.pcm1.pdevices[0...(devices-1)]にデバイス番号を返す。
info->pcm1
- SND_MIXER_ETYPE_PLAYBACK2
- SND_MIXER_ETYPE_CAPTURE2
- このエレメントはPCMサブデバイスあり、それぞれ再生または録音を行なう。
int info->data.pcm2.deviceにデバイス番号を、int info->data.pcm2.subdeviceにサブデバイス番号を返す。
- SND_MIXER_ETYPE_ADC
- SND_MIXER_ETYPE_DAC
- このエレメントはそれぞれA/D、D/Aコンバータであり、その分解能をunsigned int info->data.converter.resolutionに返す。
- SND_MIXER_ETYPE_SWITCH3
- このエレメントはチャネルの入力から出力への経路の変更が可能なスイッチである。
unsigned int info->data.switch3.typeにこのスイッチの機能を返す。
- SND_MIXER_SWITCH3_FULL_FEATURED
このスイッチではすべての設定が可能である。
- SND_MIXER_SWITCH3_ALWAYS_DESTINATION
- このスイッチでは常に接続先がある。
- SND_MIXER_SWITCH3_ONE_DESTINATION
- このスイッチでは1つだけ接続先が指定できる。
- SND_MIXER_SWITCH3_ALWAYS_ONE_DESTINATION
- このスイッチでは常に1つだけ接続先がある。
int info->data.switch3.voicesにチャネル数を、int info->data.switch3.pvoices[0...(voices-1)]にチャネルの種類を返す(SND_MIXER_ETYPE_INPUT参照)。
- SND_MIXER_ETYPE_VOLUME1
- このエレメントはチャネルの音量設定を行なう。
int info->data.volume1.rangeにチャネル数を、info->data.volume1.prange[0...(range-1)]構造体に設定できる音量範囲を返す。構造体の内容はそれぞれint prange[n].minに最小値、int prange[n].maxに最大値、int prange[n].min_dBにデシベル表現を100倍した最小値、int prange[n].max_dBにデシベル表現を100倍した最大値となる。
- SND_MIXER_ETYPE_VOLUME2
- このエレメントはソースボイスから各接続先のチャネルへの音量を設定する。
unsigned int info->data.volume2.svoicesにソースボイスのチャネル数を、int info->data.volume2.psvoices[0...(svoices-1)]にチャネルの種類を返し(SND_MIXER_ETYPE_INPUT参照)、int info->data.volume2.rangeに接続先のチャネル数を、info->data.volume2.prange[0...(range-1)]構造体に設定できる音量範囲を返す。構造体の内容はそれぞれint prange[n].minに最小値、int prange[n].maxに最大値、int prange[n].min_dBにデシベル表現を100倍した最小値、int prange[n].max_dBにデシベル表現を100倍した最大値となる。さらに接続先のチャネルの種類をsnd_mixer_voice_t prange[n].dvoiceに返す。
- SND_MIXER_ETYPE_ACCU1
- このエレメントは加算器である。この出力の利得をint info->data.accu1.attenuationにデシベル表現の100倍した値で返す。
- SND_MIXER_ETYPE_ACCU2
- このエレメントはモノラルタイプの加算器である。この出力の利得をint info->data.accu1.attenuationにデシベル表現の100倍した値で返す。
- SND_MIXER_ETYPE_ACCU3
- このエレメントは出力の利得を変更できる加算器である。
int info->data.accu3.rangeにチャネル数を、info->data.accu3.prange[0...(range-1)]構造体に設定できる音量範囲を返す。構造体の内容はそれぞれint prange[n].minに最小値、int prange[n].maxに最大値、int prange[n].min_dBにデシベル表現を100倍した最小値、int prange[n].max_dBにデシベル表現を100倍した最大値となる。
- SND_MIXER_ETYPE_MUX1
- このエレメントは入力エレメントの選択をする。
このエレメントで選択できる入力エレメントは、このエレメントへ経路を持つエレメントだけである。その情報は、snd_mixer_routes関数によって現在使用しているMixerインターフェースより探す必要がある。
unsigned int info->data.mux1.attribにこの入力エレメントの属性をSND_MIXER_MUX1_XXXXに照合されるビット値で示す。
- SND_MIXER_MUX1_NONE
- 入力エレメントを選ばないことができる。
- SND_MIXER_ETYPE_MUX2
- このエレメントはモノラルの入力エレメントを扱う。
このエレメントで選択できる入力エレメントは、このエレメントへ経路を持つエレメントだけである。その情報は、snd_mixer_routes関数によって現在使用しているMixerインターフェースより探す必要がある。
unsigned int info->data.mux2.attribにこの入力エレメントの属性をSND_MIXER_MUX2_XXXXに照合されるビット値で示す。
- SND_MIXER_MUX2_NONE
- 入力エレメントを選ばないことができる。
- SND_MIXER_ETYPE_TONE_CONTROL1
- このエレメントはトーンコントローラである。
unsigned int info->data.tc1.tcにこのトーンコントローラの機能をSND_MIXER_TC1_XXXXに照合されるビット値で示す。
- SND_MIXER_TC1_SW
- このトーンコントローラにはon/offのスイッチがある。
- SND_MIXER_TC1_BASS
- このトーンコントローラには低音の制御がある。
int info->data.tc1.min_bassに最小値、int info->data.tc1.max_bassに最大値、int info->data.tc1.min_bass_dBにデシベル表現を100倍した最小値、int info->data.tc1.max_bass_dBにデシベル表現を100倍した最大値となる。
- SND_MIXER_TC1_TREBLE
- このトーンコントローラには高音の制御がある。
int info->data.tc1.min_trebleに最小値、int info->data.tc1.max_trebleに最大値、int info->data.tc1.min_treble_dBにデシベル表現を100倍した最小値、int info->data.tc1.max_treble_dBにデシベル表現を100倍した最大値となる。
- SND_MIXER_ETYPE_PAN_CONTROL1
- このエレメントはPANの調整を行なう。
int info->data.pc1.rangeにチャネル数を、info->data.pc1.prange[0...(range-1)]構造体に設定できる制御量の範囲を返す。int prange[n].pan_typeにこのPANの機能をSND_MIXER_PAN_XXXXで示される。
- SND_MIXER_PAN_LEFT_RIGHT
- このPANは左右のPANの制御である。
- SND_MIXER_PAN_LEFT_RIGHT
- このPANは前後のPANの制御である。
- SND_MIXER_PAN_LEFT_RIGHT
- このPANは上下のPANの制御である。
prange[n]構造体のその他の内容はそれぞれint prange[n].minに最小値、int prange[n].maxに最大値、int prange[n].min_dBにデシベル表現を100倍した最小値、int prange[n].max_dBにデシベル表現を100倍した最大値となる。
- SND_MIXER_ETYPE_3D_EFFECT1
- このエレメントは3Dエフェクタである。
unsigned int info->data.teffect1.effectにこの3Dエフェクタの機能をSND_MIXER_MUX1_XXXXに照合されるビット値で示される。
- SND_MIXER_EFF1_SW
- この3Dエフェクタにはon/offのスイッチがある。
- SND_MIXER_EFF1_MONO_SW
- この3Dエフェクタにはモノラルのon/offのスイッチがある。
- SND_MIXER_EFF1_WIDE
- この3Dエフェクタにはワイドエフェクトがある。
int info->data.teffect1.min_wideにワイドエフェクトの最小値、int info->data.teffect1.max_wideにワイドエフェクトの最大値となる。
- SND_MIXER_EFF1_VOLUME
- この3Dエフェクタにはボリュームエフェクトがある。
int info->data.teffect1.min_volumeにボリュームエフェクトの最小値、int info->data.teffect1.max_volumeにボリュームエフェクトの最大値となる。
- SND_MIXER_EFF1_CENTER
- この3Dエフェクタにはセンターエフェクトがある。
int info->data.teffect1.min_centerにセンターエフェクトの最小値、int info->data.teffect1.max_centerにセンターエフェクトの最大値となる。
- SND_MIXER_EFF1_SPACE
- この3Dエフェクタにはスペースエフェクトがある。
int info->data.teffect1.min_spaceにスペースエフェクトの最小値、int info->data.teffect1.max_spaceにスペースエフェクトの最大値となる。
- SND_MIXER_EFF1_DEPTH
- この3Dエフェクタにはディプスエフェクトがある。
int info->data.teffect1.min_depthにディプスエフェクトの最小値、int info->data.teffect1.max_depthにディプスエフェクトの最大値となる。
- SND_MIXER_EFF1_DELAY
- この3Dエフェクタにはディレイエフェクトがある。
int info->data.teffect1.min_delayにディレイエフェクトの最小値、int info->data.teffect1.max_delayにディレイエフェクトの最大値となる。
- SND_MIXER_EFF1_FEEDBACK
- この3Dエフェクタにはフィードバックエフェクトがある。
int info->data.teffect1.min_feedbackにフィードバックエフェクトの最小値、int info->data.teffect1.max_feedbackにフィードバックエフェクトの最大値となる。
- SND_MIXER_EFF1_DEPTH_REAR
- この3Dエフェクタにはディプスリアエフェクトがある。
int info->data.teffect1.min_depth_rearにディプスリアエフェクトの最小値、int info->data.teffect1.max_depth_rearにディプスリアエフェクトの最大値となる。
- SND_MIXER_ETYPE_PRE_EFFECT1
- このエレメントはプリエフェクタである。
int info->data.peffect1.itemsに項目数を返し、char* info->data.peffect1.pitems[0...(items-1)].nameに項目名を返す。
また、int info->data.peffect1.parametersにパラメータ数を返し、char* info->data.peffect1.pparameters[0...(parameters-1)].nameにパラメータ名、int info->data.peffect1.pparameters[n].min_depth_rearにパラメータの最小値、int info->data.peffect1.pparameters[n].max_depth_rearにパラメータの最大値を返す。
RETURN VALUES
snd_mixer_element_info_build関数は成功すれば0を返し、そうでなければエラーコードを返す。
SEE ALSO
snd_mixer_element_info, snd_mixer_element_info_free, snd_mixer_routes, snd_mixer_element_io_info, snd_mixer_element_pcm1_info, snd_mixer_element_pcm2_info, snd_mixer_element_converter_info, snd_mixer_element_switch3_info, snd_mixer_element_volume1_info, snd_mixer_element_volume2_info, snd_mixer_element_accu1_info, snd_mixer_element_accu2_info, snd_mixer_element_accu3_info, snd_mixer_element_mux1_info, snd_mixer_element_mux2_info, snd_mixer_element_tone_control1_info, snd_mixer_element_pan_control1_info, snd_mixer_element_3d_effect1_info, snd_mixer_element_pre_effect1_info