| 1344 | } |
| 1345 | |
| 1346 | auto WaveClip::ClearSequence(double t0, double t1) -> ClearSequenceFinisher |
| 1347 | { |
| 1348 | StrongInvariantScope scope{ *this }; |
| 1349 | |
| 1350 | auto clip_t0 = std::max(t0, GetSequenceStartTime()); |
| 1351 | auto clip_t1 = std::min(t1, GetSequenceEndTime()); |
| 1352 | |
| 1353 | auto s0 = TimeToSequenceSamples(clip_t0); |
| 1354 | auto s1 = TimeToSequenceSamples(clip_t1); |
| 1355 | |
| 1356 | if (s0 == s1) |
| 1357 | return {}; |
| 1358 | |
| 1359 | // use Strong-guarantee |
| 1360 | for (auto &pSequence : mSequences) |
| 1361 | pSequence->Delete(s0, s1 - s0); |
| 1362 | |
| 1363 | return { this, t0, t1, clip_t0, clip_t1 }; |
| 1364 | } |
| 1365 | |
| 1366 | WaveClip::ClearSequenceFinisher::~ClearSequenceFinisher() noexcept |
| 1367 | { |
no test coverage detected