random changes required to get an audio track created and transport functional

This commit is contained in:
Paul Davis 2017-04-10 10:25:00 +01:00
parent c35fb223f5
commit 84d2a4d778
6 changed files with 20 additions and 11 deletions

View 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;

View file

@ -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;

View 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

View 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"
@ -746,7 +746,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 ();
@ -1694,7 +1694,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;

View 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

View file

@ -806,6 +806,10 @@ Track::use_playlist (DataType dt, boost::shared_ptr<Playlist> p)
}
}
if (ret == 0) {
_playlists[dt] = p;
}
return ret;
}