diff options
author | Florian Jung <flo@windfisch.org> | 2011-05-20 13:54:45 +0000 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2011-05-20 13:54:45 +0000 |
commit | c64f27112000bc26f94510c885ea433aca115fbe (patch) | |
tree | ed73e172e8024a8b6b924d0c44566fa2b3585516 /muse2/muse/midiedit/dcanvas.cpp | |
parent | 5d531cd32eb2053f10a349ee9a7d542bc550815c (diff) |
added "reorder list" function to drum roll
Diffstat (limited to 'muse2/muse/midiedit/dcanvas.cpp')
-rw-r--r-- | muse2/muse/midiedit/dcanvas.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/muse2/muse/midiedit/dcanvas.cpp b/muse2/muse/midiedit/dcanvas.cpp index 18463eb0..eea29b46 100644 --- a/muse2/muse/midiedit/dcanvas.cpp +++ b/muse2/muse/midiedit/dcanvas.cpp @@ -19,6 +19,7 @@ #include <stdio.h> #include <values.h> #include <errno.h> +#include <set> //#include <sys/stat.h> //#include <sys/mman.h> @@ -1474,3 +1475,31 @@ void DrumCanvas::selectCursorEvent(Event *ev) } updateSelection(); } + + +void DrumCanvas::moveAwayUnused() +{ + using std::set; + + set<int> used; + for (iCItem it=items.begin(); it!=items.end(); it++) + { + const Event& ev=it->second->event(); + + if (ev.type()==Note) + used.insert(ev.pitch()); + } + + int count=0; + for (set<int>::iterator it=used.begin(); it!=used.end();) + { + while ((*it != count) && (used.find(count)!=used.end())) count++; + + if (*it != count) + mapChanged(*it, count); + + count++; + + used.erase(it++); + } +} |