summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-10-01 03:30:02 +0200
committerRobin Gareus <robin@gareus.org>2017-10-01 03:30:02 +0200
commitc5a92ef81310f3e449d029061bce674461134924 (patch)
treefb1834178aa6e5a48c79b5781dfe340b4e4fe4f7
parent05ab7a46b5cf4482ca999625da7405d47fd700a6 (diff)
Fix MIDI rec-region display
gui_feed_buffer is used for DiskWriter -> GUI notifications. It was wrongly migrated from MidiDiskstream to DiskReader in 7fb6807
-rw-r--r--libs/ardour/ardour/disk_reader.h9
-rw-r--r--libs/ardour/ardour/disk_writer.h2
-rw-r--r--libs/ardour/disk_reader.cc11
-rw-r--r--libs/ardour/disk_writer.cc10
-rw-r--r--libs/ardour/midi_track.cc2
5 files changed, 13 insertions, 21 deletions
diff --git a/libs/ardour/ardour/disk_reader.h b/libs/ardour/ardour/disk_reader.h
index 04e4ccb3a1..4bc78cbd67 100644
--- a/libs/ardour/ardour/disk_reader.h
+++ b/libs/ardour/ardour/disk_reader.h
@@ -104,7 +104,6 @@ class LIBARDOUR_API DiskReader : public DiskIOProcessor
friend class MidiTrack;
void resolve_tracker (Evoral::EventSink<samplepos_t>& buffer, samplepos_t time);
- boost::shared_ptr<MidiBuffer> get_gui_feed_buffer () const;
void playlist_changed (const PBD::PropertyChange&);
int use_playlist (DataType, boost::shared_ptr<Playlist>);
@@ -127,14 +126,6 @@ class LIBARDOUR_API DiskReader : public DiskIOProcessor
static samplecnt_t midi_readahead;
static bool _no_disk_output;
- /* The MIDI stuff */
-
- /** A buffer that we use to put newly-arrived MIDI data in for
- the GUI to read (so that it can update itself).
- */
- MidiBuffer _gui_feed_buffer;
- mutable Glib::Threads::Mutex _gui_feed_buffer_mutex;
-
int audio_read (Sample* buf, Sample* mixdown_buffer, float* gain_buffer,
samplepos_t& start, samplecnt_t cnt,
int channel, bool reversed);
diff --git a/libs/ardour/ardour/disk_writer.h b/libs/ardour/ardour/disk_writer.h
index fba494d383..59267f5f8f 100644
--- a/libs/ardour/ardour/disk_writer.h
+++ b/libs/ardour/ardour/disk_writer.h
@@ -129,6 +129,8 @@ public:
void adjust_buffering ();
+ boost::shared_ptr<MidiBuffer> get_gui_feed_buffer () const;
+
protected:
friend class Track;
int do_flush (RunContext context, bool force = false);
diff --git a/libs/ardour/disk_reader.cc b/libs/ardour/disk_reader.cc
index f610ce4950..a3e3773c53 100644
--- a/libs/ardour/disk_reader.cc
+++ b/libs/ardour/disk_reader.cc
@@ -54,7 +54,6 @@ DiskReader::DiskReader (Session& s, string const & str, DiskIOProcessor::Flag f)
, overwrite_offset (0)
, _pending_overwrite (false)
, overwrite_queued (false)
- , _gui_feed_buffer (AudioEngine::instance()->raw_buffer_size (DataType::MIDI))
{
file_sample[DataType::AUDIO] = 0;
file_sample[DataType::MIDI] = 0;
@@ -1205,16 +1204,6 @@ DiskReader::move_processor_automation (boost::weak_ptr<Processor> p, list< Evora
}
}
-boost::shared_ptr<MidiBuffer>
-DiskReader::get_gui_feed_buffer () const
-{
- boost::shared_ptr<MidiBuffer> b (new MidiBuffer (AudioEngine::instance()->raw_buffer_size (DataType::MIDI)));
-
- Glib::Threads::Mutex::Lock lm (_gui_feed_buffer_mutex);
- b->copy (_gui_feed_buffer);
- return b;
-}
-
void
DiskReader::reset_tracker ()
{
diff --git a/libs/ardour/disk_writer.cc b/libs/ardour/disk_writer.cc
index 8fec82fa2a..e1997e0bbd 100644
--- a/libs/ardour/disk_writer.cc
+++ b/libs/ardour/disk_writer.cc
@@ -648,6 +648,16 @@ DiskWriter::finish_capture (boost::shared_ptr<ChannelList> c)
first_recordable_sample = max_samplepos;
}
+boost::shared_ptr<MidiBuffer>
+DiskWriter::get_gui_feed_buffer () const
+{
+ boost::shared_ptr<MidiBuffer> b (new MidiBuffer (AudioEngine::instance()->raw_buffer_size (DataType::MIDI)));
+
+ Glib::Threads::Mutex::Lock lm (_gui_feed_buffer_mutex);
+ b->copy (_gui_feed_buffer);
+ return b;
+}
+
void
DiskWriter::set_record_enabled (bool yn)
{
diff --git a/libs/ardour/midi_track.cc b/libs/ardour/midi_track.cc
index e6734ed08c..11e6bec41b 100644
--- a/libs/ardour/midi_track.cc
+++ b/libs/ardour/midi_track.cc
@@ -752,7 +752,7 @@ MidiTrack::track_input_active (IOChange change, void* /* src */)
boost::shared_ptr<MidiBuffer>
MidiTrack::get_gui_feed_buffer () const
{
- return _disk_reader->get_gui_feed_buffer ();
+ return _disk_writer->get_gui_feed_buffer ();
}
void