diff options
author | terminator356 <termtech@rogers.com> | 2014-01-10 21:16:26 -0500 |
---|---|---|
committer | terminator356 <termtech@rogers.com> | 2014-01-10 21:16:26 -0500 |
commit | 0da82e59960c237955e14fa45965ae60b1d181b8 (patch) | |
tree | 3c65741b7b5c82d73d01a3cbee7ce480d1ab1956 /muse2/muse/liste/listedit.cpp | |
parent | 59402f5bcb3804eaa7a2027f2677364c7cca544c (diff) |
Added Initialization Sequence editor. Roland SD-50 idf. Modify sysex editor...
Diffstat (limited to 'muse2/muse/liste/listedit.cpp')
-rw-r--r-- | muse2/muse/liste/listedit.cpp | 109 |
1 files changed, 69 insertions, 40 deletions
diff --git a/muse2/muse/liste/listedit.cpp b/muse2/muse/liste/listedit.cpp index 730ab5d8..79f10b4b 100644 --- a/muse2/muse/liste/listedit.cpp +++ b/muse2/muse/liste/listedit.cpp @@ -45,6 +45,7 @@ #include "event.h" #include "midiport.h" #include "midictrl.h" +#include "minstrument.h" #include "app.h" #include "gconfig.h" @@ -201,7 +202,8 @@ void ListEdit::songChanged(MusECore::SongChangedFlags_t type) if (type == 0) return; - if (type & (SC_PART_REMOVED | SC_PART_MODIFIED + if (type & (// SC_MIDI_TRACK_PROP FIXME Needed, but might make it slow! + SC_PART_REMOVED | SC_PART_MODIFIED | SC_PART_INSERTED | SC_EVENT_REMOVED | SC_EVENT_MODIFIED | SC_EVENT_INSERTED | SC_SELECTION)) { if (type & (SC_PART_REMOVED | SC_PART_INSERTED | SC_PART_MODIFIED)) @@ -285,7 +287,6 @@ void ListEdit::songChanged(MusECore::SongChangedFlags_t type) QString EventListItem::text(int col) const { QString s; - QString commentLabel; switch(col) { case 0: s.setNum(event.tick()); @@ -324,30 +325,9 @@ QString EventListItem::text(int col) const } break; case MusECore::Sysex: - { - commentLabel = QString("len "); - QString k; - k.setNum(event.dataLen()); - commentLabel += k; - commentLabel += QString(" "); - - commentLabel += MusECore::nameSysex(event.dataLen(), event.data()); - int i; - for (i = 0; i < 10; ++i) { - if (i >= event.dataLen()) - break; - commentLabel += QString(" 0x"); - QString k; - k.setNum(event.data()[i] & 0xff, 16); - commentLabel += k; - } - if (i == 10) - commentLabel += QString("..."); - } s = QString("SysEx"); break; case MusECore::Meta: - commentLabel = midiMetaComment(event); s = QString("Meta"); break; case MusECore::Wave: @@ -357,7 +337,14 @@ QString EventListItem::text(int col) const } break; case 3: - s.setNum(part->track()->outChannel() + 1); + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(part->track()->outChannel() + 1); + } break; case 4: if (event.isNote()) @@ -365,7 +352,16 @@ QString EventListItem::text(int col) const else if (event.type() == MusECore::Controller) s.setNum(event.dataA() & 0xffff); // mask off type bits else - s.setNum(event.dataA()); + { + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(event.dataA()); + } + } break; case 5: if(event.type() == MusECore::Controller && @@ -384,13 +380,41 @@ QString EventListItem::text(int col) const s.sprintf("%d-%d-%d", hb, lb, pr); } else - s.setNum(event.dataB()); + { + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(event.dataB()); + } + } break; case 6: - s.setNum(event.dataC()); + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + break; + + default: + s.setNum(event.dataC()); + } break; case 7: - s.setNum(event.lenTick()); + switch(event.type()) { + case MusECore::Sysex: + case MusECore::Meta: + s.setNum(event.dataLen()); + break; + + case MusECore::Controller: + break; + + default: + s.setNum(event.lenTick()); + break; + } break; case 8: switch(event.type()) { @@ -402,14 +426,13 @@ QString EventListItem::text(int col) const } break; case MusECore::Sysex: + case MusECore::Meta: { - s = QString("len "); - QString k; - k.setNum(event.dataLen()); - s += k; - s += QString(" "); - - commentLabel += MusECore::nameSysex(event.dataLen(), event.data()); + if(event.type() == MusECore::Sysex) + s = MusECore::nameSysex(event.dataLen(), event.data(), + MusEGlobal::midiPorts[part->track()->outPort()].instrument()) + QString(" "); + else if(event.type() == MusECore::Meta) + s = midiMetaComment(event) + QString(" "); int i; for (i = 0; i < 10; ++i) { if (i >= event.dataLen()) @@ -421,11 +444,9 @@ QString EventListItem::text(int col) const } if (i == 10) s += QString("..."); + } break; - case MusECore::Meta: - s = midiMetaComment(event); - break; default: break; } @@ -623,7 +644,10 @@ void ListEdit::editInsertSysEx() if(!curPart) return; - MusECore::Event event = EditSysexDialog::getEvent(curPart->tick(), MusECore::Event(), this); + MusECore::MidiInstrument* minstr = NULL; + if(curPart->track()) + minstr = MusEGlobal::midiPorts[curPart->track()->outPort()].instrument(); + MusECore::Event event = EditSysexDialog::getEvent(curPart->tick(), MusECore::Event(), this, minstr); if (!event.empty()) { //No events before beginning of part + take Part offset into consideration unsigned tick = event.tick(); @@ -699,7 +723,12 @@ void ListEdit::editEvent(MusECore::Event& event, MusECore::MidiPart* part) nevent = EditCtrlDialog::getEvent(tick, event, part, this); break; case MusECore::Sysex: - nevent = EditSysexDialog::getEvent(tick, event, this); + { + MusECore::MidiInstrument* minstr = NULL; + if(part->track()) + minstr = MusEGlobal::midiPorts[part->track()->outPort()].instrument(); + nevent = EditSysexDialog::getEvent(tick, event, this, minstr); + } break; case MusECore::Meta: nevent = EditMetaDialog::getEvent(tick, event, this); |