Progress report -- or is that a regress report ?
After chewing on the discussion with my friend the other night, it turns out the architecture is fine, but the implementation is substandard.
Arghh... another round of refactoring...
It will require a change in map format, names are now two part: SurfaceName and WidgetName a la:
Action map entries:
Mixer Volume TrackVolumeAction
Mixer Mute TrackMuteAction
FX Map map entries:
Console1 Volume MakeUpGain
Console1 Mute Bypass
Surface Names must be unique within a given logical surface.
Widget Names must be unique within a given surface.
Sad that I actually enjoy doing this ain't it ?