#include <glibmm/thread.h>
-#include <pbd/error.h>
-#include <pbd/pthread_utils.h>
-#include <pbd/stacktrace.h>
-
-#include <ardour/configuration.h>
-#include <ardour/audioengine.h>
-#include <ardour/session.h>
-#include <ardour/audio_diskstream.h>
-#include <ardour/crossfade.h>
-#include <ardour/timestamps.h>
+#include "pbd/error.h"
+#include "pbd/pthread_utils.h"
+#include "pbd/stacktrace.h"
+
+#include "ardour/audio_diskstream.h"
+#include "ardour/audioengine.h"
+#include "ardour/configuration.h"
+#include "ardour/crossfade.h"
+#include "ardour/io.h"
+#include "ardour/midi_diskstream.h"
+#include "ardour/session.h"
+#include "ardour/timestamps.h"
#include "i18n.h"
* (i.e. how many MIDI bytes we might see in a cycle)
*/
midi_dstream_buffer_size = (uint32_t) floor (Config->get_midi_track_buffer_seconds() * (float)frame_rate());
+ MidiDiskstream::set_readahead_frames ((nframes_t) (Config->get_midi_readahead() * (float) frame_rate()));
Crossfade::set_buffer_size (audio_dstream_buffer_size);
void *
Session::_butler_thread_work (void* arg)
{
- PBD::ThreadCreated (pthread_self(), X_("Butler"));
+ PBD::notify_gui_about_thread_creation (pthread_self(), X_("Butler"));
return ((Session *) arg)->butler_thread_work ();
return 0;
}
/* don't read inactive tracks */
- IO* io = ds->io();
+ boost::shared_ptr<IO> io = ds->io();
if (io && !io->active()) {
continue;
/* note that we still try to flush diskstreams attached to inactive routes
*/
- switch ((*i)->do_flush (Session::ButlerContext)) {
+ switch ((*i)->do_flush (ButlerContext)) {
case 0:
bytes += (*i)->write_data_count();
break;