[Solved] Feedback warning not appearing

A few people have needed help disabling the pop-up banner “Audio input is muted by default”:

I need help enabling the default mute, which has disappeared for some reason.

I have been looking extensively at juce_StandaloneFilterWindow.h, specifically the SettingsComponent constructor, the showAudioSettingsDialog, and the saveAudioDeviceState/reloadAudioDeviceState methods.

What is very strange is this check

    bool getProcessorHasPotentialFeedbackLoop() const    { return processorHasPotentialFeedbackLoop; }

returns a bool which is a const true

    // avoid feedback loop by default
    bool processorHasPotentialFeedbackLoop = true;

yet, this block of code:

            if (owner.getProcessorHasPotentialFeedbackLoop())
            {
                addAndMakeVisible (shouldMuteButton);
                addAndMakeVisible (shouldMuteLabel);

                shouldMuteLabel.attachToComponent (&shouldMuteButton, true);
            }

is getting “false” for the potential feedback loop:

What is going on here?

thanks!


edit: Even when I disable the if check and just insist that the shouldMutebutton and shouldMuteLabel are added, they still do not appear.

I tried this to force the mute:

SmplcompAudioProcessor::SmplcompAudioProcessor()
    : AudioProcessor(), parameters(*this, nullptr, "PARAMETERS", createParameterLayout())
{
    if (juce::JUCEApplicationBase::isStandaloneApp())
    {
        if (auto* pluginHolder = juce::StandalonePluginHolder::getInstance())
        {
            pluginHolder->getMuteInputValue().setValue(false);
        }
    }

but it didn’t have any effect, iirc, pluginHolder was not yet fully initialized at this point during the processor’s construction.

In the end, setting this parameter was the culprit:
image

Having {0, 0} as a channel configuration prevents creation of the mute button and label. Solved!

Here’s how I solved it :