mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-24 07:27:44 +01:00
random changes required to get an audio track created and transport functional
This commit is contained in:
parent
c35fb223f5
commit
84d2a4d778
6 changed files with 20 additions and 11 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -806,6 +806,10 @@ Track::use_playlist (DataType dt, boost::shared_ptr<Playlist> p)
|
|||
}
|
||||
}
|
||||
|
||||
if (ret == 0) {
|
||||
_playlists[dt] = p;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue