Cleanup: add Content::period().
authorCarl Hetherington <cth@carlh.net>
Thu, 9 Feb 2023 21:49:47 +0000 (22:49 +0100)
committerCarl Hetherington <cth@carlh.net>
Fri, 10 Feb 2023 09:31:15 +0000 (10:31 +0100)
src/lib/content.h
src/lib/empty.cc
src/lib/overlaps.cc
src/lib/player.cc
src/lib/playlist.cc
src/wx/timeline.cc

index eddce2858d2d77e775ea2120fc443a562c442db8..979680d6a796781b1d0d8e4fc95efa0eef325148 100644 (file)
@@ -175,6 +175,10 @@ public:
                return position() + length_after_trim(film);
        }
 
+       dcpomatic::DCPTimePeriod period(std::shared_ptr<const Film> film) const {
+               return { position(), end(film) };
+       }
+
        dcpomatic::DCPTime length_after_trim (std::shared_ptr<const Film> film) const;
 
        boost::optional<double> video_frame_rate () const {
index 96d036463483e7954f619f3b20d7c4f2641a53d1..a750663954028dc46caaf8c6a685840a965cffbc 100644 (file)
@@ -43,7 +43,7 @@ Empty::Empty (shared_ptr<const Film> film, shared_ptr<const Playlist> playlist,
        list<DCPTimePeriod> full;
        for (auto i: playlist->content()) {
                if (part(i) && i->paths_valid()) {
-                       full.push_back (DCPTimePeriod(i->position(), i->end(film)));
+                       full.push_back(i->period(film));
                }
        }
 
index 770882cd5c6ddd3dbeb6d5a46ca790a2fd5a82a2..fbc6b5cb1813c7646950f554c25cc952f8e6a5d0 100644 (file)
@@ -33,7 +33,7 @@ ContentList overlaps (shared_ptr<const Film> film, ContentList cl, function<bool
        ContentList overlaps;
        DCPTimePeriod period (from, to);
        for (auto i: cl) {
-               if (part(i) && DCPTimePeriod(i->position(), i->end(film)).overlap(period)) {
+               if (part(i) && i->period(film).overlap(period)) {
                        overlaps.push_back (i);
                }
        }
index 76e7239aa83f02c7dc7699023a1fd958ff8fc478..575fd5c231585a33bcf5aabf785d248e227082fc 100644 (file)
@@ -381,10 +381,10 @@ Player::setup_pieces ()
        for (auto piece = _pieces.begin(); piece != _pieces.end(); ++piece) {
                if (ignore_overlap((*piece)->content->video)) {
                        /* Look for content later in the content list with in-use video that overlaps this */
-                       auto const period = DCPTimePeriod((*piece)->content->position(), (*piece)->content->end(film));
+                       auto const period = (*piece)->content->period(film);
                        for (auto later_piece = std::next(piece); later_piece != _pieces.end(); ++later_piece) {
                                if (ignore_overlap((*later_piece)->content->video)) {
-                                       (*piece)->ignore_video = DCPTimePeriod((*later_piece)->content->position(), (*later_piece)->content->end(film)).overlap(period);
+                                       (*piece)->ignore_video = (*later_piece)->content->period(film).overlap(period);
                                }
                        }
                }
index 5f26b94f3dd7ee41ce3eaf7786916d3b4fa734c1..df7c95cc087333549a1e955d62e5811bb3102c49 100644 (file)
@@ -683,7 +683,7 @@ Playlist::content_summary (shared_ptr<const Film> film, DCPTimePeriod period) co
        int best_score = -1;
        for (auto i: content()) {
                int score = 0;
-               auto const o = DCPTimePeriod(i->position(), i->end(film)).overlap (period);
+               auto const o = i->period(film).overlap(period);
                if (o) {
                        score += 100 * o.get().duration().get() / period.duration().get();
                }
index 0d7ae7afbca803a0976857645cf09c863f7f5fd9..2b8fba6fd50468766c09a36e3c05646df1d0a5a5 100644 (file)
@@ -330,7 +330,7 @@ place (shared_ptr<const Film> film, TimelineViewList& views, int& tracks)
                int t = base;
 
                auto content = cv->content();
-               DCPTimePeriod const content_period (content->position(), content->end(film));
+               DCPTimePeriod const content_period = content->period(film);
 
                while (true) {
                        auto j = views.begin();
@@ -344,7 +344,8 @@ place (shared_ptr<const Film> film, TimelineViewList& views, int& tracks)
                                auto test_content = test->content();
                                if (
                                        test->track() && test->track().get() == t &&
-                                       content_period.overlap(DCPTimePeriod(test_content->position(), test_content->end(film)))) {
+                                       content_period.overlap(test_content->period(film))
+                                  ) {
                                        /* we have an overlap on track `t' */
                                        ++t;
                                        break;