...towards unique track numbers.
[ardour.git] / libs / ardour / session.cc
index 394fa730798133054168e6f9082a0166b66419a0..e7dde4d2256b318044ec7d29a92213618c5bfd9a 100644 (file)
@@ -134,12 +134,14 @@ Session::Session (AudioEngine &eng,
        , _target_transport_speed (0.0)
        , _requested_return_frame (-1)
        , _under_nsm_control (false)
+       , _unique_track_number (0)
        , _session_dir (new SessionDirectory(fullpath))
        , state_tree (0)
        , _state_of_the_state (Clean)
        , _butler (new Butler (*this))
        , _post_transport_work (0)
        , _send_timecode_update (false)
+       , ltc_enc_buf(0)
        , _all_route_group (new RouteGroup (*this, "all"))
        , routes (new RouteList)
        , _total_free_4k_blocks (0)
@@ -1522,7 +1524,7 @@ Session::resort_routes_using (boost::shared_ptr<RouteList> r)
        /* Attempt a topological sort of the route graph */
        boost::shared_ptr<RouteList> sorted_routes = topological_sort (r, edges);
        
-       if (Config->get_ignore_feedback_loops() || sorted_routes) {
+       if (sorted_routes) {
                /* We got a satisfactory topological sort, so there is no feedback;
                   use this new graph.
 
@@ -1553,9 +1555,8 @@ Session::resort_routes_using (boost::shared_ptr<RouteList> r)
 #endif
 
                SuccessfulGraphSort (); /* EMIT SIGNAL */
-       }
 
-       if (!sorted_routes)  {
+       } else {
                /* The topological sort failed, so we have a problem.  Tell everyone
                   and stick to the old graph; this will continue to be processed, so
                   until the feedback is fixed, what is played back will not quite
@@ -1649,6 +1650,7 @@ Session::new_midi_track (const ChanCount& input, const ChanCount& output, boost:
 
                try {
                        track.reset (new MidiTrack (*this, track_name, Route::Flag (0), mode));
+                       track->set_unique_id(++_unique_track_number);
 
                        if (track->init ()) {
                                goto failed;
@@ -1884,6 +1886,7 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod
 
                try {
                        track.reset (new AudioTrack (*this, track_name, Route::Flag (0), mode));
+                       track->set_unique_id(++_unique_track_number);
 
                        if (track->init ()) {
                                goto failed;