diff --git a/src/Printing.cpp b/src/Printing.cpp index c7ff94004..860b9d845 100644 --- a/src/Printing.cpp +++ b/src/Printing.cpp @@ -109,7 +109,8 @@ bool AudacityPrintout::OnPrintPage(int WXUNUSED(page)) r.y = y; r.width = width; r.height = (int)(n->GetHeight(true) * scale); - artist.DrawTrack(n, *dc, r, &viewInfo, false, false, false, false); + artist.DrawTrack( + n, *dc, r, SelectedRegion{}, zoomInfo, false, false, false, false); dc->SetPen(*wxBLACK_PEN); AColor::Line(*dc, 0, r.y, width, r.y); } diff --git a/src/Track.cpp b/src/Track.cpp index ae319b915..0a2b94c7a 100644 --- a/src/Track.cpp +++ b/src/Track.cpp @@ -778,8 +778,10 @@ void TrackList::RecalcPositions(TrackNodePointer node) #ifdef EXPERIMENTAL_OUTPUT_DISPLAY int cnt = 0; - if (node->prev) { - t = node->prev->t; + if (hasPrev(node)) { + auto prev = node; + --prev; + t = prev->get(); i = t->GetIndex() + 1; if(MONO_WAVE_PAN(t)) y = t->GetY(true) + t->GetHeight(true); @@ -787,8 +789,8 @@ void TrackList::RecalcPositions(TrackNodePointer node) y = t->GetY() + t->GetHeight(); } - for (const TrackListNode *n = node; n; n = n->next) { - t = n->t; + for (auto n = node; n != end(); ++n) { + t = n->get(); if(MONO_WAVE_PAN(t)) cnt++; @@ -1314,8 +1316,8 @@ int TrackList::GetHeight() const int height = 0; #ifdef EXPERIMENTAL_OUTPUT_DISPLAY - if (tail) { - const Track *t = tail->t; + if (!empty()) { + const Track *t = rbegin()->get(); if(MONO_WAVE_PAN(t)) height = t->GetY(true) + t->GetHeight(true); else diff --git a/src/TrackArtist.cpp b/src/TrackArtist.cpp index 9e1122231..af375dfea 100644 --- a/src/TrackArtist.cpp +++ b/src/TrackArtist.cpp @@ -430,7 +430,7 @@ void TrackArtist::DrawTracks(TrackList * tracks, rr.y += mInsetTop; rr.width -= (mInsetLeft + mInsetRight); rr.height -= (mInsetTop + mInsetBottom); - DrawTrack(t, dc, rr, zoomInfo, + DrawTrack(t, dc, rr, selectedRegion, zoomInfo, drawEnvelope, bigPoints, drawSliders, hasSolo); } } @@ -1224,7 +1224,7 @@ void TrackArtist::DrawMinMaxRMS(wxDC &dc, const wxRect & rect, const double env[ #ifdef EXPERIMENTAL_OUTPUT_DISPLAY r1[x0] = GetWaveYPos(-rms[x0] * env[x0]*gain, zoomMin, zoomMax, rect.height, dB, true, dBRange, true); - r2[x0] = GetWaveYPos(rms[xx0 * env[x0]*gain, zoomMin, zoomMax, + r2[x0] = GetWaveYPos(rms[x0] * env[x0]*gain, zoomMin, zoomMax, rect.height, dB, true, dBRange, true); #else r1[x0] = GetWaveYPos(-rms[x0] * env[x0], zoomMin, zoomMax, diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index 5a4b1da71..7c879e2dc 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -725,7 +725,7 @@ void TrackPanel::DeleteMenus(void) #ifdef EXPERIMENTAL_OUTPUT_DISPLAY void TrackPanel::UpdateVirtualStereoOrder() { - TrackListOfKindIterator iter(TrackKind::Wave, mTracks); + TrackListOfKindIterator iter(Track::Wave, GetTracks()); Track *t; int temp; @@ -5397,44 +5397,44 @@ void TrackPanel::HandleResizeClick( wxMouseEvent & event ) #ifdef EXPERIMENTAL_OUTPUT_DISPLAY // To do: escape key - if(MONO_WAVE_PAN(t)){ + if(MONO_WAVE_PAN(track)){ //STM: Determine whether we should rescale one or two tracks - if (t->GetVirtualStereo()) { + if (track->GetVirtualStereo()) { // mCapturedTrack is the lower track - mInitialTrackHeight = t->GetHeight(true); - mInitialUpperTrackHeight = t->GetHeight(); - SetCapturedTrack(t, IsResizingBelowLinkedTracks); + mInitialTrackHeight = track->GetHeight(true); + mInitialUpperTrackHeight = track->GetHeight(); + SetCapturedTrack(track, IsResizingBelowLinkedTracks); } else { // mCapturedTrack is the upper track - mInitialTrackHeight = t->GetHeight(true); - mInitialUpperTrackHeight = t->GetHeight(); - SetCapturedTrack(t, IsResizingBetweenLinkedTracks); + mInitialTrackHeight = track->GetHeight(true); + mInitialUpperTrackHeight = track->GetHeight(); + SetCapturedTrack(track, IsResizingBetweenLinkedTracks); } }else{ - Track *prev = mTracks->GetPrev(t); - Track *next = mTracks->GetNext(t); + Track *prev = mTracks->GetPrev(track); + Track *next = mTracks->GetNext(track); //STM: Determine whether we should rescale one or two tracks - if (prev && prev->GetLink() == t) { + if (prev && prev->GetLink() == track) { // mCapturedTrack is the lower track - mInitialTrackHeight = t->GetHeight(); - mInitialMinimized = t->GetMinimized(); + mInitialTrackHeight = track->GetHeight(); + mInitialMinimized = track->GetMinimized(); mInitialUpperTrackHeight = prev->GetHeight(); - SetCapturedTrack(t, IsResizingBelowLinkedTracks); + SetCapturedTrack(track, IsResizingBelowLinkedTracks); } - else if (next && t->GetLink() == next) { + else if (next && track->GetLink() == next) { // mCapturedTrack is the upper track mInitialTrackHeight = next->GetHeight(); mInitialMinimized = next->GetMinimized(); - mInitialUpperTrackHeight = t->GetHeight(); - SetCapturedTrack(t, IsResizingBetweenLinkedTracks); + mInitialUpperTrackHeight = track->GetHeight(); + SetCapturedTrack(track, IsResizingBetweenLinkedTracks); } else { // DM: Save the initial mouse location and the initial height - mInitialTrackHeight = t->GetHeight(); - mInitialMinimized = t->GetMinimized(); - SetCapturedTrack(t, IsResizing); + mInitialTrackHeight = track->GetHeight(); + mInitialMinimized = track->GetMinimized(); + SetCapturedTrack(track, IsResizing); } } #else // EXPERIMENTAL_OUTPUT_DISPLAY @@ -8329,9 +8329,9 @@ void TrackPanel::OnSetDisplay(wxCommandEvent & event) : WaveformSettings::stLogarithmic; } #ifdef EXPERIMENTAL_OUTPUT_DISPLAY - if (wt->GetDisplay() == WaveTrack::WaveformDisplay) { + if (wt->GetDisplay() == WaveTrack::Waveform) { wt->SetVirtualState(false); - }else if (id == WaveTrack::WaveformDisplay) { + }else if (id == WaveTrack::Waveform) { wt->SetVirtualState(true); } #endif diff --git a/src/WaveTrack.cpp b/src/WaveTrack.cpp index b4ffe2cc5..ff8cf8052 100644 --- a/src/WaveTrack.cpp +++ b/src/WaveTrack.cpp @@ -402,7 +402,7 @@ bool WaveTrack::SetPan(float newPan) else mPan = newPan; - if(mDisplay == WaveTrack::WaveformDisplay && mChannel == Track::MonoChannel && (p == 0.0f && newPan != 0.0f || p != 0.0f && newPan == 0.0f) && mMonoAsVirtualStereo) + if(mDisplay == WaveTrack::Waveform && mChannel == Track::MonoChannel && (p == 0.0f && newPan != 0.0f || p != 0.0f && newPan == 0.0f) && mMonoAsVirtualStereo) { panZero=true; if(!mPan){ @@ -458,7 +458,7 @@ int WaveTrack::GetMinimizedHeight() const return 20; } - if(GetChannel() == MonoChannel && GetPan() != 0 && mMonoAsVirtualStereo && mDisplay == WaveformDisplay) + if(GetChannel() == MonoChannel && GetPan() != 0 && mMonoAsVirtualStereo && mDisplay == Waveform) return 20; else return 40; diff --git a/src/WaveTrack.h b/src/WaveTrack.h index 96acb034c..d2cf53058 100644 --- a/src/WaveTrack.h +++ b/src/WaveTrack.h @@ -34,9 +34,19 @@ class TimeWarper; #define WAVETRACK_MERGE_POINT_TOLERANCE 0.01 #ifdef EXPERIMENTAL_OUTPUT_DISPLAY -#define MONO_WAVE_PAN(T) (T != NULL && T->GetChannel() == Track::MonoChannel && T->GetKind() == Track::Wave && ((WaveTrack *)T)->GetPan() != 0 && WaveTrack::mMonoAsVirtualStereo && ((WaveTrack *)T)->GetDisplay() == WaveTrack::WaveformDisplay) +#define MONO_WAVE_PAN(T) \ + (T != NULL && \ + T->GetChannel() == Track::MonoChannel && \ + T->GetKind() == Track::Wave && \ + ((const WaveTrack *)T)->GetPan() != 0 && \ + WaveTrack::mMonoAsVirtualStereo && \ + ((const WaveTrack *)T)->GetDisplay() == WaveTrack::Waveform) -#define MONO_PAN (mPan != 0.0 && mChannel == MonoChannel && mDisplay == WaveformDisplay && mMonoAsVirtualStereo) +#define MONO_PAN \ + (mPan != 0.0 && \ + mChannel == MonoChannel && \ + mDisplay == Waveform && \ + mMonoAsVirtualStereo) #endif /// \brief Structure to hold region of a wavetrack and a comparison function diff --git a/src/tracks/ui/EditCursorOverlay.cpp b/src/tracks/ui/EditCursorOverlay.cpp index 813067fa4..a9a1db32b 100644 --- a/src/tracks/ui/EditCursorOverlay.cpp +++ b/src/tracks/ui/EditCursorOverlay.cpp @@ -20,6 +20,10 @@ Paul Licameli split from TrackPanel.cpp #include "../../TrackPanelAx.h" #include "../../ViewInfo.h" +#ifdef EXPERIMENTAL_OUTPUT_DISPLAY +#include "../../WaveTrack.h" +#endif + #include namespace { @@ -117,10 +121,10 @@ void EditCursorOverlay::Draw(OverlayPanel &panel, wxDC &dc) // ^^^ The whole point of this routine. #ifdef EXPERIMENTAL_OUTPUT_DISPLAY - if (MONO_WAVE_PAN(t)){ - y = t->GetY(true) - mViewInfo->vpos + 1; - top = y + kTopInset; - bottom = y + t->GetHeight(true) - kTopInset; + if (MONO_WAVE_PAN(pTrack)){ + auto y = pTrack->GetY(true) - viewInfo.vpos + 1; + auto top = y + kTopInset; + auto bottom = y + pTrack->GetHeight(true) - kTopInset; AColor::Line(dc, mLastCursorX, top, mLastCursorX, bottom); } #endif