ALSA Library Reference Manual
NANE
snd_mixer_sort_eid_table - エレメントのリストを指定の種類順にソートする関数
SYNOPSIS
DESCRIPTION
snd_mixer_sort_eid_table関数はエレメントのリストlist[0...(count-1)]を、アプリケーションで用意したリストtable[0...n]を元に種類順にソートし直す関数である。
この関数は、snd_mixer_elements関数やsnd_mixer_element_build関数などで取得したエレメントのリストをソートし直すのに用いると良い。
エレメントを種類順に整列させるためのリストtable[0...n]はsnd_mixer_weight_entry構造体のリストであり、以下の情報を用意する。
- char table[n].name[24]
- エレメントの種類を指定する。SND_MIXER_IN_XXXX、SND_MIXER_OUT_XXXX、SND_MIXER_GRP_XXXX、SND_MIXER_ELEMENT_XXXX、SND_MIXER_SW_XXXX、などで指定できる。
- int table[n].weight
- エレメントの種類によるソート順の重さを指定する。数が低いほど先に整列される。
リストの最後にはtable[n].char = NULL、table[n].weight = 0を挿入する。リストにない種類のエレメントがあった場合は、重さを0としてソートする。同じ重さのエレメントがあった場合には、その中で名前順に整列され、名前も同じであった場合はそれぞれのエレメントのID順に整列される。
また、単純にエレメントを種類順にソートしたい場合には、snd_mixer_weight_entry_t *snd_mixer_default_weightsにリストが用意されている。このリストはsnd_mixer_sort_gid_table関数と共に利用できる。
SEE ALSO