1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-03 22:19:07 +02:00

Bug 1366 - Using the sliders in Mixer Toolbar in a Project-2 alters levels in on-going recording (or playback) in Project-1

Should be okay now...
This commit is contained in:
Leland Lucius 2020-03-19 23:36:17 -05:00
parent f6cfa0597e
commit c690e03471
2 changed files with 13 additions and 5 deletions

View File

@ -60,6 +60,7 @@ MixerToolBar::MixerToolBar( AudacityProject &project )
{ {
mInputSliderVolume = 0.0; mInputSliderVolume = 0.0;
mOutputSliderVolume = 0.0; mOutputSliderVolume = 0.0;
mEnabled = true;
} }
MixerToolBar::~MixerToolBar() MixerToolBar::~MixerToolBar()
@ -121,13 +122,15 @@ void MixerToolBar::Populate()
this); this);
// Show or hide the input slider based on whether it works // Show or hide the input slider based on whether it works
auto gAudioIO = AudioIO::Get(); auto gAudioIO = AudioIO::Get();
mInputSlider->Enable(gAudioIO->InputMixerWorks()); mInputSlider->Enable(mEnabled && gAudioIO->InputMixerWorks());
mOutputSlider->Enable(mEnabled);
UpdateControls(); UpdateControls();
// Add a little space // Add a little space
Add(2, -1); Add(2, -1);
// Listen for capture events
wxTheApp->Bind(EVT_AUDIOIO_CAPTURE, wxTheApp->Bind(EVT_AUDIOIO_CAPTURE,
&MixerToolBar::OnAudioCapture, &MixerToolBar::OnAudioCapture,
this); this);
@ -135,11 +138,14 @@ void MixerToolBar::Populate()
void MixerToolBar::OnAudioCapture(wxCommandEvent & event) void MixerToolBar::OnAudioCapture(wxCommandEvent & event)
{ {
event.Skip();
AudacityProject *p = &mProject; AudacityProject *p = &mProject;
if (event.GetEventObject() != p) if ((AudacityProject *) event.GetEventObject() != p)
{ {
mInputSlider->Enable(!event.GetInt()); mEnabled = !event.GetInt();
mOutputSlider->Enable(!event.GetInt()); mInputSlider->Enable(mEnabled);
mOutputSlider->Enable(mEnabled);
} }
} }
@ -183,7 +189,7 @@ void MixerToolBar::UpdatePrefs()
gAudioIO->GetMixer(&inputSource, &inputVolume, &playbackVolume); gAudioIO->GetMixer(&inputSource, &inputVolume, &playbackVolume);
// Show or hide the input slider based on whether it works // Show or hide the input slider based on whether it works
mInputSlider->Enable(gAudioIO->InputMixerWorks()); mInputSlider->Enable(mEnabled && gAudioIO->InputMixerWorks());
Layout(); Layout();
// This code is from before the mixer toolbar was resizable. // This code is from before the mixer toolbar was resizable.
@ -227,6 +233,7 @@ void MixerToolBar::UpdateControls()
// Show or hide the input slider based on whether it works // Show or hide the input slider based on whether it works
auto gAudioIO = AudioIO::Get(); auto gAudioIO = AudioIO::Get();
mInputSlider->Enable(mEnabled && gAudioIO->InputMixerWorks());
gAudioIO->GetMixer(&inputSource, &inputVolume, &playbackVolume); gAudioIO->GetMixer(&inputSource, &inputVolume, &playbackVolume);

View File

@ -67,6 +67,7 @@ class MixerToolBar final : public ToolBar {
ASlider *mInputSlider; ASlider *mInputSlider;
ASlider *mOutputSlider; ASlider *mOutputSlider;
bool mEnabled;
public: public: