summaryrefslogtreecommitdiff
path: root/src/lib/player.h
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2025-11-03 09:07:27 +0100
committerCarl Hetherington <cth@carlh.net>2025-11-03 09:07:27 +0100
commit961754d68b85324091e29d8e8eb19c4fdf32abe6 (patch)
tree8dc76d59ec82c7886b5cab82d2ea6a31af9d608e /src/lib/player.h
parentaf517d2d2a0a02ea167ffac4c617845727984720 (diff)
wip: hacksprocessor
Diffstat (limited to 'src/lib/player.h')
-rw-r--r--src/lib/player.h15
1 files changed, 8 insertions, 7 deletions
diff --git a/src/lib/player.h b/src/lib/player.h
index 9076ac242..def165b51 100644
--- a/src/lib/player.h
+++ b/src/lib/player.h
@@ -113,13 +113,13 @@ public:
boost::optional<dcpomatic::DCPTime> content_time_to_dcp(std::shared_ptr<const Content> content, dcpomatic::ContentTime t) const;
boost::optional<dcpomatic::ContentTime> dcp_to_content_time(std::shared_ptr<const Content> content, dcpomatic::DCPTime t) const;
- void signal_change(ChangeType type, int property);
+ void signal_change(ChangeType type, int property, int id);
/** First parameter is PENDING, DONE or CANCELLED.
* Second parameter is the property.
* Third parameter is true if these signals are currently likely to be frequent.
*/
- boost::signals2::signal<void (ChangeType, int, bool)> Change;
+ boost::signals2::signal<void (ChangeType, int, bool, int)> Change;
/** Emitted when a video frame is ready. These emissions happen in the correct order. */
boost::signals2::signal<void (std::shared_ptr<PlayerVideo>, dcpomatic::DCPTime)> Video;
@@ -148,9 +148,9 @@ private:
void construct();
void connect();
void setup_pieces();
- void film_change(ChangeType, FilmProperty);
- void playlist_change(ChangeType);
- void playlist_content_change(ChangeType, int, bool);
+ void film_change(ChangeType, FilmProperty, int id);
+ void playlist_change(ChangeType, int id);
+ void playlist_content_change(ChangeType, int, bool, int id);
Frame dcp_to_content_video(std::shared_ptr<const Piece> piece, dcpomatic::DCPTime t) const;
dcpomatic::DCPTime content_video_to_dcp(std::shared_ptr<const Piece> piece, Frame f) const;
Frame dcp_to_resampled_audio(std::shared_ptr<const Piece> piece, dcpomatic::DCPTime t) const;
@@ -193,8 +193,9 @@ private:
/** Playlist, or 0 if we are using the one from the _film */
std::shared_ptr<const Playlist> _playlist;
- /** > 0 if we are suspended (i.e. pass() and seek() do nothing) */
- boost::atomic<int> _suspended;
+ mutable boost::mutex _suspended_mutex;
+ /** Contains something if we are suspended (i.e. pass() and seek() do nothing) */
+ std::set<int> _suspended;
std::vector<std::shared_ptr<Piece>> _pieces;
/** Size of the image we are rendering to; this may be the DCP frame size, or