1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-08 17:46:25 +01:00

null checks

This commit is contained in:
Paul Licameli
2017-07-15 14:05:03 -04:00
parent 38fd97b8e2
commit 89c8e8ac39
2 changed files with 51 additions and 34 deletions

View File

@@ -38,18 +38,24 @@ std::shared_ptr<NoteTrack> VelocitySliderHandle::GetNoteTrack()
float VelocitySliderHandle::GetValue()
{
if (GetNoteTrack())
return GetNoteTrack()->GetVelocity();
else
return 0;
}
UIHandle::Result VelocitySliderHandle::SetValue
(AudacityProject *pProject, float newValue)
{
auto pTrack = GetNoteTrack();
if (pTrack) {
pTrack->SetVelocity(newValue);
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
if (pMixerBoard)
pMixerBoard->UpdateVelocity(pTrack.get());
}
return RefreshCode::RefreshCell;
}

View File

@@ -35,13 +35,18 @@ std::shared_ptr<WaveTrack> GainSliderHandle::GetWaveTrack()
float GainSliderHandle::GetValue()
{
if (GetWaveTrack())
return GetWaveTrack()->GetGain();
else
return 0;
}
UIHandle::Result GainSliderHandle::SetValue
(AudacityProject *pProject, float newValue)
{
auto pTrack = GetWaveTrack();
if (pTrack) {
pTrack->SetGain(newValue);
// Assume linked track is wave or null
@@ -52,6 +57,7 @@ UIHandle::Result GainSliderHandle::SetValue
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
if (pMixerBoard)
pMixerBoard->UpdateGain(pTrack.get());
}
return RefreshCode::RefreshNone;
}
@@ -112,12 +118,19 @@ std::shared_ptr<WaveTrack> PanSliderHandle::GetWaveTrack()
float PanSliderHandle::GetValue()
{
if (GetWaveTrack())
return GetWaveTrack()->GetPan();
else
return 0;
}
UIHandle::Result PanSliderHandle::SetValue(AudacityProject *pProject, float newValue)
{
using namespace RefreshCode;
Result result = RefreshNone;
auto pTrack = GetWaveTrack();
if (pTrack) {
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
bool panZero = false;
panZero = static_cast<WaveTrack*>(mpTrack)->SetPan(newValue);
@@ -134,13 +147,11 @@ UIHandle::Result PanSliderHandle::SetValue(AudacityProject *pProject, float newV
if (pMixerBoard)
pMixerBoard->UpdatePan(pTrack.get());
using namespace RefreshCode;
Result result = RefreshNone;
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
if(panZero)
result |= FixScrollbars;
#endif
}
return result;
}