summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_selection.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2015-09-20 20:03:09 +0200
committerRobin Gareus <robin@gareus.org>2015-09-20 20:03:09 +0200
commitdec4790dffdbf670dd60e9913e8c60b109a25c3d (patch)
treeb0e073c75810fef1ac643dfea56916ccb76b7558 /gtk2_ardour/editor_selection.cc
parentcff0852df9d4258ee60732f9822eb6fdd83f1111 (diff)
update SFDB settings when track selection changes
Diffstat (limited to 'gtk2_ardour/editor_selection.cc')
-rw-r--r--gtk2_ardour/editor_selection.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 44794313a0..935d66fec8 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -41,6 +41,7 @@
#include "editor_regions.h"
#include "editor_cursors.h"
#include "midi_region_view.h"
+#include "sfdb_ui.h"
#include "i18n.h"
@@ -1006,6 +1007,32 @@ Editor::track_selection_changed ()
/* notify control protocols */
ControlProtocol::TrackSelectionChanged (routes);
+
+ if (sfbrowser) {
+ uint32_t audio_track_cnt = 0;
+ uint32_t midi_track_cnt = 0;
+
+ for (TrackSelection::iterator x = selection->tracks.begin(); x != selection->tracks.end(); ++x) {
+ AudioTimeAxisView* atv = dynamic_cast<AudioTimeAxisView*>(*x);
+
+ if (atv) {
+ if (atv->is_audio_track()) {
+ audio_track_cnt++;
+ }
+
+ } else {
+ MidiTimeAxisView* mtv = dynamic_cast<MidiTimeAxisView*>(*x);
+
+ if (mtv) {
+ if (mtv->is_midi_track()) {
+ midi_track_cnt++;
+ }
+ }
+ }
+ }
+
+ sfbrowser->reset (audio_track_cnt, midi_track_cnt);
+ }
}
void