From dabf0a672eff66515f76dbd5abbc5b3e31bf7dbf Mon Sep 17 00:00:00 2001 From: Seppo Ingalsuo Date: Fri, 10 Nov 2023 11:00:54 +0200 Subject: [PATCH] Tools: Topology2: Add switch control to topologies with DRC The mixer control for switch is added to widget definition of drc.conf. In cavs-mixin-mixout-efx-hda.conf the existing control name is changed to have "bytes" similarly as multiband-drc has. The switch control is added for the widget to implement the switch. The controls definitions files in benchmark topologies are replaced to new format from current .conf generator script. The bytes control is same as before, and the mixer control for switch is added. Signed-off-by: Seppo Ingalsuo --- .../topology2/cavs-mixin-mixout-efx-hda.conf | 9 +++++++-- .../bench/drc_control_bytes_capture.conf | 10 ---------- .../bench/drc_control_bytes_playback.conf | 10 ---------- .../include/bench/drc_controls_capture.conf | 19 ++++++++++++++++++ .../include/bench/drc_controls_playback.conf | 19 ++++++++++++++++++ .../topology2/include/bench/drc_s16.conf | 4 ++-- .../topology2/include/bench/drc_s24.conf | 4 ++-- .../topology2/include/bench/drc_s32.conf | 4 ++-- .../topology2/include/components/drc.conf | 20 +++++++++++++++++++ 9 files changed, 71 insertions(+), 28 deletions(-) delete mode 100644 tools/topology/topology2/include/bench/drc_control_bytes_capture.conf delete mode 100644 tools/topology/topology2/include/bench/drc_control_bytes_playback.conf create mode 100644 tools/topology/topology2/include/bench/drc_controls_capture.conf create mode 100644 tools/topology/topology2/include/bench/drc_controls_playback.conf diff --git a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf index 2ce8e2fa2..4a31d27dd 100644 --- a/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf +++ b/tools/topology/topology2/cavs-mixin-mixout-efx-hda.conf @@ -56,8 +56,13 @@ Object.Pipeline { } } Object.Widget.drc.1 { - Object.Control.bytes."1" { - name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC' + Object.Control { + bytes."1" { + name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC bytes' + } + mixer."1" { + name 'Post Mixer $ANALOG_PLAYBACK_PCM DRC switch' + } } } } diff --git a/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf b/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf deleted file mode 100644 index f68857639..000000000 --- a/tools/topology/topology2/include/bench/drc_control_bytes_capture.conf +++ /dev/null @@ -1,10 +0,0 @@ - # Created initially with script "./bench_comp_generate.sh drc" - # may need edits to modify controls - Object.Control.bytes."1" { - name '$ANALOG_CAPTURE_PCM DRC bytes' - IncludeByKey.BENCH_DRC_PARAMS { - "default" "include/components/drc/default.conf" - "enabled" "include/components/drc/enabled.conf" - "passthrough" "include/components/drc/passthrough.conf" - } - } diff --git a/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf b/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf deleted file mode 100644 index ce7438e91..000000000 --- a/tools/topology/topology2/include/bench/drc_control_bytes_playback.conf +++ /dev/null @@ -1,10 +0,0 @@ - # Created initially with script "./bench_comp_generate.sh drc" - # may need edits to modify controls - Object.Control.bytes."1" { - name '$ANALOG_PLAYBACK_PCM DRC bytes' - IncludeByKey.BENCH_DRC_PARAMS { - "default" "include/components/drc/default.conf" - "enabled" "include/components/drc/enabled.conf" - "passthrough" "include/components/drc/passthrough.conf" - } - } diff --git a/tools/topology/topology2/include/bench/drc_controls_capture.conf b/tools/topology/topology2/include/bench/drc_controls_capture.conf new file mode 100644 index 000000000..c586f940b --- /dev/null +++ b/tools/topology/topology2/include/bench/drc_controls_capture.conf @@ -0,0 +1,19 @@ + # Created initially with script "./bench_comp_generate.sh drc" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in DRC + bytes."1" { + name '$ANALOG_CAPTURE_PCM DRC bytes' + IncludeByKey.BENCH_DRC_PARAMS { + "default" "include/components/drc/default.conf" + "enabled" "include/components/drc/enabled.conf" + "passthrough" "include/components/drc/passthrough.conf" + } + } + mixer."1" { + name '$ANALOG_CAPTURE_PCM DRC switch' + } + #enum."1" { + # name '$ANALOG_CAPTURE_PCM DRC enum' + #} + } diff --git a/tools/topology/topology2/include/bench/drc_controls_playback.conf b/tools/topology/topology2/include/bench/drc_controls_playback.conf new file mode 100644 index 000000000..36217ab08 --- /dev/null +++ b/tools/topology/topology2/include/bench/drc_controls_playback.conf @@ -0,0 +1,19 @@ + # Created initially with script "./bench_comp_generate.sh drc" + # may need edits to modify controls + Object.Control { + # Un-comment the supported controls in DRC + bytes."1" { + name '$ANALOG_PLAYBACK_PCM DRC bytes' + IncludeByKey.BENCH_DRC_PARAMS { + "default" "include/components/drc/default.conf" + "enabled" "include/components/drc/enabled.conf" + "passthrough" "include/components/drc/passthrough.conf" + } + } + mixer."1" { + name '$ANALOG_PLAYBACK_PCM DRC switch' + } + #enum."1" { + # name '$ANALOG_PLAYBACK_PCM DRC enum' + #} + } diff --git a/tools/topology/topology2/include/bench/drc_s16.conf b/tools/topology/topology2/include/bench/drc_s16.conf index 7d02416c1..a91888928 100644 --- a/tools/topology/topology2/include/bench/drc_s16.conf +++ b/tools/topology/topology2/include/bench/drc_s16.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/bench/drc_s24.conf b/tools/topology/topology2/include/bench/drc_s24.conf index c0d9689a7..4eb39eef9 100644 --- a/tools/topology/topology2/include/bench/drc_s24.conf +++ b/tools/topology/topology2/include/bench/drc_s24.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/bench/drc_s32.conf b/tools/topology/topology2/include/bench/drc_s32.conf index 0ca828c30..beda0c0b2 100644 --- a/tools/topology/topology2/include/bench/drc_s32.conf +++ b/tools/topology/topology2/include/bench/drc_s32.conf @@ -2,12 +2,12 @@ Object.Widget.drc.1 { index 1 - + } Object.Widget.drc.2 { index 3 - + } diff --git a/tools/topology/topology2/include/components/drc.conf b/tools/topology/topology2/include/components/drc.conf index 055074d3d..2db857f42 100644 --- a/tools/topology/topology2/include/components/drc.conf +++ b/tools/topology/topology2/include/components/drc.conf @@ -53,6 +53,26 @@ Class.Widget."drc" { unique "instance" } + # + # drc widget switch control + # + Object.Control { + mixer."1" { + Object.Base.channel.1 { + name "fc" + shift 0 + } + Object.Base.ops.1 { + name "ctl" + info "volsw" + #259 binds the mixer control to switch get/put handlers + get 259 + put 259 + } + max 1 + } + } + # # Default attributes for drc #