#include "tonleiterdata.h" using namespace Data; /* OPIE */ #include #include using namespace Opie::Core; TonleiterData::TonleiterData(QObject* parent) :QObject(parent) { drawnames=true; loadData(); } //**************************************************************************** TonleiterData::~TonleiterData() { saveData(); } //**************************************************************************** void TonleiterData::setCurrentInstrumetID(int id) { if(id>=0 && id=0 && id=0 && id<12) { currentNote=id; emit dataChange(); } } //**************************************************************************** void TonleiterData::setDrawNames(bool dn) { drawnames=dn; emit dataChange(); } //**************************************************************************** void TonleiterData::loadData() { Config load("Tonleiter"); if(!load.isValid()) { //write some default values load.setGroup("General"); load.writeEntry("currentInstrumentID",1); load.writeEntry("currentNote",3); load.writeEntry("currentScaleID",0); load.writeEntry("drawnames",1); load.setGroup("Instrument"); load.writeEntry("Inst0","Thumb6;26;14;19;24;29;34;39;"); load.writeEntry("Inst1","Bass 4;12;19;24;29;34;"); load.writeEntry("noOfInstruments",2); load.setGroup("Scale"); load.writeEntry("Scale0","ionian;0;2;4;5;7;9;11;"); load.writeEntry("Scale1","aeolian;0;2;3;5;7;8;10;"); load.writeEntry("Scale2","dorian;0;2;3;5;7;9;10;"); load.writeEntry("Scale3","phrygian;0;1;3;5;7;8;10;"); load.writeEntry("Scale4","lydian;0;2;4;6;7;9;11;"); load.writeEntry("Scale5","mixolydian;0;2;4;5;7;9;10;"); load.writeEntry("noOfScales",6); } load.setGroup("General"); currentNote=load.readNumEntry("currentNote"); drawnames=load.readBoolEntry("drawnames"); currentInstrumentID=load.readNumEntry("currentInstrumentID"); currentScaleID=load.readNumEntry("currentScaleID"); load.setGroup("Instrument"); int noOfInstr=load.readNumEntry("noOfInstruments",0); for(int i=0;i strings; for(int st=2;st<(int)instlist.count();st++) strings.append(instlist[st].toInt()); instruments.append(Instrument(instlist[0],instlist[1].toInt(),strings)); } load.setGroup("Scale"); int scaleno=load.readNumEntry("noOfScales",0); for(int s=0;s halftones; for(int ht=1;ht<(int)scalelist.count();ht++) halftones.append(scalelist[ht].toInt()); scales.append(Scale(scalelist[0],halftones)); } } //**************************************************************************** void TonleiterData::saveData() { Config save("Tonleiter"); save.setGroup("General"); save.writeEntry("currentNote",currentNote); save.writeEntry("drawnames",drawnames); save.writeEntry("currentInstrumentID",currentInstrumentID); save.writeEntry("currentScaleID",currentScaleID); save.setGroup("Instrument"); save.writeEntry("noOfInstruments",noOfInstruments()); for(int i=0;i=0 && id=0 && id