[alsa-devel] [PATCH 082/102] ASoC: Add SOC_ENUM_SINGLE_CONST() and SOC_ENUM_DOUBLE_CONST() macros

Takashi Iwai tiwai at suse.de
Thu Feb 20 08:50:16 CET 2014

At Thu, 20 Feb 2014 08:08:51 +0100,
Takashi Iwai wrote:
> At Thu, 20 Feb 2014 11:33:39 +0900,
> Mark Brown wrote:
> > 
> > On Tue, Feb 18, 2014 at 12:51:28PM +0100, Takashi Iwai wrote:
> > > Add new helper macros for defining the enum elements with a constant
> > > array.  With these macros, redundant ARRAY_SIZE() can be removed in
> > > the code.
> > 
> > So, this doesn't seem like the best way to do things.  For one thing
> > it's not really that the arrays are const, it's the fact that they are a
> > fixed size that makes the difference with these macros.  An array where
> > we fill in a fixed number of strings at runtime would work just as well
> > for this.
> Hm, in theory, yes.  I thought of _FIXED instead of _CONST, too, but
> the former sounds also obscure, so I picked the latter in the end.
> >  I'd also expect this to be more what the default naming does
> > since we want to try to steer people towards using the simplest and
> > least error prone mechanism for doing this.
> If changing the existing API is fine for you (not adding the new one),
> it's trivial to convert the patches to do so.  Looking at the end
> result, all SOC_ENUM_SINGLE() and SOC_ENUM_DOUBLE() usages are
> covered.  For any specific usage in future, we may provide lowlevel
> macros, __SOC_ENUM_SINGLE() with the number of items, too.

OTOH, changing the API means that we need to fix all callers at one
shot.  (Otherwise you'll hit bisection problems.)  The volume would
become big as a single patch.

If you prefer this way, let me know.


More information about the Alsa-devel mailing list