diff options
author | Hans Baier <hansfbaier@googlemail.com> | 2008-04-21 09:39:05 +0000 |
---|---|---|
committer | Hans Baier <hansfbaier@googlemail.com> | 2008-04-21 09:39:05 +0000 |
commit | f31abc5eaf30ea9ed099279cbc2b7c41c131acd6 (patch) | |
tree | 1135298690fd1feb273ed8c0259d0e479cb51182 /gtk2_ardour/midi_channel_selector.h | |
parent | e8c2b6f371b1d01f208bce8f831a82f9668f3e60 (diff) |
* UI fixes for track channel selection
* implemented 'forcing midi events into a single channel'
* see http://www.flickr.com/photos/24012642@N02/2430165889/
git-svn-id: svn://localhost/ardour2/branches/3.0@3273 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/midi_channel_selector.h')
-rw-r--r-- | gtk2_ardour/midi_channel_selector.h | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/gtk2_ardour/midi_channel_selector.h b/gtk2_ardour/midi_channel_selector.h index 33eb3f6b75..901296903c 100644 --- a/gtk2_ardour/midi_channel_selector.h +++ b/gtk2_ardour/midi_channel_selector.h @@ -19,6 +19,7 @@ protected: virtual void button_toggled(Gtk::ToggleButton *button, uint8_t button_nr) = 0; Gtk::Label _button_labels[4][4]; Gtk::ToggleButton _buttons[4][4]; + int _recursion_counter; }; class SingleMidiChannelSelector : public MidiChannelSelector @@ -33,7 +34,7 @@ public: protected: virtual void button_toggled(Gtk::ToggleButton *button, uint8_t button_nr); - Gtk::ToggleButton *_active_button; + Gtk::ToggleButton *_last_active_button; uint8_t _active_channel; }; @@ -41,13 +42,30 @@ class MidiMultipleChannelSelector : public MidiChannelSelector { public: MidiMultipleChannelSelector(uint16_t initial_selection = 1); + virtual ~MidiMultipleChannelSelector(); - const uint16_t get_selected_channels() const { return _selected_channels; } + /** + * @return each bit in the returned word represents a midi channel, eg. + * bit 0 represents channel 0 and bit 15 represents channel 15 + * + */ + const uint16_t get_selected_channels() const; + void set_selected_channels(uint16_t selected_channels); sigc::signal<void, uint16_t> selection_changed; - + sigc::signal<void, int8_t> force_channel_changed; + + const int8_t get_force_channel() const; protected: + enum Mode { + FILTERING_MULTIPLE_CHANNELS, + FORCING_SINGLE_CHANNEL + }; + + Mode _mode; + virtual void button_toggled(Gtk::ToggleButton *button, uint8_t button_nr); + void force_channels_button_toggled(); void select_all(bool on); void invert_selection(void); @@ -56,7 +74,6 @@ protected: Gtk::Button _select_none; Gtk::Button _invert_selection; Gtk::ToggleButton _force_channel; - uint16_t _selected_channels; }; #endif /*__ardour_ui_midi_channel_selector_h__*/ |