diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2012-06-10 16:42:17 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2012-06-10 16:42:17 +0000 |
commit | 23350c195db2a8a777ca8d471174b44255c96ec4 (patch) | |
tree | ed17d2c8545b38fdc879e96ddb13a22c6986218f /gtk2_ardour/midi_region_view.cc | |
parent | df6222b3b408ecf2aa673beb0fdff2fa309a81a1 (diff) |
remove craziness of propagating MIDI 7 bit limits into MIDNAM handling by replacing bank_msb/lsb with "bank" ; move responsibility for discovering patch names into MIDI trackview (soon to move again)
git-svn-id: svn://localhost/ardour2/branches/3.0@12647 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r-- | gtk2_ardour/midi_region_view.cc | 47 |
1 files changed, 12 insertions, 35 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc index 70f080720d..490dbf90a2 100644 --- a/gtk2_ardour/midi_region_view.cc +++ b/gtk2_ardour/midi_region_view.cc @@ -117,7 +117,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView & /* Look up MIDNAM details from our MidiTimeAxisView */ MidiTimeAxisView& mtv = dynamic_cast<MidiTimeAxisView&> (tv); - midi_patch_settings_changed (mtv.midi_patch_model (), mtv.midi_patch_custom_device_node ()); + midi_patch_settings_changed (mtv.midi_patch_model (), mtv.midi_patch_custom_device_mode ()); Config->ParameterChanged.connect (*this, invalidator (*this), boost::bind (&MidiRegionView::parameter_changed, this, _1), gui_context()); connect_to_diskstream (); @@ -158,7 +158,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView & /* Look up MIDNAM details from our MidiTimeAxisView */ MidiTimeAxisView& mtv = dynamic_cast<MidiTimeAxisView&> (tv); - midi_patch_settings_changed (mtv.midi_patch_model (), mtv.midi_patch_custom_device_node ()); + midi_patch_settings_changed (mtv.midi_patch_model (), mtv.midi_patch_custom_device_mode ()); connect_to_diskstream (); @@ -1209,20 +1209,10 @@ MidiRegionView::display_patch_changes_on_channel (uint8_t channel, bool active_c continue; } - MIDI::Name::PatchPrimaryKey patch_key ((*i)->bank_msb (), (*i)->bank_lsb (), (*i)->program ()); + MidiTimeAxisView* const mtv = dynamic_cast<MidiTimeAxisView*>(&trackview); + string patch_name = mtv->get_patch_name ((*i)->bank(), (*i)->program(), channel); - boost::shared_ptr<MIDI::Name::Patch> patch = - MIDI::Name::MidiPatchManager::instance().find_patch( - _model_name, _custom_device_mode, channel, patch_key); - - if (patch != 0) { - add_canvas_patch_change (*i, patch->name(), active_channel); - } else { - char buf[16]; - /* program and bank numbers are zero-based: convert to one-based: MIDI_BP_ZERO */ - snprintf (buf, 16, "%d %d", (*i)->program() + MIDI_BP_ZERO , (*i)->bank() + MIDI_BP_ZERO); - add_canvas_patch_change (*i, buf, active_channel); - } + add_canvas_patch_change (*i, patch_name, active_channel); } } @@ -1832,11 +1822,10 @@ MidiRegionView::get_patch_key_at (Evoral::MusicalTime time, uint8_t channel, MID } if (i != _model->patch_changes().end()) { - key.msb = (*i)->bank_msb (); - key.lsb = (*i)->bank_lsb (); + key.bank_number = (*i)->bank(); key.program_number = (*i)->program (); } else { - key.msb = key.lsb = key.program_number = 0; + key.bank_number = key.program_number = 0; } assert (key.is_sane()); @@ -1852,7 +1841,7 @@ MidiRegionView::change_patch_change (CanvasPatchChange& pc, const MIDI::Name::Pa c->change_program (pc.patch (), new_patch.program_number); } - int const new_bank = (new_patch.msb << 7) | new_patch.lsb; + int const new_bank = new_patch.bank_number; if (pc.patch()->bank() != new_bank) { c->change_bank (pc.patch (), new_bank); } @@ -1965,15 +1954,9 @@ MidiRegionView::previous_bank (CanvasPatchChange& patch) if (patch.patch()->program() < 127) { MIDI::Name::PatchPrimaryKey key; get_patch_key_at (patch.patch()->time(), patch.patch()->channel(), key); - if (key.lsb > 0) { - key.lsb--; + if (key.bank_number > 0) { + key.bank_number--; change_patch_change (patch, key); - } else { - if (key.msb > 0) { - key.lsb = 127; - key.msb--; - change_patch_change (patch, key); - } } } } @@ -1984,15 +1967,9 @@ MidiRegionView::next_bank (CanvasPatchChange& patch) if (patch.patch()->program() > 0) { MIDI::Name::PatchPrimaryKey key; get_patch_key_at (patch.patch()->time(), patch.patch()->channel(), key); - if (key.lsb < 127) { - key.lsb++; + if (key.bank_number < 127) { + key.bank_number++; change_patch_change (patch, key); - } else { - if (key.msb < 127) { - key.lsb = 0; - key.msb++; - change_patch_change (patch, key); - } } } } |