Audacity 3.2.0
Functions
WaveTrackLocation.cpp File Reference
#include "WaveTrackLocation.h"
#include "WaveTrack.h"
#include "WaveClip.h"
#include <cmath>
Include dependency graph for WaveTrackLocation.cpp:

Go to the source code of this file.

Functions

WaveTrackLocations FindWaveTrackLocations (const WaveTrack &track)
 

Function Documentation

◆ FindWaveTrackLocations()

WaveTrackLocations FindWaveTrackLocations ( const WaveTrack track)

Definition at line 17 of file WaveTrackLocation.cpp.

18{
19 WaveTrackLocations locations;
20
21 auto clips = track.SortedIntervalArray();
22
23 // Count number of display locations
24 int num = 0;
25 for (const auto clip : clips)
26 num += clip->NumCutLines();
27
28 if (num == 0)
29 return locations;
30
31 // Alloc necessary number of display locations
32 locations.reserve(num);
33
34 // Add all display locations to cache
35 int curpos = 0;
36
37 for (const auto clip: clips) {
38 for (const auto &cc : clip->GetCutLines()) {
39 auto cutlinePosition =
40 clip->GetSequenceStartTime() + cc->GetSequenceStartTime();
41 if (clip->WithinPlayRegion(cutlinePosition)) {
42 // Add cut line expander point
43 locations.emplace_back(cutlinePosition);
44 }
45 // If cutline is skipped, we still need to count it
46 // so that curpos matches num at the end
47 curpos++;
48 }
49 }
50
51 assert(curpos == num);
52
53 return locations;
54}
std::vector< WaveTrackLocation > WaveTrackLocations
IntervalHolders SortedIntervalArray()
Return all WaveClips sorted by clip play start time.
Definition: WaveTrack.cpp:3297

References WaveTrack::SortedIntervalArray().

Referenced by WaveChannelSubView::DrawBoldBoundaries(), and CutlineHandle::HitTest().

Here is the call graph for this function:
Here is the caller graph for this function: