1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-03 17:39:25 +02:00

Eliminate some unnecessary track type tests

This commit is contained in:
Paul Licameli 2017-08-12 01:07:12 -04:00
parent 7d55defde6
commit fbec3efa0c
8 changed files with 15 additions and 29 deletions

View File

@ -57,8 +57,7 @@ UIHandlePtr NoteTrackButtonHandle::HitTest
TrackInfo::GetMidiControlsRect(rect, midiRect); TrackInfo::GetMidiControlsRect(rect, midiRect);
if ( TrackInfo::HideTopItem( rect, midiRect ) ) if ( TrackInfo::HideTopItem( rect, midiRect ) )
return {}; return {};
if (pTrack->GetKind() == Track::Note && if (midiRect.Contains(state.m_x, state.m_y)) {
midiRect.Contains(state.m_x, state.m_y)) {
auto channel = pTrack->FindChannel(midiRect, state.m_x, state.m_y); auto channel = pTrack->FindChannel(midiRect, state.m_x, state.m_y);
auto result = std::make_shared<NoteTrackButtonHandle>( auto result = std::make_shared<NoteTrackButtonHandle>(
pTrack, channel, midiRect ); pTrack, channel, midiRect );

View File

@ -111,7 +111,6 @@ void NoteTrackMenuTable::OnChangeOctave(wxCommandEvent &event)
wxASSERT(event.GetId() == OnUpOctaveID wxASSERT(event.GetId() == OnUpOctaveID
|| event.GetId() == OnDownOctaveID); || event.GetId() == OnDownOctaveID);
wxASSERT(pTrack->GetKind() == Track::Note);
const bool bDown = (OnDownOctaveID == event.GetId()); const bool bDown = (OnDownOctaveID == event.GetId());
pTrack->SetBottomNote pTrack->SetBottomNote

View File

@ -64,10 +64,10 @@ unsigned NoteTrackVRulerControls::HandleWheelRotation
const auto pTrack = FindTrack(); const auto pTrack = FindTrack();
if (!pTrack) if (!pTrack)
return RefreshNone; return RefreshNone;
wxASSERT(pTrack->GetKind() == Track::Note);
auto steps = evt.steps;
auto steps = evt.steps;
const auto nt = static_cast<NoteTrack*>(pTrack.get()); const auto nt = static_cast<NoteTrack*>(pTrack.get());
if (event.CmdDown() && !event.ShiftDown()) { if (event.CmdDown() && !event.ShiftDown()) {
if (steps > 0) if (steps > 0)
nt->ZoomIn(evt.rect, evt.event.m_y); nt->ZoomIn(evt.rect, evt.event.m_y);

View File

@ -76,7 +76,7 @@ UIHandlePtr StretchHandle::HitTest
// within the selection // within the selection
const ViewInfo &viewInfo = pProject->GetViewInfo(); const ViewInfo &viewInfo = pProject->GetViewInfo();
if (!pTrack || !pTrack->GetSelected() || pTrack->GetKind() != Track::Note) if (!pTrack || !pTrack->GetSelected())
return {}; return {};
const wxRect &rect = st.rect; const wxRect &rect = st.rect;

View File

@ -104,12 +104,9 @@ UIHandlePtr CutlineHandle::HitTest
const ViewInfo &viewInfo = pProject->GetViewInfo(); const ViewInfo &viewInfo = pProject->GetViewInfo();
/// method that tells us if the mouse event landed on an /// method that tells us if the mouse event landed on an
/// editable Cutline /// editable Cutline
if (pTrack->GetKind() != Track::Wave)
return {};
WaveTrack *wavetrack = pTrack.get();
WaveTrackLocation location; WaveTrackLocation location;
if (!IsOverCutline(viewInfo, wavetrack, rect, state, &location)) if (!IsOverCutline(viewInfo, pTrack.get(), rect, state, &location))
return {}; return {};
auto result = std::make_shared<CutlineHandle>( pTrack, location ); auto result = std::make_shared<CutlineHandle>( pTrack, location );

View File

@ -115,7 +115,9 @@ UIHandlePtr SampleHandle::HitTest
{ {
const ViewInfo &viewInfo = pProject->GetViewInfo(); const ViewInfo &viewInfo = pProject->GetViewInfo();
WaveTrack *wavetrack = pTrack.get(); /// method that tells us if the mouse event landed on an
/// editable sample
const auto wavetrack = pTrack.get();
const int displayType = wavetrack->GetDisplay(); const int displayType = wavetrack->GetDisplay();
if (WaveTrack::Waveform != displayType) if (WaveTrack::Waveform != displayType)
@ -173,12 +175,8 @@ namespace {
/// @return true if we can edit the samples, false otherwise. /// @return true if we can edit the samples, false otherwise.
bool IsSampleEditingPossible bool IsSampleEditingPossible
(const wxMouseEvent &event, (const wxMouseEvent &event,
const wxRect &rect, const ViewInfo &viewInfo, Track *pTrack, int width) const wxRect &rect, const ViewInfo &viewInfo, WaveTrack *wt, int width)
{ {
if (pTrack->GetKind() != Track::Wave)
return false;
WaveTrack *wt = static_cast<WaveTrack*>(pTrack);
//Get out of here if we shouldn't be drawing right now: //Get out of here if we shouldn't be drawing right now:
//If we aren't displaying the waveform, Display a message dialog //If we aren't displaying the waveform, Display a message dialog
const int display = wt->GetDisplay(); const int display = wt->GetDisplay();

View File

@ -207,8 +207,7 @@ void WaveColorMenuTable::OnWaveColorChange(wxCommandEvent & event)
{ {
int id = event.GetId(); int id = event.GetId();
wxASSERT(id >= OnInstrument1ID && id <= OnInstrument4ID); wxASSERT(id >= OnInstrument1ID && id <= OnInstrument4ID);
WaveTrack *const pTrack = static_cast<WaveTrack*>(mpData->pTrack); const auto pTrack = static_cast<WaveTrack*>(mpData->pTrack);
wxASSERT(pTrack && pTrack->GetKind() == Track::Wave);
int newWaveColor = id - OnInstrument1ID; int newWaveColor = id - OnInstrument1ID;
@ -307,8 +306,7 @@ void FormatMenuTable::OnFormatChange(wxCommandEvent & event)
{ {
int id = event.GetId(); int id = event.GetId();
wxASSERT(id >= On16BitID && id <= OnFloatID); wxASSERT(id >= On16BitID && id <= OnFloatID);
WaveTrack *const pTrack = static_cast<WaveTrack*>(mpData->pTrack); const auto pTrack = static_cast<WaveTrack*>(mpData->pTrack);
wxASSERT(pTrack && pTrack->GetKind() == Track::Wave);
sampleFormat newFormat = int16Sample; sampleFormat newFormat = int16Sample;
@ -448,8 +446,7 @@ void RateMenuTable::OnRateChange(wxCommandEvent & event)
{ {
int id = event.GetId(); int id = event.GetId();
wxASSERT(id >= OnRate8ID && id <= OnRate384ID); wxASSERT(id >= OnRate8ID && id <= OnRate384ID);
WaveTrack *const pTrack = static_cast<WaveTrack*>(mpData->pTrack); const auto pTrack = static_cast<WaveTrack*>(mpData->pTrack);
wxASSERT(pTrack->GetKind() == Track::Wave);
SetRate(pTrack, gRates[id - OnRate8ID]); SetRate(pTrack, gRates[id - OnRate8ID]);
@ -459,8 +456,7 @@ void RateMenuTable::OnRateChange(wxCommandEvent & event)
void RateMenuTable::OnRateOther(wxCommandEvent &) void RateMenuTable::OnRateOther(wxCommandEvent &)
{ {
WaveTrack *const pTrack = static_cast<WaveTrack*>(mpData->pTrack); const auto pTrack = static_cast<WaveTrack*>(mpData->pTrack);
wxASSERT(pTrack && pTrack->GetKind() == Track::Wave);
int newRate; int newRate;
@ -710,8 +706,7 @@ void WaveTrackMenuTable::OnSetDisplay(wxCommandEvent & event)
{ {
int idInt = event.GetId(); int idInt = event.GetId();
wxASSERT(idInt >= OnWaveformID && idInt <= OnSpectrumID); wxASSERT(idInt >= OnWaveformID && idInt <= OnSpectrumID);
WaveTrack *const pTrack = static_cast<WaveTrack*>(mpData->pTrack); const auto pTrack = static_cast<WaveTrack*>(mpData->pTrack);
wxASSERT(pTrack && pTrack->GetKind() == Track::Wave);
bool linear = false; bool linear = false;
WaveTrack::WaveTrackDisplay id; WaveTrack::WaveTrackDisplay id;

View File

@ -54,7 +54,6 @@ void WaveTrackVRulerControls::DoZoomPreset( int i)
const auto pTrack = FindTrack(); const auto pTrack = FindTrack();
if (!pTrack) if (!pTrack)
return; return;
wxASSERT(pTrack->GetKind() == Track::Wave);
const auto wt = static_cast<WaveTrack*>(pTrack.get()); const auto wt = static_cast<WaveTrack*>(pTrack.get());
@ -84,10 +83,9 @@ unsigned WaveTrackVRulerControls::HandleWheelRotation
const auto pTrack = FindTrack(); const auto pTrack = FindTrack();
if (!pTrack) if (!pTrack)
return RefreshNone; return RefreshNone;
wxASSERT(pTrack->GetKind() == Track::Wave); const auto wt = static_cast<WaveTrack*>(pTrack.get());
auto steps = evt.steps; auto steps = evt.steps;
WaveTrack *const wt = static_cast<WaveTrack*>(pTrack.get());
const bool isDB = const bool isDB =
wt->GetDisplay() == WaveTrack::Waveform && wt->GetDisplay() == WaveTrack::Waveform &&
wt->GetWaveformSettings().scaleType == WaveformSettings::stLogarithmic; wt->GetWaveformSettings().scaleType == WaveformSettings::stLogarithmic;