random changes required to get an audio track created and transport functional
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 10 Apr 2017 09:25:00 +0000 (10:25 +0100)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 18 Sep 2017 15:40:53 +0000 (11:40 -0400)
libs/ardour/ardour/disk_reader.h
libs/ardour/butler.cc
libs/ardour/disk_io.cc
libs/ardour/session.cc
libs/ardour/session_state.cc
libs/ardour/track.cc

index e09904ad34906a0b8331f4de870d5af46aeab482..c3cbe33f158fddb2608542cb5e1f417dc0312686 100644 (file)
@@ -94,6 +94,8 @@ class LIBARDOUR_API DiskReader : public DiskIOProcessor
        void playlist_modified ();
        void reset_tracker ();
 
+       static void set_midi_readahead_frames (framecnt_t frames_ahead) { midi_readahead = frames_ahead; }
+
   protected:
        friend class Track;
        friend class MidiTrack;
index 5e743cd569878ed87c6628db5a534f9807da7526..475735a2e1068ac3e0452f3ad9e60c31b7cc61af 100644 (file)
 
 #include "pbd/error.h"
 #include "pbd/pthread_utils.h"
-#include "ardour/debug.h"
+
 #include "ardour/butler.h"
+#include "ardour/debug.h"
+#include "ardour/disk_io.h"
+#include "ardour/disk_reader.h"
 #include "ardour/io.h"
-#include "ardour/midi_diskstream.h"
 #include "ardour/session.h"
 #include "ardour/track.h"
 #include "ardour/auditioner.h"
@@ -95,13 +97,13 @@ Butler::config_changed (std::string p)
 #endif
                }
        } else if (p == "buffering-preset") {
-               Diskstream::set_buffering_parameters (Config->get_buffering_preset());
+               DiskIOProcessor::set_buffering_parameters (Config->get_buffering_preset());
                audio_dstream_capture_buffer_size = (uint32_t) floor (Config->get_audio_capture_buffer_seconds() * _session.frame_rate());
                audio_dstream_playback_buffer_size = (uint32_t) floor (Config->get_audio_playback_buffer_seconds() * _session.frame_rate());
                _session.adjust_capture_buffering ();
                _session.adjust_playback_buffering ();
        } else if (p == "midi-readahead") {
-               MidiDiskstream::set_readahead_frames ((framecnt_t) (Config->get_midi_readahead() * _session.frame_rate()));
+               DiskReader::set_midi_readahead_frames ((framecnt_t) (Config->get_midi_readahead() * _session.frame_rate()));
        }
 }
 
@@ -109,7 +111,7 @@ int
 Butler::start_thread()
 {
        // set up capture and playback buffering
-       Diskstream::set_buffering_parameters (Config->get_buffering_preset());
+       DiskIOProcessor::set_buffering_parameters (Config->get_buffering_preset());
 
        /* size is in Samples, not bytes */
        const float rate = (float)_session.frame_rate();
@@ -122,7 +124,7 @@ Butler::start_thread()
         */
        midi_dstream_buffer_size = (uint32_t) floor (Config->get_midi_track_buffer_seconds() * rate);
 
-       MidiDiskstream::set_readahead_frames ((framecnt_t) (Config->get_midi_readahead() * rate));
+       DiskReader::set_midi_readahead_frames ((framecnt_t) (Config->get_midi_readahead() * rate));
 
        should_run = false;
 
index b7622bc9d4583e9a5c0ce66376d1f91ef8d18b98..e15620b1d26e6b5bb72ae8d991bee966c3430533 100644 (file)
@@ -68,6 +68,7 @@ DiskIOProcessor::DiskIOProcessor (Session& s, string const & str, Flag f)
        , _frames_written_to_ringbuffer (0)
        , _frames_read_from_ringbuffer (0)
 {
+       midi_interpolation.add_channel_to (0,0);
 }
 
 void
index a46a63dce900d1e3f28377025c1c25e8c18712d7..90fe5a931ccef8a18a3364bd33d17f5ef99236a8 100644 (file)
@@ -51,7 +51,6 @@
 #include "ardour/analyser.h"
 #include "ardour/async_midi_port.h"
 #include "ardour/audio_buffer.h"
-#include "ardour/audio_diskstream.h"
 #include "ardour/audio_port.h"
 #include "ardour/audio_track.h"
 #include "ardour/audioengine.h"
@@ -66,6 +65,7 @@
 #include "ardour/control_protocol_manager.h"
 #include "ardour/data_type.h"
 #include "ardour/debug.h"
+#include "ardour/disk_reader.h"
 #include "ardour/directory_names.h"
 #ifdef USE_TRACKS_CODE_FEATURES
 #include "ardour/engine_state_controller.h"
@@ -750,7 +750,7 @@ Session::destroy ()
        routes.flush ();
        _bundles.flush ();
 
-       AudioDiskstream::free_working_buffers();
+       DiskReader::free_working_buffers();
 
        /* tell everyone who is still standing that we're about to die */
        drop_references ();
@@ -1698,7 +1698,7 @@ Session::auto_loop_changed (Location* location)
                }
                else if (Config->get_seamless_loop() && !loop_changing) {
 
-                       // schedule a locate-roll to refill the diskstreams at the
+                       // schedule a locate-roll to refill the disk readers at the
                        // previous loop end
                        loop_changing = true;
 
index 1f6645bae813f9fb875d0ec81d35c3696b7aac59..5ba64ff2f72bf305eec7fb9d1e41b17ff8d74bb4 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
index 571da3f1f94af85b82a801415929232b51e77f7d..a1b2b8e56cd6c6f616fbc2a3f091b3f81b471003 100644 (file)
@@ -806,6 +806,10 @@ Track::use_playlist (DataType dt, boost::shared_ptr<Playlist> p)
                }
        }
 
+       if (ret == 0) {
+               _playlists[dt] = p;
+       }
+
        return ret;
 }