summaryrefslogtreecommitdiff
path: root/libs/ardour/disk_io.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2017-04-03 23:36:12 +0200
committerPaul Davis <paul@linuxaudiosystems.com>2017-09-18 11:40:53 -0400
commit35c7274cc96a04f166df78249e66ae4a32a53a66 (patch)
tree99794daed4a289bf9164d0864d46f4773397fbaa /libs/ardour/disk_io.cc
parentd16ae875be9d113c3cb0ec9e8311f3bb5dab9bfa (diff)
remove Diskstream from Track and derivatives; get ardour to actually startup
Diffstat (limited to 'libs/ardour/disk_io.cc')
-rw-r--r--libs/ardour/disk_io.cc43
1 files changed, 21 insertions, 22 deletions
diff --git a/libs/ardour/disk_io.cc b/libs/ardour/disk_io.cc
index 89aba80322..b7622bc9d4 100644
--- a/libs/ardour/disk_io.cc
+++ b/libs/ardour/disk_io.cc
@@ -17,11 +17,13 @@
*/
+#include "pbd/debug.h"
#include "pbd/error.h"
#include "pbd/i18n.h"
#include "ardour/audioplaylist.h"
#include "ardour/butler.h"
+#include "ardour/debug.h"
#include "ardour/disk_io.h"
#include "ardour/disk_reader.h"
#include "ardour/disk_writer.h"
@@ -62,7 +64,7 @@ DiskIOProcessor::DiskIOProcessor (Session& s, string const & str, Flag f)
, speed_buffer_size (0)
, _need_butler (false)
, channels (new ChannelList)
- , _midi_buf (0)
+ , _midi_buf (new MidiRingBuffer<framepos_t> (s.butler()->midi_diskstream_buffer_size()))
, _frames_written_to_ringbuffer (0)
, _frames_read_from_ringbuffer (0)
{
@@ -148,7 +150,7 @@ DiskIOProcessor::can_support_io_configuration (const ChanCount& in, ChanCount& o
bool
DiskIOProcessor::configure_io (ChanCount in, ChanCount out)
{
- Glib::Threads::Mutex::Lock lm (state_lock);
+ DEBUG_TRACE (DEBUG::DiskIO, string_compose ("Configuring %1 for in:%2 out:%3\n", name(), in, out));
RCUWriter<ChannelList> writer (channels);
boost::shared_ptr<ChannelList> c = writer.get_copy();
@@ -213,9 +215,7 @@ DiskIOProcessor::non_realtime_locate (framepos_t location)
void
DiskIOProcessor::non_realtime_set_speed ()
{
- if (_buffer_reallocation_required)
- {
- Glib::Threads::Mutex::Lock lm (state_lock);
+ if (_buffer_reallocation_required) {
_buffer_reallocation_required = false;
}
@@ -368,27 +368,27 @@ DiskIOProcessor::use_playlist (DataType dt, boost::shared_ptr<Playlist> playlist
return 0;
}
- {
- Glib::Threads::Mutex::Lock lm (state_lock);
+ DEBUG_TRACE (DEBUG::DiskIO, string_compose ("%1: set to use playlist %2 (%3)\n", name(), playlist->name(), dt.to_string()));
- if (playlist == _playlists[dt]) {
- return 0;
- }
+ if (playlist == _playlists[dt]) {
+ return 0;
+ }
- playlist_connections.drop_connections ();
+ playlist_connections.drop_connections ();
- if (_playlists[dt]) {
- _playlists[dt]->release();
- }
+ if (_playlists[dt]) {
+ _playlists[dt]->release();
+ }
- _playlists[dt] = playlist;
- playlist->use();
+ _playlists[dt] = playlist;
+ playlist->use();
- playlist->ContentsChanged.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_modified, this));
- playlist->LayeringChanged.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_modified, this));
- playlist->DropReferences.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_deleted, this, boost::weak_ptr<Playlist>(playlist)));
- playlist->RangesMoved.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_ranges_moved, this, _1, _2));
- }
+ playlist->ContentsChanged.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_modified, this));
+ playlist->LayeringChanged.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_modified, this));
+ playlist->DropReferences.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_deleted, this, boost::weak_ptr<Playlist>(playlist)));
+ playlist->RangesMoved.connect_same_thread (playlist_connections, boost::bind (&DiskIOProcessor::playlist_ranges_moved, this, _1, _2));
+
+ DEBUG_TRACE (DEBUG::DiskIO, string_compose ("%1 now use playlist %1 (%2)\n", name(), playlist->name(), playlist->id()));
PlaylistChanged (dt); /* EMIT SIGNAL */
_session.set_dirty ();
@@ -452,4 +452,3 @@ DiskIOProcessor::get_location_times(const Location* location,
*length = *end - *start;
}
}
-