summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ardour/ardour')
-rw-r--r--libs/ardour/ardour/midi_diskstream.h3
-rw-r--r--libs/ardour/ardour/midi_state_tracker.h4
-rw-r--r--libs/ardour/ardour/midi_track.h5
3 files changed, 7 insertions, 5 deletions
diff --git a/libs/ardour/ardour/midi_diskstream.h b/libs/ardour/ardour/midi_diskstream.h
index 872ffb78e3..730d6c0276 100644
--- a/libs/ardour/ardour/midi_diskstream.h
+++ b/libs/ardour/ardour/midi_diskstream.h
@@ -39,7 +39,6 @@
#include "ardour/diskstream.h"
#include "ardour/midi_playlist.h"
#include "ardour/midi_ring_buffer.h"
-#include "ardour/midi_state_tracker.h"
#include "ardour/utils.h"
struct tm;
@@ -178,8 +177,6 @@ class MidiDiskstream : public Diskstream
boost::shared_ptr<SMFSource> _write_source;
nframes_t _last_flush_frame;
NoteMode _note_mode;
- MidiStateTracker _midi_state_tracker;
- MidiStateTracker _incoming_midi_state_tracker;
volatile gint _frames_written_to_ringbuffer;
volatile gint _frames_read_from_ringbuffer;
};
diff --git a/libs/ardour/ardour/midi_state_tracker.h b/libs/ardour/ardour/midi_state_tracker.h
index 4c15ab1e0f..f9b39f9295 100644
--- a/libs/ardour/ardour/midi_state_tracker.h
+++ b/libs/ardour/ardour/midi_state_tracker.h
@@ -35,7 +35,7 @@ class MidiStateTracker
public:
MidiStateTracker();
- bool track (const MidiBuffer::iterator& from, const MidiBuffer::iterator& to);
+ void track (const MidiBuffer::iterator& from, const MidiBuffer::iterator& to, bool& looped);
void resolve_notes (MidiBuffer& buffer, nframes_t time);
void dump (std::ostream&);
void reset ();
@@ -43,7 +43,7 @@ public:
private:
void track_note_onoffs(const Evoral::MIDIEvent<MidiBuffer::TimeType>& event);
- std::bitset<128*16> _active_notes;
+ uint8_t _active_notes[128*16];
};
diff --git a/libs/ardour/ardour/midi_track.h b/libs/ardour/ardour/midi_track.h
index 0030fdc520..a1b0d2003e 100644
--- a/libs/ardour/ardour/midi_track.h
+++ b/libs/ardour/ardour/midi_track.h
@@ -22,6 +22,7 @@
#include "ardour/track.h"
#include "ardour/midi_ring_buffer.h"
+#include "ardour/midi_state_tracker.h"
namespace ARDOUR
{
@@ -41,6 +42,8 @@ public:
int roll (nframes_t nframes, sframes_t start_frame, sframes_t end_frame,
int declick, bool can_record, bool rec_monitors_input);
+ void handle_transport_stopped (bool abort, bool did_locate, bool flush_processors);
+
boost::shared_ptr<MidiDiskstream> midi_diskstream() const;
int use_diskstream (string name);
@@ -96,6 +99,8 @@ private:
void set_state_part_two ();
void set_state_part_three ();
+ MidiStateTracker _midi_state_tracker;
+
MidiRingBuffer<nframes_t> _immediate_events;
MidiRingBuffer<nframes_t> _step_edit_ring_buffer;
NoteMode _note_mode;