summaryrefslogtreecommitdiff
path: root/muse2/muse/midiedit/dcanvas.h
diff options
context:
space:
mode:
authorFlorian Jung <flo@windfisch.org>2011-09-28 15:34:53 +0000
committerFlorian Jung <flo@windfisch.org>2011-09-28 15:34:53 +0000
commit56417f8e86e19d459a86f31a41a494f4a9e813a1 (patch)
tree9b74a449bbb4928587ccab6c56eb8c37d119cbca /muse2/muse/midiedit/dcanvas.h
parente9e38901f1b0c8b0d4c11f6de37abf7ff6c7234f (diff)
first changes for "new-style-drumtracks"
almost certainly buggy, incomplete etc.
Diffstat (limited to 'muse2/muse/midiedit/dcanvas.h')
-rw-r--r--muse2/muse/midiedit/dcanvas.h40
1 files changed, 38 insertions, 2 deletions
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 <map>
+#include <QList>
+#include <QSet>
#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<Track*> tracks;
+ int pitch;
+
+ instrument_number_mapping_t()
+ {
+ pitch=-1;
+ tracks.clear();
+ }
+
+ instrument_number_mapping_t(const QSet<Track*>& 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_number_mapping_t> 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<Track*> 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