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.
Takashi