summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/multimedia/tonleiter/tonleiterdata.cpp64
1 files changed, 64 insertions, 0 deletions
diff --git a/noncore/multimedia/tonleiter/tonleiterdata.cpp b/noncore/multimedia/tonleiter/tonleiterdata.cpp
index 8a9fdca..e1ecb5a 100644
--- a/noncore/multimedia/tonleiter/tonleiterdata.cpp
+++ b/noncore/multimedia/tonleiter/tonleiterdata.cpp
@@ -1,142 +1,206 @@
1#include "tonleiterdata.h" 1#include "tonleiterdata.h"
2 2
3#include <qpe/config.h>
4
3TonleiterData::TonleiterData(QObject* parent) 5TonleiterData::TonleiterData(QObject* parent)
4:QObject(parent) 6:QObject(parent)
5{ 7{
6 drawnames=true; 8 drawnames=true;
7 loadData(); 9 loadData();
8} 10}
9//**************************************************************************** 11//****************************************************************************
10TonleiterData::~TonleiterData() 12TonleiterData::~TonleiterData()
11{ 13{
12 saveData(); 14 saveData();
13} 15}
14//**************************************************************************** 16//****************************************************************************
15void TonleiterData::setCurrentInstrumetID(int id) 17void TonleiterData::setCurrentInstrumetID(int id)
16{ 18{
17 if(id>=0 && id<noOfInstruments()) 19 if(id>=0 && id<noOfInstruments())
18 { 20 {
19 currentInstrumentID=id; 21 currentInstrumentID=id;
20 emit dataChange(); 22 emit dataChange();
21 } 23 }
22} 24}
23//**************************************************************************** 25//****************************************************************************
24void TonleiterData::setCurrentScaleID(int id) 26void TonleiterData::setCurrentScaleID(int id)
25{ 27{
26 if(id>=0 && id<noOfScales()) 28 if(id>=0 && id<noOfScales())
27 { 29 {
28 currentScaleID=id; 30 currentScaleID=id;
29 emit dataChange(); 31 emit dataChange();
30 } 32 }
31} 33}
32//**************************************************************************** 34//****************************************************************************
33void TonleiterData::setCurrentNote(int id) 35void TonleiterData::setCurrentNote(int id)
34{ 36{
35 if(id>=0 && id<12) 37 if(id>=0 && id<12)
36 { 38 {
37 currentNote=id; 39 currentNote=id;
38 emit dataChange(); 40 emit dataChange();
39 } 41 }
40} 42}
41//**************************************************************************** 43//****************************************************************************
42void TonleiterData::setDrawNames(bool dn) 44void TonleiterData::setDrawNames(bool dn)
43{ 45{
44 drawnames=dn; 46 drawnames=dn;
45 emit dataChange(); 47 emit dataChange();
46} 48}
47//**************************************************************************** 49//****************************************************************************
48void TonleiterData::loadData() 50void TonleiterData::loadData()
49{ 51{
52/*
50 QValueList<int> strings1; 53 QValueList<int> strings1;
51 strings1.append(Note::getNoteFromName("B",0)); 54 strings1.append(Note::getNoteFromName("B",0));
52 strings1.append(Note::getNoteFromName("E",1)); 55 strings1.append(Note::getNoteFromName("E",1));
53 strings1.append(Note::getNoteFromName("A",1)); 56 strings1.append(Note::getNoteFromName("A",1));
54 strings1.append(Note::getNoteFromName("D",2)); 57 strings1.append(Note::getNoteFromName("D",2));
55 strings1.append(Note::getNoteFromName("G",2)); 58 strings1.append(Note::getNoteFromName("G",2));
56 strings1.append(Note::getNoteFromName("C",3)); 59 strings1.append(Note::getNoteFromName("C",3));
57 instruments.append(Instrument("Thumb6",26,strings1)); 60 instruments.append(Instrument("Thumb6",26,strings1));
58 61
59 QValueList<int> strings2; 62 QValueList<int> strings2;
60 strings2.append(Note::getNoteFromName("E",1)); 63 strings2.append(Note::getNoteFromName("E",1));
61 strings2.append(Note::getNoteFromName("A",1)); 64 strings2.append(Note::getNoteFromName("A",1));
62 strings2.append(Note::getNoteFromName("D",2)); 65 strings2.append(Note::getNoteFromName("D",2));
63 strings2.append(Note::getNoteFromName("G",2)); 66 strings2.append(Note::getNoteFromName("G",2));
64 instruments.append(Instrument("Bass 4",12,strings2)); 67 instruments.append(Instrument("Bass 4",12,strings2));
65 68
66 currentInstrumentID=1; 69 currentInstrumentID=1;
67 70
68 QValueList<int> scale1; 71 QValueList<int> scale1;
69 scale1.append(0); 72 scale1.append(0);
70 scale1.append(2); 73 scale1.append(2);
71 scale1.append(3); 74 scale1.append(3);
72 scale1.append(5); 75 scale1.append(5);
73 scale1.append(7); 76 scale1.append(7);
74 scale1.append(8); 77 scale1.append(8);
75 scale1.append(10); 78 scale1.append(10);
76 scales.append(Scale("Minor",scale1)); 79 scales.append(Scale("Minor",scale1));
77 80
78 QValueList<int> scale2; 81 QValueList<int> scale2;
79 scale2.append(0); 82 scale2.append(0);
80 scale2.append(2); 83 scale2.append(2);
81 scale2.append(4); 84 scale2.append(4);
82 scale2.append(5); 85 scale2.append(5);
83 scale2.append(7); 86 scale2.append(7);
84 scale2.append(9); 87 scale2.append(9);
85 scale2.append(10); 88 scale2.append(10);
86 scales.append(Scale("Major",scale2)); 89 scales.append(Scale("Major",scale2));
87 90
88 currentScaleID=0; 91 currentScaleID=0;
89 92
90 currentNote=Note::getNoteFromName("A",0); 93 currentNote=Note::getNoteFromName("A",0);
94*/
95 Config load("Tonleiter");
96 load.setGroup("General");
97 currentNote=load.readNumEntry("currentNote");
98 drawnames=load.readBoolEntry("drawnames");
99 currentInstrumentID=load.readNumEntry("currentInstrumentID");
100 currentScaleID=load.readNumEntry("currentScaleID");
101
102 load.setGroup("Instrument");
103 int noOfInstr=load.readNumEntry("noOfInstruments",0);
104 for(int i=0;i<noOfInstr;i++)
105 {
106 QStringList instlist=load.readListEntry("Inst"+QString::number(i),';');
107 QValueList<int> strings;
108 for(int st=2;st<(int)instlist.count();st++)
109 strings.append(instlist[st].toInt());
110 instruments.append(Instrument(instlist[0],instlist[1].toInt(),strings));
111 }
112
113 load.setGroup("Scale");
114 int scaleno=load.readNumEntry("noOfScales",0);
115 for(int s=0;s<scaleno;s++)
116 {
117 QStringList scalelist=load.readListEntry("Scale"+QString::number(s),';');
118 QValueList<int> halftones;
119 for(int ht=1;ht<(int)scalelist.count();ht++)
120 halftones.append(scalelist[ht].toInt());
121 scales.append(Scale(scalelist[0],halftones));
122 }
123
91} 124}
92//**************************************************************************** 125//****************************************************************************
93void TonleiterData::saveData() 126void TonleiterData::saveData()
94{ 127{
128 Config save("Tonleiter");
129 save.setGroup("General");
130 save.writeEntry("currentNote",currentNote);
131 save.writeEntry("drawnames",drawnames);
132 save.writeEntry("currentInstrumentID",currentInstrumentID);
133 save.writeEntry("currentScaleID",currentScaleID);
134
135 save.setGroup("Instrument");
136 save.writeEntry("noOfInstruments",noOfInstruments());
137 for(int i=0;i<noOfInstruments();i++)
138 {
139 QStringList instlist;
140 Instrument inst=getInstrument(i);
141 instlist.append(inst.instName());
142 instlist.append(QString::number(inst.noOfFrets()));
143 for(int st=0;st<inst.noOfStrings();st++)
144 instlist.append(QString::number(inst.string(st)));
145 save.writeEntry("Inst"+QString::number(i),instlist,';');
146 }
147
148 save.setGroup("Scale");
149 save.writeEntry("noOfScales",noOfScales());
150 for(int s=0;s<noOfScales();s++)
151 {
152 QStringList scalelist;
153 Scale scale=getScale(s);
154 scalelist.append(scale.scaleName());
155 for(int ht=0;ht<scale.noOfHaltones();ht++)
156 scalelist.append(QString::number(scale.getHalfTone(ht)));
157 save.writeEntry("Scale"+QString::number(s),scalelist,';');
158 }
95} 159}
96//**************************************************************************** 160//****************************************************************************
97int TonleiterData::noOfInstruments() 161int TonleiterData::noOfInstruments()
98{ 162{
99 return (int)instruments.count(); 163 return (int)instruments.count();
100} 164}
101//**************************************************************************** 165//****************************************************************************
102Instrument TonleiterData::getInstrument(int id) 166Instrument TonleiterData::getInstrument(int id)
103{ 167{
104 if(id>=0 && id<noOfInstruments()) 168 if(id>=0 && id<noOfInstruments())
105 return instruments[id]; 169 return instruments[id];
106 else 170 else
107 { 171 {
108 qDebug("undefined insrtument %d of %d",id,instruments.count()); 172 qDebug("undefined insrtument %d of %d",id,instruments.count());
109 return Instrument(); 173 return Instrument();
110 } 174 }
111 175
112} 176}
113//**************************************************************************** 177//****************************************************************************
114int TonleiterData::getCurrentInstrumentID() 178int TonleiterData::getCurrentInstrumentID()
115{ 179{
116 return currentInstrumentID; 180 return currentInstrumentID;
117} 181}
118//**************************************************************************** 182//****************************************************************************
119int TonleiterData::noOfScales() 183int TonleiterData::noOfScales()
120{ 184{
121 return (int)scales.count(); 185 return (int)scales.count();
122} 186}
123//**************************************************************************** 187//****************************************************************************
124Scale TonleiterData::getScale(int id) 188Scale TonleiterData::getScale(int id)
125{ 189{
126 if(id>=0 && id<noOfScales()) 190 if(id>=0 && id<noOfScales())
127 return scales[id]; 191 return scales[id];
128 else 192 else
129 { 193 {
130 qDebug("Undefined scale"); 194 qDebug("Undefined scale");
131 return Scale(); 195 return Scale();
132 } 196 }
133} 197}
134//**************************************************************************** 198//****************************************************************************
135int TonleiterData::getCurrentScaleID() 199int TonleiterData::getCurrentScaleID()
136{ 200{
137 return currentScaleID; 201 return currentScaleID;
138} 202}
139//**************************************************************************** 203//****************************************************************************
140int TonleiterData::getCurrentBaseNote() 204int TonleiterData::getCurrentBaseNote()
141{ 205{
142 return currentNote; 206 return currentNote;