void MidiDevice::addProgram(const MidiProgram &prog) { // Refuse duplicates for (ProgramList::const_iterator it = m_programList.begin(); it != m_programList.end(); ++it) { if (it->partialCompare(prog)) return; } m_programList.push_back(prog); }
std::string MidiDevice::getProgramName(const MidiProgram &program) const { ProgramList::const_iterator it; for (it = m_programList.begin(); it != m_programList.end(); ++it) { if (it->partialCompare(program)) return it->getName(); } return std::string(""); }
const MidiKeyMapping * MidiDevice::getKeyMappingForProgram(const MidiProgram &program) const { ProgramList::const_iterator it; for (it = m_programList.begin(); it != m_programList.end(); ++it) { if (it->partialCompare(program)) { std::string kmn = it->getKeyMapping(); if (kmn == "") return 0; return getKeyMappingByName(kmn); } } return 0; }
void MidiDevice::mergeProgramList(const ProgramList &programList) { ProgramList::const_iterator it; ProgramList::iterator oIt; bool clash = false; for (it = programList.begin(); it != programList.end(); ++it) { for (oIt = m_programList.begin(); oIt != m_programList.end(); ++oIt) { if (it->partialCompare(*oIt)) { clash = true; break; } } if (clash == false) addProgram(*it); else clash = false; } }