diff options
author | Takashi Iwai <tiwai@suse.de> | 2014-10-20 18:06:04 +0200 |
---|---|---|
committer | Takashi Iwai <tiwai@suse.de> | 2014-10-20 18:06:04 +0200 |
commit | be93709cb13a1947fec3493267d04cd87baf497e (patch) | |
tree | 5ad4bfe98e2f61af22144f02728c0af486046595 | |
parent | f114040e3ea6e07372334ade75d1ee0775c355e1 (diff) | |
download | op-kernel-dev-be93709cb13a1947fec3493267d04cd87baf497e.zip op-kernel-dev-be93709cb13a1947fec3493267d04cd87baf497e.tar.gz |
ALSA: doc: Recommend the use of snd_ctl_elem_info()
Instead of the open code for the info call back of enum elements,
recommend the use of snd_ctl_elem_info(), which will reduce lots of
codes.
Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r-- | Documentation/DocBook/writing-an-alsa-driver.tmpl | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/Documentation/DocBook/writing-an-alsa-driver.tmpl b/Documentation/DocBook/writing-an-alsa-driver.tmpl index 784793d..84ef6a9 100644 --- a/Documentation/DocBook/writing-an-alsa-driver.tmpl +++ b/Documentation/DocBook/writing-an-alsa-driver.tmpl @@ -3658,6 +3658,29 @@ struct _snd_pcm_runtime { </para> <para> + The above callback can be simplified with a helper function, + <function>snd_ctl_enum_info</function>. The final code + looks like below. + (You can pass ARRAY_SIZE(texts) instead of 4 in the third + argument; it's a matter of taste.) + + <informalexample> + <programlisting> +<![CDATA[ + static int snd_myctl_enum_info(struct snd_kcontrol *kcontrol, + struct snd_ctl_elem_info *uinfo) + { + static char *texts[4] = { + "First", "Second", "Third", "Fourth" + }; + return snd_ctl_enum_info(uinfo, 1, 4, texts); + } +]]> + </programlisting> + </informalexample> + </para> + + <para> Some common info callbacks are available for your convenience: <function>snd_ctl_boolean_mono_info()</function> and <function>snd_ctl_boolean_stereo_info()</function>. |