1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-11 17:41:15 +02:00

Make EXPERIMENTAL_OUTPUT_DISPLAY compile

This commit is contained in:
Paul Licameli 2017-01-06 11:23:02 -05:00
parent ed8c7fd60d
commit 64d163ebcd
7 changed files with 57 additions and 40 deletions

View File

@ -109,7 +109,8 @@ bool AudacityPrintout::OnPrintPage(int WXUNUSED(page))
r.y = y; r.y = y;
r.width = width; r.width = width;
r.height = (int)(n->GetHeight(true) * scale); 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); dc->SetPen(*wxBLACK_PEN);
AColor::Line(*dc, 0, r.y, width, r.y); AColor::Line(*dc, 0, r.y, width, r.y);
} }

View File

@ -778,8 +778,10 @@ void TrackList::RecalcPositions(TrackNodePointer node)
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #ifdef EXPERIMENTAL_OUTPUT_DISPLAY
int cnt = 0; int cnt = 0;
if (node->prev) { if (hasPrev(node)) {
t = node->prev->t; auto prev = node;
--prev;
t = prev->get();
i = t->GetIndex() + 1; i = t->GetIndex() + 1;
if(MONO_WAVE_PAN(t)) if(MONO_WAVE_PAN(t))
y = t->GetY(true) + t->GetHeight(true); y = t->GetY(true) + t->GetHeight(true);
@ -787,8 +789,8 @@ void TrackList::RecalcPositions(TrackNodePointer node)
y = t->GetY() + t->GetHeight(); y = t->GetY() + t->GetHeight();
} }
for (const TrackListNode *n = node; n; n = n->next) { for (auto n = node; n != end(); ++n) {
t = n->t; t = n->get();
if(MONO_WAVE_PAN(t)) if(MONO_WAVE_PAN(t))
cnt++; cnt++;
@ -1314,8 +1316,8 @@ int TrackList::GetHeight() const
int height = 0; int height = 0;
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #ifdef EXPERIMENTAL_OUTPUT_DISPLAY
if (tail) { if (!empty()) {
const Track *t = tail->t; const Track *t = rbegin()->get();
if(MONO_WAVE_PAN(t)) if(MONO_WAVE_PAN(t))
height = t->GetY(true) + t->GetHeight(true); height = t->GetY(true) + t->GetHeight(true);
else else

View File

@ -430,7 +430,7 @@ void TrackArtist::DrawTracks(TrackList * tracks,
rr.y += mInsetTop; rr.y += mInsetTop;
rr.width -= (mInsetLeft + mInsetRight); rr.width -= (mInsetLeft + mInsetRight);
rr.height -= (mInsetTop + mInsetBottom); rr.height -= (mInsetTop + mInsetBottom);
DrawTrack(t, dc, rr, zoomInfo, DrawTrack(t, dc, rr, selectedRegion, zoomInfo,
drawEnvelope, bigPoints, drawSliders, hasSolo); drawEnvelope, bigPoints, drawSliders, hasSolo);
} }
} }
@ -1224,7 +1224,7 @@ void TrackArtist::DrawMinMaxRMS(wxDC &dc, const wxRect & rect, const double env[
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #ifdef EXPERIMENTAL_OUTPUT_DISPLAY
r1[x0] = GetWaveYPos(-rms[x0] * env[x0]*gain, zoomMin, zoomMax, r1[x0] = GetWaveYPos(-rms[x0] * env[x0]*gain, zoomMin, zoomMax,
rect.height, dB, true, dBRange, true); 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); rect.height, dB, true, dBRange, true);
#else #else
r1[x0] = GetWaveYPos(-rms[x0] * env[x0], zoomMin, zoomMax, r1[x0] = GetWaveYPos(-rms[x0] * env[x0], zoomMin, zoomMax,

View File

@ -725,7 +725,7 @@ void TrackPanel::DeleteMenus(void)
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #ifdef EXPERIMENTAL_OUTPUT_DISPLAY
void TrackPanel::UpdateVirtualStereoOrder() void TrackPanel::UpdateVirtualStereoOrder()
{ {
TrackListOfKindIterator iter(TrackKind::Wave, mTracks); TrackListOfKindIterator iter(Track::Wave, GetTracks());
Track *t; Track *t;
int temp; int temp;
@ -5397,44 +5397,44 @@ void TrackPanel::HandleResizeClick( wxMouseEvent & event )
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #ifdef EXPERIMENTAL_OUTPUT_DISPLAY
// To do: escape key // To do: escape key
if(MONO_WAVE_PAN(t)){ if(MONO_WAVE_PAN(track)){
//STM: Determine whether we should rescale one or two tracks //STM: Determine whether we should rescale one or two tracks
if (t->GetVirtualStereo()) { if (track->GetVirtualStereo()) {
// mCapturedTrack is the lower track // mCapturedTrack is the lower track
mInitialTrackHeight = t->GetHeight(true); mInitialTrackHeight = track->GetHeight(true);
mInitialUpperTrackHeight = t->GetHeight(); mInitialUpperTrackHeight = track->GetHeight();
SetCapturedTrack(t, IsResizingBelowLinkedTracks); SetCapturedTrack(track, IsResizingBelowLinkedTracks);
} }
else { else {
// mCapturedTrack is the upper track // mCapturedTrack is the upper track
mInitialTrackHeight = t->GetHeight(true); mInitialTrackHeight = track->GetHeight(true);
mInitialUpperTrackHeight = t->GetHeight(); mInitialUpperTrackHeight = track->GetHeight();
SetCapturedTrack(t, IsResizingBetweenLinkedTracks); SetCapturedTrack(track, IsResizingBetweenLinkedTracks);
} }
}else{ }else{
Track *prev = mTracks->GetPrev(t); Track *prev = mTracks->GetPrev(track);
Track *next = mTracks->GetNext(t); Track *next = mTracks->GetNext(track);
//STM: Determine whether we should rescale one or two tracks //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 // mCapturedTrack is the lower track
mInitialTrackHeight = t->GetHeight(); mInitialTrackHeight = track->GetHeight();
mInitialMinimized = t->GetMinimized(); mInitialMinimized = track->GetMinimized();
mInitialUpperTrackHeight = prev->GetHeight(); 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 // mCapturedTrack is the upper track
mInitialTrackHeight = next->GetHeight(); mInitialTrackHeight = next->GetHeight();
mInitialMinimized = next->GetMinimized(); mInitialMinimized = next->GetMinimized();
mInitialUpperTrackHeight = t->GetHeight(); mInitialUpperTrackHeight = track->GetHeight();
SetCapturedTrack(t, IsResizingBetweenLinkedTracks); SetCapturedTrack(track, IsResizingBetweenLinkedTracks);
} }
else { else {
// DM: Save the initial mouse location and the initial height // DM: Save the initial mouse location and the initial height
mInitialTrackHeight = t->GetHeight(); mInitialTrackHeight = track->GetHeight();
mInitialMinimized = t->GetMinimized(); mInitialMinimized = track->GetMinimized();
SetCapturedTrack(t, IsResizing); SetCapturedTrack(track, IsResizing);
} }
} }
#else // EXPERIMENTAL_OUTPUT_DISPLAY #else // EXPERIMENTAL_OUTPUT_DISPLAY
@ -8329,9 +8329,9 @@ void TrackPanel::OnSetDisplay(wxCommandEvent & event)
: WaveformSettings::stLogarithmic; : WaveformSettings::stLogarithmic;
} }
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #ifdef EXPERIMENTAL_OUTPUT_DISPLAY
if (wt->GetDisplay() == WaveTrack::WaveformDisplay) { if (wt->GetDisplay() == WaveTrack::Waveform) {
wt->SetVirtualState(false); wt->SetVirtualState(false);
}else if (id == WaveTrack::WaveformDisplay) { }else if (id == WaveTrack::Waveform) {
wt->SetVirtualState(true); wt->SetVirtualState(true);
} }
#endif #endif

View File

@ -402,7 +402,7 @@ bool WaveTrack::SetPan(float newPan)
else else
mPan = newPan; 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; panZero=true;
if(!mPan){ if(!mPan){
@ -458,7 +458,7 @@ int WaveTrack::GetMinimizedHeight() const
return 20; return 20;
} }
if(GetChannel() == MonoChannel && GetPan() != 0 && mMonoAsVirtualStereo && mDisplay == WaveformDisplay) if(GetChannel() == MonoChannel && GetPan() != 0 && mMonoAsVirtualStereo && mDisplay == Waveform)
return 20; return 20;
else else
return 40; return 40;

View File

@ -34,9 +34,19 @@ class TimeWarper;
#define WAVETRACK_MERGE_POINT_TOLERANCE 0.01 #define WAVETRACK_MERGE_POINT_TOLERANCE 0.01
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #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 #endif
/// \brief Structure to hold region of a wavetrack and a comparison function /// \brief Structure to hold region of a wavetrack and a comparison function

View File

@ -20,6 +20,10 @@ Paul Licameli split from TrackPanel.cpp
#include "../../TrackPanelAx.h" #include "../../TrackPanelAx.h"
#include "../../ViewInfo.h" #include "../../ViewInfo.h"
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY
#include "../../WaveTrack.h"
#endif
#include <wx/dc.h> #include <wx/dc.h>
namespace { namespace {
@ -117,10 +121,10 @@ void EditCursorOverlay::Draw(OverlayPanel &panel, wxDC &dc)
// ^^^ The whole point of this routine. // ^^^ The whole point of this routine.
#ifdef EXPERIMENTAL_OUTPUT_DISPLAY #ifdef EXPERIMENTAL_OUTPUT_DISPLAY
if (MONO_WAVE_PAN(t)){ if (MONO_WAVE_PAN(pTrack)){
y = t->GetY(true) - mViewInfo->vpos + 1; auto y = pTrack->GetY(true) - viewInfo.vpos + 1;
top = y + kTopInset; auto top = y + kTopInset;
bottom = y + t->GetHeight(true) - kTopInset; auto bottom = y + pTrack->GetHeight(true) - kTopInset;
AColor::Line(dc, mLastCursorX, top, mLastCursorX, bottom); AColor::Line(dc, mLastCursorX, top, mLastCursorX, bottom);
} }
#endif #endif