// // performanceconfig.h // // MiniDexed - Dexed FM synthesizer for bare metal Raspberry Pi // Copyright (C) 2022 The MiniDexed Team // // Original author of this class: // R. Stange // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // #ifndef _performanceconfig_h #define _performanceconfig_h #include "config.h" #include #include class CPerformanceConfig // Performance configuration { public: CPerformanceConfig (FATFS *pFileSystem); ~CPerformanceConfig (void); bool Load (void); // TG# unsigned GetBankNumber (unsigned nTG) const; // 0 .. 127 unsigned GetVoiceNumber (unsigned nTG) const; // 0 .. 31 unsigned GetMIDIChannel (unsigned nTG) const; // 0 .. 15, omni, off unsigned GetVolume (unsigned nTG) const; // 0 .. 127 unsigned GetPan (unsigned nTG) const; // 0 .. 127 int GetDetune (unsigned nTG) const; // -99 .. 99 unsigned GetNoteLimitLow (unsigned nTG) const; // 0 .. 127 unsigned GetNoteLimitHigh (unsigned nTG) const; // 0 .. 127 int GetNoteShift (unsigned nTG) const; // -24 .. 24 private: CPropertiesFatFsFile m_Properties; unsigned m_nBankNumber[CConfig::ToneGenerators]; unsigned m_nVoiceNumber[CConfig::ToneGenerators]; unsigned m_nMIDIChannel[CConfig::ToneGenerators]; unsigned m_nVolume[CConfig::ToneGenerators]; unsigned m_nPan[CConfig::ToneGenerators]; int m_nDetune[CConfig::ToneGenerators]; unsigned m_nNoteLimitLow[CConfig::ToneGenerators]; unsigned m_nNoteLimitHigh[CConfig::ToneGenerators]; int m_nNoteShift[CConfig::ToneGenerators]; }; #endif