diff options
author | Florian Jung <flo@windfisch.org> | 2011-10-11 16:02:53 +0000 |
---|---|---|
committer | Florian Jung <flo@windfisch.org> | 2011-10-11 16:02:53 +0000 |
commit | abedca49b707bd5bced2bee2caa8bb4417dcfa51 (patch) | |
tree | 7f933fc8de2e0e3e5ebb0024a00b562e27734aa9 /muse2/muse/helper.cpp | |
parent | 4b27437712d5341129b019ec98fb8e4d3fa7ad0d (diff) |
improved creating new notes in drum canvas
Diffstat (limited to 'muse2/muse/helper.cpp')
-rw-r--r-- | muse2/muse/helper.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/muse2/muse/helper.cpp b/muse2/muse/helper.cpp index e3cdee7e..1298b2d2 100644 --- a/muse2/muse/helper.cpp +++ b/muse2/muse/helper.cpp @@ -111,6 +111,42 @@ bool drummaps_almost_equal(DrumMap* one, DrumMap* two, int len) } +QSet<Part*> parts_at_tick(unsigned tick) +{ + using MusEGlobal::song; + + QSet<Track*> tmp; + for (iTrack it=song->tracks()->begin(); it!=song->tracks()->end(); it++) + tmp.insert(*it); + + return parts_at_tick(tick, tmp); +} + +QSet<Part*> parts_at_tick(unsigned tick, Track* track) +{ + QSet<Track*> tmp; + tmp.insert(track); + + return parts_at_tick(tick, tmp); +} + +QSet<Part*> parts_at_tick(unsigned tick, const QSet<Track*>& tracks) +{ + QSet<Part*> result; + + for (QSet<Track*>::const_iterator it=tracks.begin(); it!=tracks.end(); it++) + { + Track* track=*it; + + for (iPart p_it=track->parts()->begin(); p_it!=track->parts()->end(); p_it++) + if (tick >= p_it->second->tick() && tick <= p_it->second->endTick()) + result.insert(p_it->second); + } + + return result; +} + + } // namespace MusECore namespace MusEGui { |