MCPcopy Create free account
hub / github.com/audacity/audacity / FindWaveTrackLocations

Function FindWaveTrackLocations

src/WaveTrackLocation.cpp:17–54  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

15#include <cmath>
16
17WaveTrackLocations FindWaveTrackLocations(const WaveTrack &track)
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}
55

Callers 2

HitTestMethod · 0.85
DrawBoldBoundariesMethod · 0.85

Calls 3

SortedIntervalArrayMethod · 0.80
GetSequenceStartTimeMethod · 0.80
WithinPlayRegionMethod · 0.80

Tested by

no test coverage detected