/*
- Copyright (C) 2018 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2018-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
-#include "types.h"
+
+#ifndef DCPOMATIC_SHUFFLER_H
+#define DCPOMATIC_SHUFFLER_H
+
+
#include "content_video.h"
-#include "video_adjuster.h"
#include <boost/signals2.hpp>
+
+struct shuffler_test5;
+
class Piece;
-class Shuffler : public VideoAdjuster
+
+class Shuffler
{
public:
void clear ();
+ void flush ();
+ void video (std::weak_ptr<Piece>, ContentVideo video);
- void video (boost::weak_ptr<Piece>, ContentVideo video);
+ boost::signals2::signal<void (std::weak_ptr<Piece>, ContentVideo)> Video;
+
+ typedef std::pair<std::weak_ptr<Piece>, ContentVideo> Store;
private:
+ friend struct ::shuffler_test5;
+
+ std::list<Store> _store;
boost::optional<ContentVideo> _last;
+ static int const _max_size;
};
+
+
+#endif
+