mark session dirty when dragging tempo markers.
authornick_m <mainsbridge@gmail.com>
Thu, 26 Jan 2017 16:05:32 +0000 (03:05 +1100)
committernick_m <mainsbridge@gmail.com>
Thu, 26 Jan 2017 16:05:32 +0000 (03:05 +1100)
gtk2_ardour/audio_clock.cc
gtk2_ardour/audio_clock.h
gtk2_ardour/editor.cc
gtk2_ardour/editor.h
gtk2_ardour/editor_tempodisplay.cc
libs/ardour/ardour/session.h
libs/ardour/ardour/tempo.h
libs/ardour/session.cc
libs/ardour/session_state.cc
libs/ardour/tempo.cc

index 8a951e9c3448e70cb9c83057b48afcd65b33f14e..61253ad16dd90d89a7992825374fb4079d1e6513 100644 (file)
@@ -773,12 +773,6 @@ AudioClock::session_property_changed (const PropertyChange&)
        set (last_when, true);
 }
 
-void
-AudioClock::metric_position_changed ()
-{
-       set (last_when, true);
-}
-
 void
 AudioClock::session_configuration_changed (std::string p)
 {
@@ -1194,7 +1188,7 @@ AudioClock::set_session (Session *s)
                Config->ParameterChanged.connect (_session_connections, invalidator (*this), boost::bind (&AudioClock::session_configuration_changed, this, _1), gui_context());
                _session->config.ParameterChanged.connect (_session_connections, invalidator (*this), boost::bind (&AudioClock::session_configuration_changed, this, _1), gui_context());
                _session->tempo_map().PropertyChanged.connect (_session_connections, invalidator (*this), boost::bind (&AudioClock::session_property_changed, this, _1), gui_context());
-               _session->tempo_map().MetricPositionChanged.connect (_session_connections, invalidator (*this), boost::bind (&AudioClock::metric_position_changed, this), gui_context());
+               _session->tempo_map().MetricPositionChanged.connect (_session_connections, invalidator (*this), boost::bind (&AudioClock::session_property_changed, this, _1), gui_context());
 
                XMLProperty const * prop;
                XMLNode* node = _session->extra_xml (X_("ClockModes"));
index 62e62c5f8f931d65643293b39cfdf30103fa5a3c..6b8c31d5ad39db26f66f84d84d5360c1504d8293 100644 (file)
@@ -223,7 +223,6 @@ class AudioClock : public CairoWidget, public ARDOUR::SessionHandlePtr
 
        void session_configuration_changed (std::string);
        void session_property_changed (const PBD::PropertyChange&);
-       void metric_position_changed ();
 
        Field index_to_field () const;
 
index 0809ab61cb9fd6a5c67226600bf1f70cb1bfd341..e64e079808988464ab55ec7f4901ef768ee0bbed 100644 (file)
@@ -1395,7 +1395,7 @@ Editor::set_session (Session *t)
        _session->RouteAdded.connect (_session_connections, invalidator (*this), boost::bind (&Editor::add_routes, this, _1), gui_context());
        _session->DirtyChanged.connect (_session_connections, invalidator (*this), boost::bind (&Editor::update_title, this), gui_context());
        _session->tempo_map().PropertyChanged.connect (_session_connections, invalidator (*this), boost::bind (&Editor::tempo_map_changed, this, _1), gui_context());
-       _session->tempo_map().MetricPositionChanged.connect (_session_connections, invalidator (*this), boost::bind (&Editor::marker_position_changed, this), gui_context());
+       _session->tempo_map().MetricPositionChanged.connect (_session_connections, invalidator (*this), boost::bind (&Editor::tempometric_position_changed, this, _1), gui_context());
        _session->Located.connect (_session_connections, invalidator (*this), boost::bind (&Editor::located, this), gui_context());
        _session->config.ParameterChanged.connect (_session_connections, invalidator (*this), boost::bind (&Editor::parameter_changed, this, _1), gui_context());
        _session->StateSaved.connect (_session_connections, invalidator (*this), boost::bind (&Editor::session_state_saved, this, _1), gui_context());
index 2d7262ad6e8920a10e74d945bc65478d30ca5eb4..c2a25668733b55f0275466e669a413dbd491b7e7 100644 (file)
@@ -1729,7 +1729,7 @@ class Editor : public PublicEditor, public PBD::ScopedConnectionList, public ARD
        void compute_current_bbt_points (std::vector<ARDOUR::TempoMap::BBTPoint>& grid, framepos_t left, framepos_t right);
 
        void tempo_map_changed (const PBD::PropertyChange&);
-       void marker_position_changed ();
+       void tempometric_position_changed (const PBD::PropertyChange&);
        void redisplay_tempo (bool immediate_redraw);
 
        uint32_t bbt_beat_subdivision;
index 02ece325561dbf131ae7648d2de8ef657b747cdf..b863cb99011d5377af837a5d008e522c44f35b3f 100644 (file)
@@ -189,7 +189,7 @@ Editor::tempo_map_changed (const PropertyChange& /*ignored*/)
 }
 
 void
-Editor::marker_position_changed ()
+Editor::tempometric_position_changed (const PropertyChange& /*ignored*/)
 {
        if (!_session) {
                return;
index 0a2926d816bee4d70225b6957f154e85512834e8..9b4e60bd063a900eabc5392a40c62c86599b86c2 100644 (file)
@@ -1705,7 +1705,6 @@ class LIBARDOUR_API Session : public PBD::StatefulDestructible, public PBD::Scop
 
        TempoMap    *_tempo_map;
        void          tempo_map_changed (const PBD::PropertyChange&);
-       void          gui_tempo_map_changed ();
 
        /* edit/mix groups */
 
index 08bdf8dc59a2cc03876317b740b6f9c01df20d9b..a3ab8d68f6565411249657f184b29231676c5daa 100644 (file)
@@ -495,7 +495,7 @@ class LIBARDOUR_API TempoMap : public PBD::StatefulDestructible
        std::pair<double, framepos_t> predict_tempo_position (TempoSection* section, const Timecode::BBT_Time& bbt);
        bool can_solve_bbt (TempoSection* section, const Timecode::BBT_Time& bbt);
 
-       PBD::Signal0<void> MetricPositionChanged;
+       PBD::Signal1<void,const PBD::PropertyChange&> MetricPositionChanged;
        void fix_legacy_session();
 
 private:
index f3e23e237c7c0615aee618b9be2d47394c380108..5332650052afeba15c09e6a69166f164e705f097 100644 (file)
@@ -5626,16 +5626,6 @@ Session::tempo_map_changed (const PropertyChange&)
        set_dirty ();
 }
 
-void
-Session::gui_tempo_map_changed ()
-{
-       clear_clicks ();
-
-       playlists->update_after_tempo_map_change ();
-
-       _locations->apply (*this, &Session::update_locations_after_tempo_map_change);
-}
-
 void
 Session::update_locations_after_tempo_map_change (const Locations::LocationList& loc)
 {
index 834f054e0fe9b2800bf731945f45e0a2889bb63a..36d3c9868b642726baf99cc075bb3507df25b35a 100644 (file)
@@ -260,7 +260,7 @@ Session::post_engine_init ()
                delete _tempo_map;
                _tempo_map = new TempoMap (_current_frame_rate);
                _tempo_map->PropertyChanged.connect_same_thread (*this, boost::bind (&Session::tempo_map_changed, this, _1));
-               _tempo_map->MetricPositionChanged.connect_same_thread (*this, boost::bind (&Session::gui_tempo_map_changed, this));
+               _tempo_map->MetricPositionChanged.connect_same_thread (*this, boost::bind (&Session::tempo_map_changed, this, _1));
 
                /* MidiClock requires a tempo map */
 
index dc3774ff804d44c0f7112680328a29f2e82698e1..18edabf2a1fe77e88e1e809a722ca3534f6118b0 100644 (file)
@@ -3271,7 +3271,7 @@ TempoMap::gui_set_tempo_position (TempoSection* ts, const framepos_t& frame, con
                ++d;
        }
 
-       MetricPositionChanged (); // Emit Signal
+       MetricPositionChanged (PropertyChange ()); // Emit Signal
 }
 
 /** moves a MeterSection to a specified position.
@@ -3319,7 +3319,7 @@ TempoMap::gui_set_meter_position (MeterSection* ms, const framepos_t& frame)
                ++d;
        }
 
-       MetricPositionChanged (); // Emit Signal
+       MetricPositionChanged (PropertyChange ()); // Emit Signal
 }
 
 bool
@@ -3346,7 +3346,7 @@ TempoMap::gui_change_tempo (TempoSection* ts, const Tempo& bpm)
                ++d;
        }
        if (can_solve) {
-               MetricPositionChanged (); // Emit Signal
+               MetricPositionChanged (PropertyChange ()); // Emit Signal
        }
        return can_solve;
 }
@@ -3498,7 +3498,7 @@ TempoMap::gui_stretch_tempo (TempoSection* ts, const framepos_t& frame, const fr
                ++d;
        }
 
-       MetricPositionChanged (); // Emit Signal
+       MetricPositionChanged (PropertyChange ()); // Emit Signal
 }
 
 /** Returns the exact bbt-based beat corresponding to the bar, beat or quarter note subdivision nearest to