Cleanup: use ChangeSignaller in player.
authorCarl Hetherington <cth@carlh.net>
Fri, 14 Oct 2022 08:49:50 +0000 (10:49 +0200)
committerCarl Hetherington <cth@carlh.net>
Fri, 14 Oct 2022 10:55:36 +0000 (12:55 +0200)
src/lib/player.cc
src/lib/player.h

index 7e3a1bdcf15e072ce740236fe0c30755aae529d3..004dc75b361b70c644579662322e6d46c7d566f5 100644 (file)
@@ -335,10 +335,10 @@ Player::playlist_content_change (ChangeType type, int property, bool frequent)
 void
 Player::set_video_container_size (dcp::Size s)
 {
-       Change (ChangeType::PENDING, PlayerProperty::VIDEO_CONTAINER_SIZE, false);
+       ChangeSignaller<Player, int> cc(this, PlayerProperty::VIDEO_CONTAINER_SIZE);
 
        if (s == _video_container_size) {
-               Change(ChangeType::CANCELLED, PlayerProperty::VIDEO_CONTAINER_SIZE, false);
+               cc.abort();
                return;
        }
 
@@ -349,8 +349,6 @@ Player::set_video_container_size (dcp::Size s)
                _black_image = make_shared<Image>(AV_PIX_FMT_RGB24, _video_container_size, Image::Alignment::PADDED);
                _black_image->make_black ();
        }
-
-       Change (ChangeType::DONE, PlayerProperty::VIDEO_CONTAINER_SIZE, false);
 }
 
 
@@ -1310,17 +1308,15 @@ Player::discard_audio (shared_ptr<const AudioBuffers> audio, DCPTime time, DCPTi
 void
 Player::set_dcp_decode_reduction (optional<int> reduction)
 {
-       Change (ChangeType::PENDING, PlayerProperty::DCP_DECODE_REDUCTION, false);
+       ChangeSignaller<Player, int> cc(this, PlayerProperty::DCP_DECODE_REDUCTION);
 
        if (reduction == _dcp_decode_reduction.load()) {
-               Change(ChangeType::CANCELLED, PlayerProperty::DCP_DECODE_REDUCTION, false);
+               cc.abort();
                return;
        }
 
        _dcp_decode_reduction = reduction;
        setup_pieces();
-
-       Change (ChangeType::DONE, PlayerProperty::DCP_DECODE_REDUCTION, false);
 }
 
 
@@ -1383,3 +1379,10 @@ Player::atmos (weak_ptr<Piece> weak_piece, ContentAtmos data)
        Atmos (data.data, dcp_time, data.metadata);
 }
 
+
+void
+Player::signal_change(ChangeType type, int property)
+{
+       Change(type, property, false);
+}
+
index 3dbc1c0341e7cedd862108bf11b5b15ed33f5143..7f30bf88c5521ed2607d90eaa7a8ba215636ae0a 100644 (file)
@@ -99,6 +99,8 @@ 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);
+
        /** 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.