summaryrefslogtreecommitdiff
path: root/libs/ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-04-10 10:25:00 +0100
committerPaul Davis <paul@linuxaudiosystems.com>2017-09-18 11:40:53 -0400
commit361cab503b6f51be4612037610924d302b1f6a22 (patch)
tree2bbaf331fc96ed0f01d78aa6ed1307f1e23f9a33 /libs/ardour
parent35c7274cc96a04f166df78249e66ae4a32a53a66 (diff)
random changes required to get an audio track created and transport functional
Diffstat (limited to 'libs/ardour')
-rw-r--r--libs/ardour/ardour/disk_reader.h2
-rw-r--r--libs/ardour/butler.cc14
-rw-r--r--libs/ardour/disk_io.cc1
-rw-r--r--libs/ardour/session.cc6
-rw-r--r--libs/ardour/session_state.cc4
-rw-r--r--libs/ardour/track.cc4
6 files changed, 20 insertions, 11 deletions
diff --git a/libs/ardour/ardour/disk_reader.h b/libs/ardour/ardour/disk_reader.h
index e09904ad34..c3cbe33f15 100644
--- a/libs/ardour/ardour/disk_reader.h
+++ b/libs/ardour/ardour/disk_reader.h
@@ -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;
diff --git a/libs/ardour/butler.cc b/libs/ardour/butler.cc
index 5e743cd569..475735a2e1 100644
--- a/libs/ardour/butler.cc
+++ b/libs/ardour/butler.cc
@@ -27,10 +27,12 @@
#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;
diff --git a/libs/ardour/disk_io.cc b/libs/ardour/disk_io.cc
index b7622bc9d4..e15620b1d2 100644
--- a/libs/ardour/disk_io.cc
+++ b/libs/ardour/disk_io.cc
@@ -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
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index a46a63dce9..90fe5a931c 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -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;
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index 1f6645bae8..5ba64ff2f7 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -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
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc
index 571da3f1f9..a1b2b8e56c 100644
--- a/libs/ardour/track.cc
+++ b/libs/ardour/track.cc
@@ -806,6 +806,10 @@ Track::use_playlist (DataType dt, boost::shared_ptr<Playlist> p)
}
}
+ if (ret == 0) {
+ _playlists[dt] = p;
+ }
+
return ret;
}