Hi Mark
We want to have new style connection which is more flexible, and is possible to handle all connection in same way ? ... that may be an exaggeration.
Yeah, at a super high level we want to be able to handle digital audio with DAPM like analog audio, the main thing is we'd need to propagate digital parameters along as well as just on/off status, and support conversions.
Very rough speaking, we don't want to break existing connections (normal, DPCM, Codec2Codec, etc), and enable to use new style right ? Let's name current style as PCMv1. I think we want to grouping related things into one place, let's say soc-pcm.c, in roughly.
And make new style (PCMv2) at soc-pcm2.c, for example. Then, we can swtich v1 or v2 somehow, like below ?
-------- soc-pcm.c ----- struct pcm_connection pcm1_connection = { .ver = 1, .new_pcm = soc_new_pcm, ... }; -------- soc-pcm2.c ----- struct pcm_connection pcm2_connection = { .ver = 2, .new_pcm = new_pcm, ... }; -------- soc-core.c ----- if (ver == v1) connection = pcm1_connection else (ver == v2) connection = pcm2_connection
- ret = soc_new_pcm(rtd, num); + ret = connection->new_pcm(rtd, num);
We can create PCMv3, v4, v5... in the future if existing connection style was not good enough. ... well... this is almost "ideal" ;P
Thank you for your help !!
Best regards --- Kuninori Morimoto