From 56417f8e86e19d459a86f31a41a494f4a9e813a1 Mon Sep 17 00:00:00 2001 From: Florian Jung Date: Wed, 28 Sep 2011 15:34:53 +0000 Subject: first changes for "new-style-drumtracks" almost certainly buggy, incomplete etc. --- muse2/muse/midiedit/dcanvas.h | 40 ++++++++++++++++++++++++++++++++++++++-- 1 file changed, 38 insertions(+), 2 deletions(-) (limited to 'muse2/muse/midiedit/dcanvas.h') diff --git a/muse2/muse/midiedit/dcanvas.h b/muse2/muse/midiedit/dcanvas.h index c25f71ca..7c574821 100644 --- a/muse2/muse/midiedit/dcanvas.h +++ b/muse2/muse/midiedit/dcanvas.h @@ -26,6 +26,9 @@ #include "ecanvas.h" #include "song.h" #include "steprec.h" +#include +#include +#include #define TH 18 @@ -36,6 +39,7 @@ class QDropEvent; class QDragMoveEvent; class QDragLeaveEvent; +class DrumMap; class MidiEditor; //--------------------------------------------------------- @@ -45,12 +49,31 @@ class MidiEditor; class DEvent : public MusEWidget::CItem { public: - DEvent(Event e, Part* p); + DEvent(Event e, Part* p, int instr); }; class ScrollScale; class PianoRoll; + +struct instrument_number_mapping_t +{ + QSet tracks; + int pitch; + + instrument_number_mapping_t() + { + pitch=-1; + tracks.clear(); + } + + instrument_number_mapping_t(const QSet& tr, int p) + { + tracks=tr; + pitch=p; + } +}; + //--------------------------------------------------------- // DrumCanvas //--------------------------------------------------------- @@ -58,6 +81,11 @@ class PianoRoll; class DrumCanvas : public EventCanvas { Q_OBJECT + bool old_style_drummap_mode; + DrumMap* ourDrumMap; + bool must_delete_our_drum_map; //FINDMICH really delete it! + QVector instrument_map; + StepRec* steprec; // Cursor tool position @@ -88,6 +116,13 @@ class DrumCanvas : public EventCanvas { virtual void resizeEvent(QResizeEvent*); virtual void curPartChanged(); int getNextStep(unsigned int pos, int basicStep, int stepSize=1); + + /* FINDMICH OBSOLETE + int parts_first_instrument(Part* p); + int tracks_first_instrument(Track* t); + bool is_track_of_instrument(Track* t, int instr); + QSet tracks_of_instrument(int instr); + */ signals: void newWidth(int); @@ -119,7 +154,8 @@ class DrumCanvas : public EventCanvas { virtual void keyPress(QKeyEvent* event); Event *getEventAtCursorPos(); void selectCursorEvent(Event *ev); - + int drum_map_size() { return instrument_map.size(); } + int pitch_and_track_to_instrument(int pitch, Track* track); }; #endif -- cgit v1.2.3