Exemplo n.º 1
0
        void PARSER_MidiDataList(MidiMsgType t, int track, int offset, int imsg, byte bmsg, ulong ppq, int rse, bool isrse)
        {
            switch (t)
            {
            case MidiMsgType.MetaStr:
                midiDataList.AddV(SelectedTrackNumber, new MidiMetaMessage(MidiMsgType.MetaStr, ppq, imsg, GetMetaBString(offset)));
                break;

            case MidiMsgType.MetaInf:
                midiDataList.AddV(SelectedTrackNumber, new MidiMetaMessage(ppq, imsg, GetMetaData(offset)));
                break;

            case MidiMsgType.System:
            case MidiMsgType.SysCommon:
//					MetaHelpers.MetaNameFF( imsg )
                if (imsg == 0xFF7F)
                {
//					{
//						Debug.Print("rse? {0} -----------sys---------------\n{1}",isrse ? 0 :1, SmfStringFormatter.byteToString(GetEventValue(offset)));
                    midiDataList.AddV(SelectedTrackNumber, new MidiSysexMessage(ppq, imsg, GetMetaValue(offset)));
                }
//					}
                else if (imsg == 0xF0)
                {
                    Debug.Print("0xF0 {0} {1}", isrse, GetEventValue(offset).StringifyHex());
                    midiDataList.AddV(SelectedTrackNumber, new MidiSysexMessage(ppq, imsg, GetEventValue(offset)));
                }
                break;

            default:
                if (isrse)
                {
                    MidiDataList.AddV(SelectedTrackNumber, new MidiChannelMessage(ppq, rse, GetRseEventValue(offset)));
                }
                else
                {
                    MidiDataList.AddV(SelectedTrackNumber, new MidiChannelMessage(ppq, rse, GetEventValue(offset)));
                }
                break;
            }
        }