summaryrefslogtreecommitdiff
path: root/gtk2_ardour/midi_time_axis.cc
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-12-09 07:42:19 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-12-09 07:42:19 +0000
commit457f06855e30ebdfeae0a5dfe39cb8f52422a912 (patch)
tree6c72d2c8115072e51338aad868d2a07e9a598c24 /gtk2_ardour/midi_time_axis.cc
parent42db44c1939410aab15eb3c0d08f6026fb58b003 (diff)
* first working prototype of selecting instruments in the MIDI track header
* parsing patchfiles works git-svn-id: svn://localhost/ardour2/branches/3.0@4304 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_time_axis.cc')
-rw-r--r--gtk2_ardour/midi_time_axis.cc25
1 files changed, 22 insertions, 3 deletions
diff --git a/gtk2_ardour/midi_time_axis.cc b/gtk2_ardour/midi_time_axis.cc
index 01505ad303..1c6ac5b5fe 100644
--- a/gtk2_ardour/midi_time_axis.cc
+++ b/gtk2_ardour/midi_time_axis.cc
@@ -68,6 +68,7 @@
#include "midi_streamview.h"
#include "utils.h"
#include "midi_scroomer.h"
+#include "midi_patch_manager.h"
#include "piano_roll_header.h"
#include "ghostregion.h"
@@ -141,9 +142,27 @@ MidiTimeAxisView::MidiTimeAxisView (PublicEditor& ed, Session& sess, boost::shar
}
// add channel selector expander
- HBox *midi_expander_box = manage(new HBox());
- midi_expander_box->pack_start(_channel_selector, false, false);
- _midi_expander.add(*midi_expander_box);
+ HBox* midi_expander_hbox = manage(new HBox());
+ VBox* midi_expander_vbox = manage(new VBox());
+
+ // Instrument patch selector
+ ComboBoxText* model_selector = manage(new ComboBoxText());
+
+ MIDI::Name::MidiPatchManager& patch_manager = MIDI::Name::MidiPatchManager::instance();
+ patch_manager.set_session(session());
+
+ for (MIDI::Name::MasterDeviceNames::Models::const_iterator model = patch_manager.all_models().begin();
+ model != patch_manager.all_models().end();
+ ++model) {
+ model_selector->append_text(model->c_str());
+ }
+
+ model_selector->set_active(0);
+
+ midi_expander_hbox->pack_start(_channel_selector, true, false);
+ midi_expander_vbox->pack_start(*model_selector, true, false);
+ midi_expander_vbox->pack_start(*midi_expander_hbox, true, true);
+ _midi_expander.add(*midi_expander_vbox);
_midi_expander.property_expanded().signal_changed().connect(
mem_fun(this, &MidiTimeAxisView::channel_selector_toggled));
controls_vbox.pack_start(_midi_expander, false, false);