[alsa-devel] UCM modifier names
Liam Girdwood
lrg at ti.com
Fri Jun 3 12:11:48 CEST 2011
Hi Stephen,
On 02/06/11 20:56, Stephen Warren wrote:
> Liam,
>
> UCM syntax is e.g.:
>
> SectionModifier."Capture Voice".0 {
>
> This maps to a modifier->name of "Capture Voice.0".
>
> However, when find_modifier searches for modifiers, it strips off the
> index (".0") from modifier->name, and just compares base name. As such,
> the index doesn't seem useful.
>
Your right, the index is probably not very useful for modifiers atm.
> I propose:
>
> a) In parse_modifier, fail if index!=0.
>
> b) In parse_modifier, store just the name in modifier->name.
>
> c) In find_modifier, remove all the special handling of "." in the name,
> and just strcmp(modifier->name, modifier_name).
>
> Perhaps the index should be completely removed from the file syntax too?
Yeah, I would go with that for modifier.
> If an index was actually useful in any case, the author of the file could
> simply add it within the name string, i.e.:
>
> typical: SectionModifier."Capture Voice" {
>
> unusual: SectionModifier."Capture Voice 0" {
>
> Of course, that wouldn't be backwards-compatible file syntax. Perhaps we
> could make the index optional, but always validate it was 0 if present,
> as I said above.
>
we do have some users using the modifier.0 syntax so maybe best to deprecate it.
> I actually wonder if the index on the SectionDevice makes any sense
> either; functions like is_modifier_supported would be a lot simpler if
> devices simply never had an index, such that is_modifier_supported was
> a simple strcmp too. The worst fallout from that change might be a
> requirement to list more entries in SupportedDevice/ConflictingDevice.
>
ok.
>
> Second, when find_modifier is called from get_value, it'll fail with a
> valid modifier name that happens not to be supported on any currently
> active devices. Is that intended? I'd expect to be able to retrieve
> values from any/all devices and modifiers irrespective of whether those
> devices or modifiers could actually be activated given the currently
> active configuration.
>
> I propose: Adding a parameter to find_modifier to indicate whether to
> call is_modifier_supported or not, this new parameter being false for
> get_value and true in other cases.
>
> This issue will also be relevant to find_device when I modify that to
> call new function is_device_supported.
>
> For find_device, we may also have to add a parameter for a device name
> that gets ignore when checking SupportedDevice/ConflictingDevice, which
> can be passed when switching devices.
>
> Thanks for your thoughts.
>
Sounds reasonable to me.
Liam
More information about the Alsa-devel
mailing list