diff options
| author | Carl Hetherington <cth@carlh.net> | 2025-11-03 09:07:27 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2025-11-03 09:07:27 +0100 |
| commit | 961754d68b85324091e29d8e8eb19c4fdf32abe6 (patch) | |
| tree | 8dc76d59ec82c7886b5cab82d2ea6a31af9d608e /src/lib/player.h | |
| parent | af517d2d2a0a02ea167ffac4c617845727984720 (diff) | |
wip: hacksprocessor
Diffstat (limited to 'src/lib/player.h')
| -rw-r--r-- | src/lib/player.h | 15 |
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 |
