1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-04-04 13:27:39 +02:00

Bug2598: Envelope edit not dependend on visibility of channels...

... And other rewrites.  Don't use a cache of wave clip X coordinates computed
during drawing.
This commit is contained in:
Paul Licameli
2020-11-19 22:26:10 -05:00
parent 3c76cea190
commit 6050edb3ca
9 changed files with 26 additions and 71 deletions

View File

@@ -2069,19 +2069,6 @@ void WaveTrack::GetEnvelopeValues(double *buffer, size_t bufferLen,
}
}
WaveClip* WaveTrack::GetClipAtX(int xcoord)
{
for (const auto &clip: mClips)
{
wxRect r;
clip->GetDisplayRect(&r);
if (xcoord >= r.x && xcoord < r.x+r.width)
return clip.get();
}
return NULL;
}
WaveClip* WaveTrack::GetClipAtSample(sampleCount sample)
{
for (const auto &clip: mClips)
@@ -2119,18 +2106,18 @@ WaveClip* WaveTrack::GetClipAtTime(double time)
return p != clips.rend() ? *p : nullptr;
}
Envelope* WaveTrack::GetEnvelopeAtX(int xcoord)
Envelope* WaveTrack::GetEnvelopeAtTime(double time)
{
WaveClip* clip = GetClipAtX(xcoord);
WaveClip* clip = GetClipAtTime(time);
if (clip)
return clip->GetEnvelope();
else
return NULL;
}
Sequence* WaveTrack::GetSequenceAtX(int xcoord)
Sequence* WaveTrack::GetSequenceAtTime(double time)
{
WaveClip* clip = GetClipAtX(xcoord);
WaveClip* clip = GetClipAtTime(time);
if (clip)
return clip->GetSequence();
else