ProgramList MidiDevice::getPrograms0thVariation(bool percussion, const MidiBank &bank) const { // If we aren't in variations mode, just use getPrograms(). if (m_variationType == NoVariations) return getPrograms(bank); // Get the variation bank list for this bank BankList bankList; if (m_variationType == VariationFromMSB) { bankList = getBanksByLSB(percussion, bank.getLSB()); } else { bankList = getBanksByMSB(percussion, bank.getMSB()); } if (!bankList.empty()) { MidiBank firstBank = bankList.front(); return getPrograms(firstBank); } return ProgramList(); }
int main() { int programsCount, i; FILE *fp = fopen(FileName, "r"); getProgramsCount(fp, &programsCount); program *programs = (program*)malloc(programsCount * sizeof(program)); getPrograms(fp, &programs, programsCount); runPrograms(programs, programsCount); for (i = 0; i < programsCount; i++) { free(programs[i].args); free(programs[i].line); } free(programs); fclose(fp); return 0; }