Non-layered MIDI recording
[ardour.git] / libs / ardour / session_state.cc
index 1f6645bae813f9fb875d0ec81d35c3696b7aac59..19bfc4c41c44a54c6e2fd9e4f52883f202610019 100644 (file)
@@ -78,7 +78,6 @@
 
 #include "ardour/amp.h"
 #include "ardour/async_midi_port.h"
-#include "ardour/audio_diskstream.h"
 #include "ardour/audio_track.h"
 #include "ardour/audioengine.h"
 #include "ardour/audiofilesource.h"
@@ -90,6 +89,7 @@
 #include "ardour/controllable_descriptor.h"
 #include "ardour/control_protocol_manager.h"
 #include "ardour/directory_names.h"
+#include "ardour/disk_reader.h"
 #include "ardour/filename_extensions.h"
 #include "ardour/graph.h"
 #include "ardour/location.h"
@@ -286,7 +286,7 @@ Session::post_engine_init ()
                _engine.GraphReordered.connect_same_thread (*this, boost::bind (&Session::graph_reordered, this));
                _engine.MidiSelectionPortsChanged.connect_same_thread (*this, boost::bind (&Session::rewire_midi_selection_ports, this));
 
-               AudioDiskstream::allocate_working_buffers();
+               DiskReader::allocate_working_buffers();
                refresh_disk_space ();
 
                /* we're finally ready to call set_state() ... all objects have
@@ -408,7 +408,7 @@ Session::post_engine_init ()
        boost::shared_ptr<RouteList> rl = routes.reader();
        for (RouteList::iterator r = rl->begin(); r != rl->end(); ++r) {
                boost::shared_ptr<Track> trk = boost::dynamic_pointer_cast<Track> (*r);
-               if (trk && !trk->hidden()) {
+               if (trk && !trk->is_private_route()) {
                        trk->seek (_transport_frame, true);
                }
        }
@@ -1745,10 +1745,10 @@ Session::XMLRouteFactory (const XMLNode& node, int version)
                return ret;
        }
 
-       XMLNode* pl_child = find_named_node (node, X_("audio-playlist"));
+       XMLProperty const * pl_prop = node.property (X_("audio-playlist"));
 
-       if (!pl_child) {
-               pl_child = find_named_node (node, X_("midi-playlist"));
+       if (!pl_prop) {
+               pl_prop = node.property (X_("midi-playlist"));
        }
 
        DataType type = DataType::AUDIO;
@@ -1756,7 +1756,9 @@ Session::XMLRouteFactory (const XMLNode& node, int version)
 
        assert (type != DataType::NIL);
 
-       if (pl_child) {
+       if (pl_prop) {
+
+               /* has at least 1 playlist, therefore a track ... */
 
                boost::shared_ptr<Track> track;
 
@@ -1811,7 +1813,9 @@ Session::XMLRouteFactory_2X (const XMLNode& node, int version)
 
        if (ds_prop) {
 
-               // XXX DISK .... how to load 2.x diskstreams ?
+               /* see comment in current ::set_state() regarding diskstream
+                * state and DiskReader/DiskWRiter.
+                */
 
                error << _("Could not find diskstream for route") << endmsg;
                return boost::shared_ptr<Route> ();
@@ -1832,8 +1836,6 @@ Session::XMLRouteFactory_2X (const XMLNode& node, int version)
                        return ret;
                }
 
-                // XXX DISK NEED TO SET UP DISKSTREAM ???
-
                BOOST_MARK_TRACK (track);
                ret = track;