summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_region_view.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-08-03 11:15:01 +0000
committerCarl Hetherington <carl@carlh.net>2011-08-03 11:15:01 +0000
commit9e6eb3e0c732cc399ed3b925ef6c584edc853dc7 (patch)
treee12c9460b65a55ca1e612dc5a9d47fd1926ff958 /gtk2_ardour/midi_region_view.cc
parentad4f943f5ab0b3faa0ab87d0cd714efc7bf931d1 (diff)
Apply x42's patch from #4207; rename MIDI control
preferences to just MIDI. git-svn-id: svn://localhost/ardour2/branches/3.0@9948 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_region_view.cc')
-rw-r--r--gtk2_ardour/midi_region_view.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/gtk2_ardour/midi_region_view.cc b/gtk2_ardour/midi_region_view.cc
index 2d7cccb628..1de7f0176a 100644
--- a/gtk2_ardour/midi_region_view.cc
+++ b/gtk2_ardour/midi_region_view.cc
@@ -80,6 +80,8 @@ using namespace Editing;
using namespace ArdourCanvas;
using Gtkmm2ext::Keyboard;
+#define MIDI_BP_ZERO ((Config->get_first_midi_bank_is_zero())?0:1)
+
MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &tv,
boost::shared_ptr<MidiRegion> r, double spu, Gdk::Color const & basic_color)
: RegionView (parent, tv, r, spu, basic_color)
@@ -112,6 +114,7 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &
_note_group->raise_to_top();
PublicEditor::DropDownKeys.connect (sigc::mem_fun (*this, &MidiRegionView::drop_down_keys));
+ Config->ParameterChanged.connect (*this, invalidator (*this), ui_bind (&MidiRegionView::parameter_changed, this, _1), gui_context());
connect_to_diskstream ();
}
@@ -148,6 +151,16 @@ MidiRegionView::MidiRegionView (ArdourCanvas::Group *parent, RouteTimeAxisView &
connect_to_diskstream ();
}
+void
+MidiRegionView::parameter_changed (std::string const & p)
+{
+ if (p == "diplay-first-midi-bank-as-zero") {
+ if (_enable_display) {
+ redisplay_model();
+ }
+ }
+}
+
MidiRegionView::MidiRegionView (const MidiRegionView& other)
: sigc::trackable(other)
, RegionView (other)
@@ -269,6 +282,7 @@ MidiRegionView::init (Gdk::Color const & basic_color, bool wfd)
ui_bind(&MidiRegionView::snap_changed, this),
gui_context());
+ Config->ParameterChanged.connect (*this, invalidator (*this), ui_bind (&MidiRegionView::parameter_changed, this, _1), gui_context());
connect_to_diskstream ();
}
@@ -1158,6 +1172,7 @@ MidiRegionView::display_patch_changes ()
if (chn_mask & (1<<i)) {
display_patch_changes_on_channel (i);
}
+ /* TODO gray-out patch instad of not displaying it */
}
}
@@ -1180,8 +1195,8 @@ MidiRegionView::display_patch_changes_on_channel (uint8_t channel)
add_canvas_patch_change (*i, patch->name());
} else {
char buf[16];
- /* program and bank numbers are zero-based: convert to one-based */
- snprintf (buf, 16, "%d\n%d", (*i)->program() + 1, (*i)->bank() + 1);
+ /* 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);
}
}
@@ -2956,7 +2971,7 @@ MidiRegionView::patch_entered (ArdourCanvas::CanvasPatchChange* ev)
{
ostringstream s;
/* XXX should get patch name if we can */
- s << _("Bank:") << (ev->patch()->bank() + 1) << '\n' << _("Program:") << ((int) ev->patch()->program() + 1);
+ s << _("Bank:") << (ev->patch()->bank() + MIDI_BP_ZERO) << '\n' << _("Program:") << ((int) ev->patch()->program()) + MIDI_BP_ZERO << '\n' << _("Channel:") << ((int) ev->patch()->channel() + 1);
show_verbose_cursor (s.str(), 10, 20);
}