Fix problem with notes occasionally not showing up at all.
git-svn-id: svn://localhost/ardour2/trunk@2919 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
c4cec60d8f
commit
b2e3b18dab
@ -603,6 +603,7 @@ MidiRegionView::add_note(const boost::shared_ptr<Note> note)
|
|||||||
{
|
{
|
||||||
assert(note->time() >= 0);
|
assert(note->time() >= 0);
|
||||||
//assert(note->time() < _region->length());
|
//assert(note->time() < _region->length());
|
||||||
|
assert(midi_view()->note_mode() == Sustained || midi_view()->note_mode() == Percussive);
|
||||||
|
|
||||||
ArdourCanvas::Group* const group = (ArdourCanvas::Group*)get_canvas_group();
|
ArdourCanvas::Group* const group = (ArdourCanvas::Group*)get_canvas_group();
|
||||||
|
|
||||||
@ -639,7 +640,8 @@ MidiRegionView::add_note(const boost::shared_ptr<Note> note)
|
|||||||
|
|
||||||
} else if (midi_view()->note_mode() == Percussive) {
|
} else if (midi_view()->note_mode() == Percussive) {
|
||||||
|
|
||||||
//cerr << "MRV::add_note percussive " << note->note() << " @ " << note->time() << endl;
|
//cerr << "MRV::add_note percussive " << note->note() << " @ " << note->time()
|
||||||
|
// << " .. " << note->end_time() << endl;
|
||||||
|
|
||||||
const double diamond_size = midi_stream_view()->note_height() / 2.0;
|
const double diamond_size = midi_stream_view()->note_height() / 2.0;
|
||||||
const double x = trackview.editor.frame_to_pixel((nframes_t)note->time());
|
const double x = trackview.editor.frame_to_pixel((nframes_t)note->time());
|
||||||
@ -651,6 +653,7 @@ MidiRegionView::add_note(const boost::shared_ptr<Note> note)
|
|||||||
ev_diamond->property_fill_color_rgba() = note_fill_color(note->velocity());
|
ev_diamond->property_fill_color_rgba() = note_fill_color(note->velocity());
|
||||||
ev_diamond->property_outline_color_rgba() = note_outline_color(note->velocity());
|
ev_diamond->property_outline_color_rgba() = note_outline_color(note->velocity());
|
||||||
_events.push_back(ev_diamond);
|
_events.push_back(ev_diamond);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -230,7 +230,7 @@ MidiTimeAxisView::build_mode_menu()
|
|||||||
void
|
void
|
||||||
MidiTimeAxisView::set_note_mode(NoteMode mode)
|
MidiTimeAxisView::set_note_mode(NoteMode mode)
|
||||||
{
|
{
|
||||||
if (_note_mode != mode) {
|
if (_note_mode != mode || midi_track()->note_mode() != mode) {
|
||||||
_note_mode = mode;
|
_note_mode = mode;
|
||||||
midi_track()->set_note_mode(mode);
|
midi_track()->set_note_mode(mode);
|
||||||
_view->redisplay_diskstream();
|
_view->redisplay_diskstream();
|
||||||
|
@ -47,6 +47,7 @@ using namespace PBD;
|
|||||||
MidiTrack::MidiTrack (Session& sess, string name, Route::Flag flag, TrackMode mode)
|
MidiTrack::MidiTrack (Session& sess, string name, Route::Flag flag, TrackMode mode)
|
||||||
: Track (sess, name, flag, mode, DataType::MIDI)
|
: Track (sess, name, flag, mode, DataType::MIDI)
|
||||||
, _immediate_events(1024) // FIXME: size?
|
, _immediate_events(1024) // FIXME: size?
|
||||||
|
, _note_mode(Sustained)
|
||||||
{
|
{
|
||||||
MidiDiskstream::Flag dflags = MidiDiskstream::Flag (0);
|
MidiDiskstream::Flag dflags = MidiDiskstream::Flag (0);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user