first pass at making the GUI for a VCA visible
[ardour.git] / libs / ardour / session.cc
index 98d9d1dfd930ec2828f0274f332e618ddb0029d2..4ff42730ca328b6f95a55a14444df7bf6b70599d 100644 (file)
 #include "ardour/track.h"
 #include "ardour/user_bundle.h"
 #include "ardour/utils.h"
+#include "ardour/vca_manager.h"
 
 #include "midi++/port.h"
 #include "midi++/mmc.h"
@@ -301,7 +302,7 @@ Session::Session (AudioEngine &eng,
        , first_file_header_format_reset (true)
        , have_looped (false)
        , _have_rec_enabled_track (false)
-    , _have_rec_disabled_track (true)
+       , _have_rec_disabled_track (true)
        , _step_editors (0)
        , _suspend_timecode_transmission (0)
        ,  _speakers (new Speakers)
@@ -311,6 +312,7 @@ Session::Session (AudioEngine &eng,
        , _scene_changer (0)
        , _midi_ports (0)
        , _mmc (0)
+       , _vca_manager (new VCAManager (*this))
 {
        uint32_t sr = 0;
 
@@ -746,6 +748,7 @@ Session::destroy ()
 
        delete midi_clock;
        delete _tempo_map;
+       delete _vca_manager;
 
        /* clear event queue, the session is gone, nobody is interested in
         * those anymore, but they do leak memory if not removed
@@ -3210,6 +3213,7 @@ Session::new_route_from_template (uint32_t how_many, XMLNode& node, const std::s
                        case NewPlaylist:
                                rename_playlist = true;
                                break;
+                       default:
                        case CopyPlaylist:
                        case SharePlaylist:
                                rename_playlist = false;
@@ -5437,6 +5441,16 @@ 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)
 {
@@ -5919,7 +5933,6 @@ Session::write_one_track (Track& track, framepos_t start, framepos_t end,
        }
 
        unblock_processing ();
-       itt.done = true;
 
        return result;
 }