[alsa-devel] [PATCH] test: fix comment about first two fields of TLV data payload

Takashi Iwai tiwai at suse.de
Fri Sep 2 17:58:22 CEST 2016


On Fri, 02 Sep 2016 16:11:30 +0200,
Takashi Sakamoto wrote:
> 
> On Aug 30 2016 16:24, Clemens Ladisch wrote:
> > In the kernel, you could use the macros from include/sound/tlv.h.
> > 
> > Either copy them into your test program, and use them directly:
> > 
> > 	/* 4 words: */
> > 	DECLARE_TLV_DB_MINMAX(orig, -60, +60);
> > 	/* container with only one subitem; 8 words: */
> > 	DECLARE_TLV_CONTAINER(orig_container,
> > 		TLV_ITEM(SNDRV_CTL_TLVT_CHMAP_FIXED,
> > 			 SNDRV_CHMAP_FL, SNDRV_CHMAP_FR, SNDRV_CHMAP_FC, SNDRV_CHMAP_LFE)
> > 	);
> > 
> > or create the values by hand:
> > 
> > 	orig[0] = SNDRV_CTL_TLVT_DB_MINMAX;
> > 	orig[1] = 2 * sizeof(*orig);
> > 	orig[2] = -60;
> > 	orig[3] = +60;
> > 
> > 	orig_container[0] = SNDRV_CTL_TLVT_CONTAINER;
> > 	orig_container[1] = 6 * sizeof(*orig_container);
> > 		orig_container[2] = SNDRV_CTL_TLVT_CHMAP_FIXED;
> > 		orig_container[3] = 4 * sizeof(*orig_container);
> > 		orig_container[4] = SNDRV_CHMAP_FL
> > 		orig_container[5] = SNDRV_CHMAP_FR;
> > 		orig_container[6] = SNDRV_CHMAP_FC;
> > 		orig_container[7] = SNDRV_CHMAP_LFE;
> 
> Mmm. For user-defined control element sets, these macros should be in UAPI.

The macros are for static data, and for user-space, it's better to
have functions filling the TLV, IMO.  (Also these macros were recently
already put in uapi/include/sound.)


Takashi


More information about the Alsa-devel mailing list