>On 11/22/21 5:38 AM, Tim wrote: >> My thinking now is perhaps to add some sub-feature #defines (e.g. >>AUDIO_FU_SUBEQUALIZER_BASS_BOOST_PLUS6) to be used as subtypes when >>capabilities are queried for AUDIO_TYPE_FEATURE and for the audio_configure >>function to make use of. As far as I see no drivers or apps currently support >>AUDIO_FU_EQUALIZER so it's unlikely anything will get broken doing this, but >>it >>will allow me to make use it "properly". >> >> >Hey Tim, > >You are correct that AUDIO_FU_EQUALIZER feature is not implemented >anywhere. There are probably several other "features" that are also not >implmented. When I added the audio subsystem circa 2014, I defined the header >files and structures to be extensible even before implementing the first actual >audio device. That way I could determine if I had the needed control in the >structures for expandability. In creating those headers, I included audio >features >present in USB type audio devices (which I was using as a reference), and that >is >why the feature is present but not implemented. > Hi Ken,
Thanks for the information and background. The sama5d2 I am working with doesn't have a parametric equaliser, which is possibly what AUDIO_FU_EQUALIZER was intended for? It just has bass/mid/treble boost and cuts, only one of which can be active at a time; but it is described as an equalizer in the datasheet. Is it OK with all for me to use AUDIO_FU_EQUALIZER for this (I need 14 states which pretty much eats up the bit-fields)? Then if someone wants or needs to add a full blown parametric equalizer in the future they can use a complete feature type, such as AUDIO_TYPE_PROCESSING with a new control such as AUDIO_PU_PARAMETRIC? If so, I might suggest making it a little more generic than the specific boost/cuts offered by the sama5d2 and just have #define AUDIO_FU_EQUALIZER_MODE0 0x0000 #define AUDIO_FU_EQUALIZER_MODE1 0x0001 . . #define AUDIO_FU_EQUALIZER_MODE15 0x8000 The audio driver would then describe what those modes mean to the peripheral itself. Am I on the right track here?