- boost::shared_ptr<AudioDiskstream> ds (new AudioDiskstream (_session, name(), dflags));
-
- _session.add_diskstream (ds);
+ AudioDiskstream* dsp (new AudioDiskstream (_session, name(), dflags));
+ boost::shared_ptr<AudioDiskstream> ds (dsp);
+
+ ds->do_refill_with_alloc ();
+ ds->set_block_size (_session.get_block_size ());
+
+ set_diskstream (ds);
+}
+
+void
+AudioTrack::set_diskstream (boost::shared_ptr<Diskstream> ds)
+{
+ Track::set_diskstream (ds);
+
+ _diskstream->set_track (this);
+ _diskstream->set_destructive (_mode == Destructive);
+ _diskstream->set_non_layered (_mode == NonLayered);
+
+ if (audio_diskstream()->deprecated_io_node) {
+
+ if (!IO::connecting_legal) {
+ IO::ConnectingLegal.connect_same_thread (*this, boost::bind (&AudioTrack::deprecated_use_diskstream_connections, this));
+ } else {
+ deprecated_use_diskstream_connections ();
+ }
+ }
+
+ _diskstream->set_record_enabled (false);
+ _diskstream->monitor_input (false);
+
+ DiskstreamChanged (); /* EMIT SIGNAL */
+}