summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/disk_reader.h2
-rw-r--r--libs/ardour/ardour/midi_track.h2
-rw-r--r--libs/ardour/ardour/route.h2
-rw-r--r--libs/ardour/ardour/rt_midibuffer.h5
-rw-r--r--libs/ardour/ardour/track.h1
5 files changed, 9 insertions, 3 deletions
diff --git a/libs/ardour/ardour/disk_reader.h b/libs/ardour/ardour/disk_reader.h
index 47812f54c8..64a72cdd35 100644
--- a/libs/ardour/ardour/disk_reader.h
+++ b/libs/ardour/ardour/disk_reader.h
@@ -24,6 +24,7 @@
#include "ardour/disk_io.h"
#include "ardour/midi_buffer.h"
+#include "ardour/midi_state_tracker.h"
namespace ARDOUR
{
@@ -160,6 +161,7 @@ private:
DeclickAmp _declick_amp;
sampleoffset_t _declick_offs;
+ MidiStateTracker _tracker;
int _do_refill_with_alloc (bool partial_fill);
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h
index f01cb1e79c..74d58e4db2 100644
--- a/libs/ardour/ardour/midi_track.h
+++ b/libs/ardour/ardour/midi_track.h
@@ -135,6 +135,8 @@ public:
bool input_active () const;
PBD::Signal0<void> InputActiveChanged;
+ void realtime_handle_transport_stopped ();
+
protected:
XMLNode& state (bool save_template);
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index e11ddf8eca..18b1853436 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -157,7 +157,7 @@ public:
virtual bool can_record() { return false; }
void non_realtime_transport_stop (samplepos_t now, bool flush);
- void realtime_handle_transport_stopped ();
+ virtual void realtime_handle_transport_stopped ();
virtual void realtime_locate () {}
virtual void non_realtime_locate (samplepos_t);
diff --git a/libs/ardour/ardour/rt_midibuffer.h b/libs/ardour/ardour/rt_midibuffer.h
index 4b7a669128..28d6e69233 100644
--- a/libs/ardour/ardour/rt_midibuffer.h
+++ b/libs/ardour/ardour/rt_midibuffer.h
@@ -32,6 +32,7 @@
namespace ARDOUR {
class MidiBuffer;
+class MidiStateTracker;
/** */
class LIBARDOUR_API RTMidiBuffer : public Evoral::EventSink<samplepos_t>
@@ -47,7 +48,9 @@ class LIBARDOUR_API RTMidiBuffer : public Evoral::EventSink<samplepos_t>
size_t size() const { return _size; }
uint32_t write (TimeType time, Evoral::EventType type, uint32_t size, const uint8_t* buf);
- uint32_t read (MidiBuffer& dst, samplepos_t start, samplepos_t end, samplecnt_t offset = 0);
+ uint32_t read (MidiBuffer& dst, samplepos_t start, samplepos_t end, MidiStateTracker& tracker, samplecnt_t offset = 0);
+
+ void dump (uint32_t);
private:
size_t _size;
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h
index 37182a88b9..90d5574b65 100644
--- a/libs/ardour/ardour/track.h
+++ b/libs/ardour/ardour/track.h
@@ -142,7 +142,6 @@ public:
bool can_internal_playback_seek (samplecnt_t);
void internal_playback_seek (samplecnt_t);
void non_realtime_locate (samplepos_t);
- void realtime_handle_transport_stopped ();
bool overwrite_existing_buffers ();
samplecnt_t get_captured_samples (uint32_t n = 0) const;
void transport_looped (samplepos_t);