1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-11 09:31:13 +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.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);
}

View File

@ -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

View File

@ -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,

View File

@ -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

View File

@ -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;

View File

@ -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

View File

@ -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 <wx/dc.h>
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