summaryrefslogtreecommitdiff
path: root/muse2/muse/arranger/tlist.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'muse2/muse/arranger/tlist.cpp')
-rw-r--r--muse2/muse/arranger/tlist.cpp24
1 files changed, 18 insertions, 6 deletions
diff --git a/muse2/muse/arranger/tlist.cpp b/muse2/muse/arranger/tlist.cpp
index 98c4a595..be33808e 100644
--- a/muse2/muse/arranger/tlist.cpp
+++ b/muse2/muse/arranger/tlist.cpp
@@ -226,6 +226,9 @@ void TList::paint(const QRect& r)
case MusECore::Track::DRUM:
bg = MusEGlobal::config.drumTrackBg;
break;
+ case MusECore::Track::NEW_DRUM:
+ bg = MusEGlobal::config.newDrumTrackBg;
+ break;
case MusECore::Track::WAVE:
bg = MusEGlobal::config.waveTrackBg;
break;
@@ -281,6 +284,7 @@ void TList::paint(const QRect& r)
case MusECore::Track::MIDI:
pm = addtrack_addmiditrackIcon;
break;
+ case MusECore::Track::NEW_DRUM:
case MusECore::Track::DRUM:
pm = addtrack_drumtrackIcon;
break;
@@ -585,6 +589,7 @@ void TList::portsPopupMenu(MusECore::Track* t, int x, int y)
switch(t->type()) {
case MusECore::Track::MIDI:
case MusECore::Track::DRUM:
+ case MusECore::Track::NEW_DRUM:
case MusECore::Track::AUDIO_SOFTSYNTH:
{
MusECore::MidiTrack* track = (MusECore::MidiTrack*)t;
@@ -739,7 +744,7 @@ void TList::oportPropertyPopupMenu(MusECore::Track* t, int x, int y)
}
- if (t->type() != MusECore::Track::MIDI && t->type() != MusECore::Track::DRUM)
+ if (t->type() != MusECore::Track::MIDI && t->type() != MusECore::Track::DRUM && t->type() != MusECore::Track::NEW_DRUM)
return;
int oPort = ((MusECore::MidiTrack*)t)->outPort();
MusECore::MidiPort* port = &MusEGlobal::midiPorts[oPort];
@@ -923,7 +928,7 @@ MusECore::TrackList TList::getRecEnabledTracks()
void TList::changeAutomation(QAction* act)
{
//printf("changeAutomation %d\n", act->data().toInt());
- if (editAutomation->type() == MusECore::Track::MIDI) {
+ if ( (editAutomation->type() == MusECore::Track::MIDI) || (editAutomation->type() == MusECore::Track::DRUM) || (editAutomation->type() == MusECore::Track::NEW_DRUM) ) {
printf("this is wrong, we can't edit automation for midi tracks from arranger yet!\n");
return;
}
@@ -949,7 +954,7 @@ void TList::changeAutomation(QAction* act)
//---------------------------------------------------------
void TList::changeAutomationColor(QAction* act)
{
- if (editAutomation->type() == MusECore::Track::MIDI) {
+ if ( (editAutomation->type() == MusECore::Track::MIDI) || (editAutomation->type() == MusECore::Track::DRUM) || (editAutomation->type() == MusECore::Track::NEW_DRUM) ) {
printf("this is wrong, we can't edit automation for midi tracks from arranger yet!\n");
return;
}
@@ -1707,13 +1712,14 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
p.clear();
p.addAction(QIcon(*addtrack_addmiditrackIcon), tr("Midi"))->setData(MusECore::Track::MIDI);
p.addAction(QIcon(*addtrack_drumtrackIcon), tr("Drum"))->setData(MusECore::Track::DRUM);
+ p.addAction(QIcon(*addtrack_drumtrackIcon), tr("New style drum"))->setData(MusECore::Track::NEW_DRUM);
QAction* act = p.exec(mapToGlobal(QPoint(x, y)), 0);
if (!act)
return;
int n = act->data().toInt();
- if (MusECore::Track::TrackType(n) == MusECore::Track::MIDI && t->type() == MusECore::Track::DRUM) {
+ if ((MusECore::Track::TrackType(n) == MusECore::Track::MIDI || MusECore::Track::TrackType(n) == MusECore::Track::NEW_DRUM) && t->type() == MusECore::Track::DRUM) { //FINDMICHJETZT passt das?
//
// Drum -> Midi
//
@@ -1747,11 +1753,11 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
}
}
- t->setType(MusECore::Track::MIDI);
+ t->setType(MusECore::Track::TrackType(n));
MusEGlobal::audio->msgIdle(false);
MusEGlobal::song->update(SC_EVENT_MODIFIED);
}
- else if (MusECore::Track::TrackType(n) == MusECore::Track::DRUM && t->type() == MusECore::Track::MIDI) {
+ else if (MusECore::Track::TrackType(n) == MusECore::Track::DRUM && (t->type() == MusECore::Track::MIDI || t->type() == MusECore::Track::NEW_DRUM)) { //FINDMICHJETZT passt das?
//
// Midi -> Drum
//
@@ -1809,6 +1815,12 @@ void TList::classesPopupMenu(MusECore::Track* t, int x, int y)
MusEGlobal::audio->msgIdle(false);
MusEGlobal::song->update(SC_EVENT_MODIFIED);
}
+ else // MIDI -> NEW_DRUM or vice versa. added by flo. FINDMICHJETZT does this work properly?
+ {
+ MusECore::Track* t2 = t->clone(false);
+ t->setType(MusECore::Track::TrackType(n));
+ MusEGlobal::audio->msgChangeTrack(t2, t, true);
+ }
}
} // namespace MusEGui