mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-08 17:46:25 +01:00
null checks
This commit is contained in:
@@ -38,18 +38,24 @@ std::shared_ptr<NoteTrack> VelocitySliderHandle::GetNoteTrack()
|
|||||||
|
|
||||||
float VelocitySliderHandle::GetValue()
|
float VelocitySliderHandle::GetValue()
|
||||||
{
|
{
|
||||||
return GetNoteTrack()->GetVelocity();
|
if (GetNoteTrack())
|
||||||
|
return GetNoteTrack()->GetVelocity();
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UIHandle::Result VelocitySliderHandle::SetValue
|
UIHandle::Result VelocitySliderHandle::SetValue
|
||||||
(AudacityProject *pProject, float newValue)
|
(AudacityProject *pProject, float newValue)
|
||||||
{
|
{
|
||||||
auto pTrack = GetNoteTrack();
|
auto pTrack = GetNoteTrack();
|
||||||
pTrack->SetVelocity(newValue);
|
|
||||||
|
|
||||||
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
|
if (pTrack) {
|
||||||
if (pMixerBoard)
|
pTrack->SetVelocity(newValue);
|
||||||
pMixerBoard->UpdateVelocity(pTrack.get());
|
|
||||||
|
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
|
||||||
|
if (pMixerBoard)
|
||||||
|
pMixerBoard->UpdateVelocity(pTrack.get());
|
||||||
|
}
|
||||||
|
|
||||||
return RefreshCode::RefreshCell;
|
return RefreshCode::RefreshCell;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,23 +35,29 @@ std::shared_ptr<WaveTrack> GainSliderHandle::GetWaveTrack()
|
|||||||
|
|
||||||
float GainSliderHandle::GetValue()
|
float GainSliderHandle::GetValue()
|
||||||
{
|
{
|
||||||
return GetWaveTrack()->GetGain();
|
if (GetWaveTrack())
|
||||||
|
return GetWaveTrack()->GetGain();
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UIHandle::Result GainSliderHandle::SetValue
|
UIHandle::Result GainSliderHandle::SetValue
|
||||||
(AudacityProject *pProject, float newValue)
|
(AudacityProject *pProject, float newValue)
|
||||||
{
|
{
|
||||||
auto pTrack = GetWaveTrack();
|
auto pTrack = GetWaveTrack();
|
||||||
pTrack->SetGain(newValue);
|
|
||||||
|
|
||||||
// Assume linked track is wave or null
|
if (pTrack) {
|
||||||
const auto link = static_cast<WaveTrack*>(mpTrack.lock()->GetLink());
|
pTrack->SetGain(newValue);
|
||||||
if (link)
|
|
||||||
link->SetGain(newValue);
|
|
||||||
|
|
||||||
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
|
// Assume linked track is wave or null
|
||||||
if (pMixerBoard)
|
const auto link = static_cast<WaveTrack*>(mpTrack.lock()->GetLink());
|
||||||
pMixerBoard->UpdateGain(pTrack.get());
|
if (link)
|
||||||
|
link->SetGain(newValue);
|
||||||
|
|
||||||
|
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
|
||||||
|
if (pMixerBoard)
|
||||||
|
pMixerBoard->UpdateGain(pTrack.get());
|
||||||
|
}
|
||||||
|
|
||||||
return RefreshCode::RefreshNone;
|
return RefreshCode::RefreshNone;
|
||||||
}
|
}
|
||||||
@@ -112,35 +118,40 @@ std::shared_ptr<WaveTrack> PanSliderHandle::GetWaveTrack()
|
|||||||
|
|
||||||
float PanSliderHandle::GetValue()
|
float PanSliderHandle::GetValue()
|
||||||
{
|
{
|
||||||
return GetWaveTrack()->GetPan();
|
if (GetWaveTrack())
|
||||||
|
return GetWaveTrack()->GetPan();
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
UIHandle::Result PanSliderHandle::SetValue(AudacityProject *pProject, float newValue)
|
UIHandle::Result PanSliderHandle::SetValue(AudacityProject *pProject, float newValue)
|
||||||
{
|
{
|
||||||
auto pTrack = GetWaveTrack();
|
|
||||||
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
|
|
||||||
bool panZero = false;
|
|
||||||
panZero = static_cast<WaveTrack*>(mpTrack)->SetPan(newValue);
|
|
||||||
#else
|
|
||||||
pTrack->SetPan(newValue);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Assume linked track is wave or null
|
|
||||||
const auto link = static_cast<WaveTrack*>(pTrack->GetLink());
|
|
||||||
if (link)
|
|
||||||
link->SetPan(newValue);
|
|
||||||
|
|
||||||
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
|
|
||||||
if (pMixerBoard)
|
|
||||||
pMixerBoard->UpdatePan(pTrack.get());
|
|
||||||
|
|
||||||
using namespace RefreshCode;
|
using namespace RefreshCode;
|
||||||
Result result = RefreshNone;
|
Result result = RefreshNone;
|
||||||
|
auto pTrack = GetWaveTrack();
|
||||||
|
|
||||||
|
if (pTrack) {
|
||||||
|
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
|
||||||
|
bool panZero = false;
|
||||||
|
panZero = static_cast<WaveTrack*>(mpTrack)->SetPan(newValue);
|
||||||
|
#else
|
||||||
|
pTrack->SetPan(newValue);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// Assume linked track is wave or null
|
||||||
|
const auto link = static_cast<WaveTrack*>(pTrack->GetLink());
|
||||||
|
if (link)
|
||||||
|
link->SetPan(newValue);
|
||||||
|
|
||||||
|
MixerBoard *const pMixerBoard = pProject->GetMixerBoard();
|
||||||
|
if (pMixerBoard)
|
||||||
|
pMixerBoard->UpdatePan(pTrack.get());
|
||||||
|
|
||||||
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
|
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
|
||||||
if(panZero)
|
if(panZero)
|
||||||
result |= FixScrollbars;
|
result |= FixScrollbars;
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user