#include #include #include #include #include #include #include bool MIDIHelper::getTrackInfo(const String &strPathMIDIFileName,TrackInfos &trackInfos) { MidiData midiData(strPathMIDIFileName); midiData.getTrackInfo(trackInfos); return trackInfos.size()?true:false; } bool MIDIHelper::import(const String &strPathMidiFileName,const String &strPathTabFileName,int selectedTrack) { TabEntry entry; Tablature tablature; TabEntries tabEntries; WORD currPlayTime; WORD prevPlayTime; int eventCount; bool resultCode; bool haveTrack; Block notes; TrackInfos trackInfos; resultCode=false; haveTrack=false; if(strPathMidiFileName.isNull())return resultCode; mMessages.remove(); MidiData midiData(strPathMidiFileName); midiData.getTrackInfo(trackInfos); if(!trackInfos.size())return false; for(int trIndex=0;trIndex &strPathTabFileNames) { String strPathTabFileName; WORD currPlayTime; WORD prevPlayTime; int currentTrack; int eventCount; Block tracks; Block notes; TrackInfos trackInfos; if(strPathMidiFileName.isNull())return false; strPathTabFileNames.remove(); mMessages.remove(); MidiData midiData(strPathMidiFileName); midiData.makeRealTime(); midiData.getTrackInfo(trackInfos); if(!trackInfos.size())return false; if(!tracks.size())return false; for(int trIndex=0;trIndex ¬es,TabEntry &entry) { NotePaths notePaths; Requirements requirements; if(!notes.size())return false; if(!filterNotesOnFretboard(notes))return false; requirements.setRequirements(notes); notePaths.size(notes.size()); for(int pathIndex=0;pathIndex ¬es) { for(int noteIndex=0;noteIndex