X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Foverlaps.h;h=9bd867030634af03970f54a17ce5f8841d40465a;hb=a1f7bf2d9e5610075fbd898cdf52f4f8373741f2;hp=6018af15f56ff7dec1b3b37bea5af8e38f4403c3;hpb=6f23b55a7783f93549115a133ca2e6e938bd0cd1;p=dcpomatic.git diff --git a/src/lib/overlaps.h b/src/lib/overlaps.h index 6018af15f..9bd867030 100644 --- a/src/lib/overlaps.h +++ b/src/lib/overlaps.h @@ -1,39 +1,33 @@ /* - Copyright (C) 2013-2015 Carl Hetherington + Copyright (C) 2013-2016 Carl Hetherington - This program is free software; you can redistribute it and/or modify + This file is part of DCP-o-matic. + + DCP-o-matic is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - This program is distributed in the hope that it will be useful, + DCP-o-matic is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + along with DCP-o-matic. If not, see . */ -/** @return Pieces of content type C that overlap a specified time range in the given ContentList */ -template -std::list > -overlaps (ContentList cl, DCPTime from, DCPTime to) -{ - std::list > overlaps; - DCPTimePeriod period (from, to); - for (typename ContentList::const_iterator i = cl.begin(); i != cl.end(); ++i) { - boost::shared_ptr c = boost::dynamic_pointer_cast (*i); - if (!c) { - continue; - } - - if (DCPTimePeriod(c->position(), c->end()).overlaps (period)) { - overlaps.push_back (c); - } - } - - return overlaps; -} +#include "types.h" +#include "dcpomatic_time.h" + +class ContentPart; +class Film; + +/** @return Pieces of content with a given part (video, audio, + * subtitle) that overlap a specified time range in the given + * ContentList + */ +ContentList overlaps ( + boost::shared_ptr film, ContentList cl, boost::function)> part, dcpomatic::DCPTime from, dcpomatic::DCPTime to + );