[alsa-devel] [PATCH 2/4] test: use proper threshold level information for user-ctl-element-set test

Takashi Iwai tiwai at suse.de
Mon Sep 19 22:48:35 CEST 2016


On Sat, 17 Sep 2016 16:49:26 +0200,
Takashi Sakamoto wrote:
> 
> Currently, this test program uses invalid array for threshold level
> information.

What do you mean exactly here as "threshold level"?
This term is fairly unclear to me and I don't remember of it being
defined properly although you seem to have started using in some
comments.


thanks,

Takashi

> 
> This commit replaces the array with valid information, which consists of
> newly exported TLV macros from kernel land.
> 
> Signed-off-by: Takashi Sakamoto <o-takashi at sakamocchi.jp>
> ---
>  test/user-ctl-element-set.c | 41 +++++++++++++++++++++++++++--------------
>  1 file changed, 27 insertions(+), 14 deletions(-)
> 
> diff --git a/test/user-ctl-element-set.c b/test/user-ctl-element-set.c
> index 9b9dc59..7d22ca6 100644
> --- a/test/user-ctl-element-set.c
> +++ b/test/user-ctl-element-set.c
> @@ -8,6 +8,7 @@
>   */
>  
>  #include "../include/asoundlib.h"
> +#include <sound/tlv.h>
>  
>  struct elem_set_trial {
>  	snd_ctl_t *handle;
> @@ -414,22 +415,34 @@ static int check_elems(struct elem_set_trial *trial)
>  
>  static int check_tlv(struct elem_set_trial *trial)
>  {
> -	unsigned int orig[8], curr[8];
> -	int err;
> -
>  	/*
> -	 * See a layout of 'struct snd_ctl_tlv'. I don't know the reason to
> -	 * construct this buffer with the same layout. It should be abstracted
> -	 * inner userspace library...
> +	 * Use unlikely data for threshold level.
> +	 *
> +	 *  Linear: dB range (coeff)
> +	 *  0<-> 4: -5940<->-5636 (44)
> +	 *  4<->22: -5636<->-4556 (60)
> +	 * 22<->33: -4556<->-4072 (76)
> +	 * 33<->37: -4072<->-3832 (44)
> +	 * 37<->48: -3832<->-2996 (76)
> +	 * 48<->66: -2996<->-2204 (60)
> +	 * 66<->84: -2204<-> -836 (44)
> +	 * 84<->95:  -836<-> -176 (60)
> +	 * 95<->99:  -176<->    0 (76)
>  	 */
> -	orig[0] = snd_ctl_elem_id_get_numid(trial->id);
> -	orig[1] = 6 * sizeof(orig[0]);
> -	orig[2] = 'a';
> -	orig[3] = 'b';
> -	orig[4] = 'c';
> -	orig[5] = 'd';
> -	orig[6] = 'e';
> -	orig[7] = 'f';
> +	static const SNDRV_CTL_TLVD_DECLARE_DB_RANGE(orig,
> +		SNDRV_CTL_TLVD_DB_RANGE_HEAD(9),
> +		 0,   4, SNDRV_CTL_TLVD_DB_SCALE_ITEM(-5940, 44, 1),
> +		 4,  22, SNDRV_CTL_TLVD_DB_SCALE_ITEM(-5636, 60, 0),
> +		22,  33, SNDRV_CTL_TLVD_DB_SCALE_ITEM(-4556, 76, 0),
> +		33,  37, SNDRV_CTL_TLVD_DB_SCALE_ITEM(-4072, 44, 0),
> +		37,  48, SNDRV_CTL_TLVD_DB_SCALE_ITEM(-3832, 76, 0),
> +		48,  66, SNDRV_CTL_TLVD_DB_SCALE_ITEM(-2996, 60, 0),
> +		66,  84, SNDRV_CTL_TLVD_DB_SCALE_ITEM(-2204, 44, 0),
> +		84,  95, SNDRV_CTL_TLVD_DB_SCALE_ITEM( -836, 60, 0),
> +		95,  99, SNDRV_CTL_TLVD_DB_SCALE_ITEM( -176, 76, 0),
> +	);
> +	unsigned int curr[sizeof(orig)/sizeof(orig[0])];
> +	int err;
>  
>  	/*
>  	 * In in-kernel implementation, write and command operations are the
> -- 
> 2.7.4
> 


More information about the Alsa-devel mailing list