summaryrefslogtreecommitdiffabout
path: root/gammu/emb
authorzautrix <zautrix>2004-08-30 20:17:00 (UTC)
committer zautrix <zautrix>2004-08-30 20:17:00 (UTC)
commit5f4867356dc4b34da20b66e9ede71e22899e4a4b (patch) (unidiff)
tree6d1f0b45349d36db9afbb83a4d590047a922a5fb /gammu/emb
parentc015c3061d8d5b81316b862fd927340d9909aabc (diff)
downloadkdepimpi-5f4867356dc4b34da20b66e9ede71e22899e4a4b.zip
kdepimpi-5f4867356dc4b34da20b66e9ede71e22899e4a4b.tar.gz
kdepimpi-5f4867356dc4b34da20b66e9ede71e22899e4a4b.tar.bz2
More pro file fixes
Diffstat (limited to 'gammu/emb') (more/less context) (ignore whitespace changes)
-rw-r--r--gammu/emb/common/common.pro2
-rw-r--r--gammu/emb/common/commonE.pro1
-rw-r--r--gammu/emb/common/service/gsmring.c3
-rw-r--r--gammu/emb/gammu/gammu.pro3
-rw-r--r--gammu/emb/gammu/gammuE.pro4
5 files changed, 8 insertions, 5 deletions
diff --git a/gammu/emb/common/common.pro b/gammu/emb/common/common.pro
index d27dbeb..9342cb7 100644
--- a/gammu/emb/common/common.pro
+++ b/gammu/emb/common/common.pro
@@ -1,186 +1,186 @@
1###################################################################### 1######################################################################
2# Automatically generated by qmake (1.07a) Fri Jul 30 22:13:34 2004 2# Automatically generated by qmake (1.07a) Fri Jul 30 22:13:34 2004
3###################################################################### 3######################################################################
4 4
5TEMPLATE = lib 5TEMPLATE = lib
6DEPENDPATH += device \ 6DEPENDPATH += device \
7 misc \ 7 misc \
8 phone \ 8 phone \
9 protocol \ 9 protocol \
10 service \ 10 service \
11 device/bluetoth \ 11 device/bluetoth \
12 device/irda \ 12 device/irda \
13 device/serial \ 13 device/serial \
14 misc/coding \ 14 misc/coding \
15 phone/alcatel \ 15 phone/alcatel \
16 phone/at \ 16 phone/at \
17 phone/nokia \ 17 phone/nokia \
18 phone/obex \ 18 phone/obex \
19 phone/symbian \ 19 phone/symbian \
20 protocol/alcatel \ 20 protocol/alcatel \
21 protocol/at \ 21 protocol/at \
22 protocol/nokia \ 22 protocol/nokia \
23 protocol/obex \ 23 protocol/obex \
24 protocol/symbian \ 24 protocol/symbian \
25 service/backup \ 25 service/backup \
26 service/sms \ 26 service/sms \
27 phone/nokia/dct3 \ 27 phone/nokia/dct3 \
28 phone/nokia/dct4 28 phone/nokia/dct4
29INCLUDEPATH += . \ 29INCLUDEPATH += . \
30 misc/coding \ 30 misc/coding \
31 misc \ 31 misc \
32 device \ 32 device \
33 phone/nokia/dct4 \ 33 phone/nokia/dct4 \
34 phone/nokia/dct3 \ 34 phone/nokia/dct3 \
35 phone/at \ 35 phone/at \
36 phone/alcatel \ 36 phone/alcatel \
37 phone/obex \ 37 phone/obex \
38 phone/symbian \ 38 phone/symbian \
39 protocol \ 39 protocol \
40 protocol/nokia \ 40 protocol/nokia \
41 protocol/at \ 41 protocol/at \
42 protocol/alcatel \ 42 protocol/alcatel \
43 protocol/obex \ 43 protocol/obex \
44 protocol/symbian \ 44 protocol/symbian \
45 device/serial \ 45 device/serial \
46 device/irda \ 46 device/irda \
47 device/bluetoth \ 47 device/bluetoth \
48 service \ 48 service \
49 service/sms \ 49 service/sms \
50 service/backup \ 50 service/backup \
51 phone/nokia \ 51 phone/nokia \
52 phone 52 phone
53 53
54# Input 54# Input
55HEADERS += config.h \ 55HEADERS += config.h \
56 gammu.h \ 56 gammu.h \
57 gsmcomon.h \ 57 gsmcomon.h \
58 gsmstate.h \ 58 gsmstate.h \
59 device/devfunc.h \ 59 device/devfunc.h \
60 misc/cfg.h \ 60 misc/cfg.h \
61 misc/misc.h \ 61 misc/misc.h \
62 phone/pfunc.h \ 62 phone/pfunc.h \
63 protocol/protocol.h \ 63 protocol/protocol.h \
64 service/gsmcal.h \ 64 service/gsmcal.h \
65 service/gsmcall.h \ 65 service/gsmcall.h \
66 service/gsmdata.h \ 66 service/gsmdata.h \
67 service/gsmlogo.h \ 67 service/gsmlogo.h \
68 service/gsmmisc.h \ 68 service/gsmmisc.h \
69 service/gsmnet.h \ 69 service/gsmnet.h \
70 service/gsmpbk.h \ 70 service/gsmpbk.h \
71 service/gsmprof.h \ 71 service/gsmprof.h \
72 service/gsmring.h \ 72 service/gsmring.h \
73 device/bluetoth/affix.h \ 73 device/bluetoth/affix.h \
74 device/bluetoth/blue_w32.h \ 74 device/bluetoth/blue_w32.h \
75 device/bluetoth/bluetoth.h \ 75 device/bluetoth/bluetoth.h \
76 device/bluetoth/bluez.h \ 76 device/bluetoth/bluez.h \
77 device/irda/irda.h \ 77 device/irda/irda.h \
78 device/irda/irda_unx.h \ 78 device/irda/irda_unx.h \
79 device/irda/irda_w32.h \ 79 device/irda/irda_w32.h \
80 device/serial/ser_djg.h \ 80 device/serial/ser_djg.h \
81 device/serial/ser_unx.h \ 81 device/serial/ser_unx.h \
82 device/serial/ser_w32.h \ 82 device/serial/ser_w32.h \
83 misc/coding/coding.h \ 83 misc/coding/coding.h \
84 misc/coding/md5.h \ 84 misc/coding/md5.h \
85 phone/alcatel/alcatel.h \ 85 phone/alcatel/alcatel.h \
86 phone/at/atgen.h \ 86 phone/at/atgen.h \
87 phone/nokia/ncommon.h \ 87 phone/nokia/ncommon.h \
88 phone/nokia/nfunc.h \ 88 phone/nokia/nfunc.h \
89 phone/nokia/nfuncold.h \ 89 phone/nokia/nfuncold.h \
90 phone/obex/obexgen.h \ 90 phone/obex/obexgen.h \
91 phone/symbian/mroutgen.h \ 91 phone/symbian/mroutgen.h \
92 protocol/alcatel/alcabus.h \ 92 protocol/alcatel/alcabus.h \
93 protocol/at/at.h \ 93 protocol/at/at.h \
94 protocol/nokia/fbus2.h \ 94 protocol/nokia/fbus2.h \
95 protocol/nokia/mbus2.h \ 95 protocol/nokia/mbus2.h \
96 protocol/nokia/phonet.h \ 96 protocol/nokia/phonet.h \
97 protocol/obex/obex.h \ 97 protocol/obex/obex.h \
98 protocol/symbian/mrouter.h \ 98 protocol/symbian/mrouter.h \
99 service/backup/backgen.h \ 99 service/backup/backgen.h \
100 service/backup/backics.h \ 100 service/backup/backics.h \
101 service/backup/backldif.h \ 101 service/backup/backldif.h \
102 service/backup/backlmb.h \ 102 service/backup/backlmb.h \
103 service/backup/backtext.h \ 103 service/backup/backtext.h \
104 service/backup/backvcf.h \ 104 service/backup/backvcf.h \
105 service/backup/backvcs.h \ 105 service/backup/backvcs.h \
106 service/backup/gsmback.h \ 106 service/backup/gsmback.h \
107 service/sms/gsmems.h \ 107 service/sms/gsmems.h \
108 service/sms/gsmmulti.h \ 108 service/sms/gsmmulti.h \
109 service/sms/gsmsms.h \ 109 service/sms/gsmsms.h \
110 phone/nokia/dct3/dct3comm.h \ 110 phone/nokia/dct3/dct3comm.h \
111 phone/nokia/dct3/dct3func.h \ 111 phone/nokia/dct3/dct3func.h \
112 phone/nokia/dct3/n6110.h \ 112 phone/nokia/dct3/n6110.h \
113 phone/nokia/dct3/n7110.h \ 113 phone/nokia/dct3/n7110.h \
114 phone/nokia/dct3/n9210.h \ 114 phone/nokia/dct3/n9210.h \
115 phone/nokia/dct4/dct4func.h \ 115 phone/nokia/dct4/dct4func.h \
116 phone/nokia/dct4/n3320.h \ 116 phone/nokia/dct4/n3320.h \
117 phone/nokia/dct4/n3650.h \ 117 phone/nokia/dct4/n3650.h \
118 phone/nokia/dct4/n6510.h 118 phone/nokia/dct4/n6510.h
119SOURCES +=gsmcomon.c \ 119SOURCES +=gsmcomon.c \
120gsmstate.c \ 120gsmstate.c \
121misc/misc.c \ 121misc/misc.c \
122misc/cfg.c \ 122misc/cfg.c \
123misc/coding/coding.c \ 123misc/coding/coding.c \
124misc/coding/md5.c \ 124misc/coding/md5.c \
125service/sms/gsmsms.c \ 125service/sms/gsmsms.c \
126service/sms/gsmems.c \ 126service/sms/gsmems.c \
127service/sms/gsmmulti.c \ 127service/sms/gsmmulti.c \
128service/gsmcal.c \ 128service/gsmcal.c \
129service/gsmdata.c \ 129service/gsmdata.c \
130service/gsmpbk.c \ 130service/gsmpbk.c \
131service/gsmring.c \ 131service/gsmring.c \
132service/gsmlogo.c \ 132service/gsmlogo.c \
133service/gsmmisc.c \ 133service/gsmmisc.c \
134service/gsmnet.c \ 134service/gsmnet.c \
135service/backup/gsmback.c \ 135service/backup/gsmback.c \
136service/backup/backldif.c \ 136service/backup/backldif.c \
137service/backup/backlmb.c \ 137service/backup/backlmb.c \
138service/backup/backtext.c \ 138service/backup/backtext.c \
139service/backup/backvcs.c \ 139service/backup/backvcs.c \
140service/backup/backvcf.c \ 140service/backup/backvcf.c \
141service/backup/backics.c \ 141service/backup/backics.c \
142device/bluetoth/affix.c \ 142device/bluetoth/affix.c \
143device/bluetoth/bluez.c \ 143device/bluetoth/bluez.c \
144device/bluetoth/blue_w32.c \ 144device/bluetoth/blue_w32.c \
145device/bluetoth/bluetoth.c \ 145device/bluetoth/bluetoth.c \
146device/serial/ser_djg.c \ 146device/serial/ser_djg.c \
147device/irda/irda.c \ 147device/irda/irda.c \
148device/devfunc.c \ 148device/devfunc.c \
149protocol/at/at.c \ 149protocol/at/at.c \
150protocol/alcatel/alcabus.c \ 150protocol/alcatel/alcabus.c \
151protocol/nokia/mbus2.c \ 151protocol/nokia/mbus2.c \
152protocol/nokia/fbus2.c \ 152protocol/nokia/fbus2.c \
153protocol/nokia/phonet.c \ 153protocol/nokia/phonet.c \
154protocol/obex/obex.c \ 154protocol/obex/obex.c \
155protocol/symbian/mrouter.c \ 155protocol/symbian/mrouter.c \
156phone/pfunc.c \ 156phone/pfunc.c \
157phone/at/atgen.c \ 157phone/at/atgen.c \
158phone/at/siemens.c \ 158phone/at/siemens.c \
159phone/at/sonyeric.c \ 159phone/at/sonyeric.c \
160phone/alcatel/alcatel.c \ 160phone/alcatel/alcatel.c \
161phone/nokia/dct3/n6110.c \ 161phone/nokia/dct3/n6110.c \
162phone/nokia/dct3/n7110.c \ 162phone/nokia/dct3/n7110.c \
163phone/nokia/dct3/n9210.c \ 163phone/nokia/dct3/n9210.c \
164phone/nokia/dct3/dct3func.c \ 164phone/nokia/dct3/dct3func.c \
165phone/nokia/dct4/n3320.c \ 165phone/nokia/dct4/n3320.c \
166phone/nokia/dct4/n3650.c \ 166phone/nokia/dct4/n3650.c \
167phone/nokia/dct4/n6510.c \ 167phone/nokia/dct4/n6510.c \
168phone/nokia/dct4/dct4func.c \ 168phone/nokia/dct4/dct4func.c \
169phone/nokia/nauto.c \ 169phone/nokia/nauto.c \
170phone/nokia/nfunc.c \ 170phone/nokia/nfunc.c \
171phone/nokia/nfuncold.c \ 171phone/nokia/nfuncold.c \
172phone/obex/obexgen.c \ 172phone/obex/obexgen.c \
173phone/symbian/mroutgen.c 173phone/symbian/mroutgen.c
174 174
175TARGET = microgammu 175TARGET = microgammu
176CONFIG += console 176CONFIG = warn_off release console
177DESTDIR = ../../../bin 177DESTDIR = ../../../bin
178OBJECTS_DIR = obj/unix 178OBJECTS_DIR = obj/unix
179MOC_DIR = moc/unix 179MOC_DIR = moc/unix
180 180
181unix: { 181unix: {
182SOURCES += device/serial/ser_unx.c 182SOURCES += device/serial/ser_unx.c
183} 183}
184win32:{ 184win32:{
185SOURCES += device/serial/ser_w32.c 185SOURCES += device/serial/ser_w32.c
186} 186}
diff --git a/gammu/emb/common/commonE.pro b/gammu/emb/common/commonE.pro
index 49fecc6..33c0224 100644
--- a/gammu/emb/common/commonE.pro
+++ b/gammu/emb/common/commonE.pro
@@ -1,179 +1,180 @@
1###################################################################### 1######################################################################
2# Automatically generated by qmake (1.07a) Fri Jul 30 22:13:34 2004 2# Automatically generated by qmake (1.07a) Fri Jul 30 22:13:34 2004
3###################################################################### 3######################################################################
4 4
5TEMPLATE = lib 5TEMPLATE = lib
6DEPENDPATH += device \ 6DEPENDPATH += device \
7 misc \ 7 misc \
8 phone \ 8 phone \
9 protocol \ 9 protocol \
10 service \ 10 service \
11 device/bluetoth \ 11 device/bluetoth \
12 device/irda \ 12 device/irda \
13 device/serial \ 13 device/serial \
14 misc/coding \ 14 misc/coding \
15 phone/alcatel \ 15 phone/alcatel \
16 phone/at \ 16 phone/at \
17 phone/nokia \ 17 phone/nokia \
18 phone/obex \ 18 phone/obex \
19 phone/symbian \ 19 phone/symbian \
20 protocol/alcatel \ 20 protocol/alcatel \
21 protocol/at \ 21 protocol/at \
22 protocol/nokia \ 22 protocol/nokia \
23 protocol/obex \ 23 protocol/obex \
24 protocol/symbian \ 24 protocol/symbian \
25 service/backup \ 25 service/backup \
26 service/sms \ 26 service/sms \
27 phone/nokia/dct3 \ 27 phone/nokia/dct3 \
28 phone/nokia/dct4 28 phone/nokia/dct4
29INCLUDEPATH += . \ 29INCLUDEPATH += . \
30 misc/coding \ 30 misc/coding \
31 misc \ 31 misc \
32 device \ 32 device \
33 phone/nokia/dct4 \ 33 phone/nokia/dct4 \
34 phone/nokia/dct3 \ 34 phone/nokia/dct3 \
35 phone/at \ 35 phone/at \
36 phone/alcatel \ 36 phone/alcatel \
37 phone/obex \ 37 phone/obex \
38 phone/symbian \ 38 phone/symbian \
39 protocol \ 39 protocol \
40 protocol/nokia \ 40 protocol/nokia \
41 protocol/at \ 41 protocol/at \
42 protocol/alcatel \ 42 protocol/alcatel \
43 protocol/obex \ 43 protocol/obex \
44 protocol/symbian \ 44 protocol/symbian \
45 device/serial \ 45 device/serial \
46 device/irda \ 46 device/irda \
47 device/bluetoth \ 47 device/bluetoth \
48 service \ 48 service \
49 service/sms \ 49 service/sms \
50 service/backup \ 50 service/backup \
51 phone/nokia \ 51 phone/nokia \
52 phone 52 phone
53 53
54# Input 54# Input
55HEADERS += config.h \ 55HEADERS += config.h \
56 gammu.h \ 56 gammu.h \
57 gsmcomon.h \ 57 gsmcomon.h \
58 gsmstate.h \ 58 gsmstate.h \
59 device/devfunc.h \ 59 device/devfunc.h \
60 misc/cfg.h \ 60 misc/cfg.h \
61 misc/misc.h \ 61 misc/misc.h \
62 phone/pfunc.h \ 62 phone/pfunc.h \
63 protocol/protocol.h \ 63 protocol/protocol.h \
64 service/gsmcal.h \ 64 service/gsmcal.h \
65 service/gsmcall.h \ 65 service/gsmcall.h \
66 service/gsmdata.h \ 66 service/gsmdata.h \
67 service/gsmlogo.h \ 67 service/gsmlogo.h \
68 service/gsmmisc.h \ 68 service/gsmmisc.h \
69 service/gsmnet.h \ 69 service/gsmnet.h \
70 service/gsmpbk.h \ 70 service/gsmpbk.h \
71 service/gsmprof.h \ 71 service/gsmprof.h \
72 service/gsmring.h \ 72 service/gsmring.h \
73 device/bluetoth/affix.h \ 73 device/bluetoth/affix.h \
74 device/bluetoth/blue_w32.h \ 74 device/bluetoth/blue_w32.h \
75 device/bluetoth/bluetoth.h \ 75 device/bluetoth/bluetoth.h \
76 device/bluetoth/bluez.h \ 76 device/bluetoth/bluez.h \
77 device/irda/irda.h \ 77 device/irda/irda.h \
78 device/irda/irda_unx.h \ 78 device/irda/irda_unx.h \
79 device/irda/irda_w32.h \ 79 device/irda/irda_w32.h \
80 device/serial/ser_djg.h \ 80 device/serial/ser_djg.h \
81 device/serial/ser_unx.h \ 81 device/serial/ser_unx.h \
82 device/serial/ser_w32.h \ 82 device/serial/ser_w32.h \
83 misc/coding/coding.h \ 83 misc/coding/coding.h \
84 misc/coding/md5.h \ 84 misc/coding/md5.h \
85 phone/alcatel/alcatel.h \ 85 phone/alcatel/alcatel.h \
86 phone/at/atgen.h \ 86 phone/at/atgen.h \
87 phone/nokia/ncommon.h \ 87 phone/nokia/ncommon.h \
88 phone/nokia/nfunc.h \ 88 phone/nokia/nfunc.h \
89 phone/nokia/nfuncold.h \ 89 phone/nokia/nfuncold.h \
90 phone/obex/obexgen.h \ 90 phone/obex/obexgen.h \
91 phone/symbian/mroutgen.h \ 91 phone/symbian/mroutgen.h \
92 protocol/alcatel/alcabus.h \ 92 protocol/alcatel/alcabus.h \
93 protocol/at/at.h \ 93 protocol/at/at.h \
94 protocol/nokia/fbus2.h \ 94 protocol/nokia/fbus2.h \
95 protocol/nokia/mbus2.h \ 95 protocol/nokia/mbus2.h \
96 protocol/nokia/phonet.h \ 96 protocol/nokia/phonet.h \
97 protocol/obex/obex.h \ 97 protocol/obex/obex.h \
98 protocol/symbian/mrouter.h \ 98 protocol/symbian/mrouter.h \
99 service/backup/backgen.h \ 99 service/backup/backgen.h \
100 service/backup/backics.h \ 100 service/backup/backics.h \
101 service/backup/backldif.h \ 101 service/backup/backldif.h \
102 service/backup/backlmb.h \ 102 service/backup/backlmb.h \
103 service/backup/backtext.h \ 103 service/backup/backtext.h \
104 service/backup/backvcf.h \ 104 service/backup/backvcf.h \
105 service/backup/backvcs.h \ 105 service/backup/backvcs.h \
106 service/backup/gsmback.h \ 106 service/backup/gsmback.h \
107 service/sms/gsmems.h \ 107 service/sms/gsmems.h \
108 service/sms/gsmmulti.h \ 108 service/sms/gsmmulti.h \
109 service/sms/gsmsms.h \ 109 service/sms/gsmsms.h \
110 phone/nokia/dct3/dct3comm.h \ 110 phone/nokia/dct3/dct3comm.h \
111 phone/nokia/dct3/dct3func.h \ 111 phone/nokia/dct3/dct3func.h \
112 phone/nokia/dct3/n6110.h \ 112 phone/nokia/dct3/n6110.h \
113 phone/nokia/dct3/n7110.h \ 113 phone/nokia/dct3/n7110.h \
114 phone/nokia/dct3/n9210.h \ 114 phone/nokia/dct3/n9210.h \
115 phone/nokia/dct4/dct4func.h \ 115 phone/nokia/dct4/dct4func.h \
116 phone/nokia/dct4/n3320.h \ 116 phone/nokia/dct4/n3320.h \
117 phone/nokia/dct4/n3650.h \ 117 phone/nokia/dct4/n3650.h \
118 phone/nokia/dct4/n6510.h 118 phone/nokia/dct4/n6510.h
119SOURCES +=gsmcomon.c \ 119SOURCES +=gsmcomon.c \
120gsmstate.c \ 120gsmstate.c \
121misc/misc.c \ 121misc/misc.c \
122misc/cfg.c \ 122misc/cfg.c \
123misc/coding/coding.c \ 123misc/coding/coding.c \
124misc/coding/md5.c \ 124misc/coding/md5.c \
125service/sms/gsmsms.c \ 125service/sms/gsmsms.c \
126service/sms/gsmems.c \ 126service/sms/gsmems.c \
127service/sms/gsmmulti.c \ 127service/sms/gsmmulti.c \
128service/gsmcal.c \ 128service/gsmcal.c \
129service/gsmdata.c \ 129service/gsmdata.c \
130service/gsmpbk.c \ 130service/gsmpbk.c \
131service/gsmring.c \ 131service/gsmring.c \
132service/gsmlogo.c \ 132service/gsmlogo.c \
133service/gsmmisc.c \ 133service/gsmmisc.c \
134service/gsmnet.c \ 134service/gsmnet.c \
135service/backup/gsmback.c \ 135service/backup/gsmback.c \
136service/backup/backldif.c \ 136service/backup/backldif.c \
137service/backup/backlmb.c \ 137service/backup/backlmb.c \
138service/backup/backtext.c \ 138service/backup/backtext.c \
139service/backup/backvcs.c \ 139service/backup/backvcs.c \
140service/backup/backvcf.c \ 140service/backup/backvcf.c \
141service/backup/backics.c \ 141service/backup/backics.c \
142device/bluetoth/affix.c \ 142device/bluetoth/affix.c \
143device/bluetoth/bluez.c \ 143device/bluetoth/bluez.c \
144device/bluetoth/blue_w32.c \ 144device/bluetoth/blue_w32.c \
145device/bluetoth/bluetoth.c \ 145device/bluetoth/bluetoth.c \
146device/serial/ser_unx.c \ 146device/serial/ser_unx.c \
147device/serial/ser_djg.c \ 147device/serial/ser_djg.c \
148device/irda/irda.c \ 148device/irda/irda.c \
149device/devfunc.c \ 149device/devfunc.c \
150protocol/at/at.c \ 150protocol/at/at.c \
151protocol/alcatel/alcabus.c \ 151protocol/alcatel/alcabus.c \
152protocol/nokia/mbus2.c \ 152protocol/nokia/mbus2.c \
153protocol/nokia/fbus2.c \ 153protocol/nokia/fbus2.c \
154protocol/nokia/phonet.c \ 154protocol/nokia/phonet.c \
155protocol/obex/obex.c \ 155protocol/obex/obex.c \
156protocol/symbian/mrouter.c \ 156protocol/symbian/mrouter.c \
157phone/pfunc.c \ 157phone/pfunc.c \
158phone/at/atgen.c \ 158phone/at/atgen.c \
159phone/at/siemens.c \ 159phone/at/siemens.c \
160phone/at/sonyeric.c \ 160phone/at/sonyeric.c \
161phone/alcatel/alcatel.c \ 161phone/alcatel/alcatel.c \
162phone/nokia/dct3/n6110.c \ 162phone/nokia/dct3/n6110.c \
163phone/nokia/dct3/n7110.c \ 163phone/nokia/dct3/n7110.c \
164phone/nokia/dct3/n9210.c \ 164phone/nokia/dct3/n9210.c \
165phone/nokia/dct3/dct3func.c \ 165phone/nokia/dct3/dct3func.c \
166phone/nokia/dct4/n3320.c \ 166phone/nokia/dct4/n3320.c \
167phone/nokia/dct4/n3650.c \ 167phone/nokia/dct4/n3650.c \
168phone/nokia/dct4/n6510.c \ 168phone/nokia/dct4/n6510.c \
169phone/nokia/dct4/dct4func.c \ 169phone/nokia/dct4/dct4func.c \
170phone/nokia/nauto.c \ 170phone/nokia/nauto.c \
171phone/nokia/nfunc.c \ 171phone/nokia/nfunc.c \
172phone/nokia/nfuncold.c \ 172phone/nokia/nfuncold.c \
173phone/obex/obexgen.c \ 173phone/obex/obexgen.c \
174phone/symbian/mroutgen.c 174phone/symbian/mroutgen.c
175 175
176TARGET = microgammu 176TARGET = microgammu
177DESTDIR = $(QPEDIR)/lib 177DESTDIR = $(QPEDIR)/lib
178OBJECTS_DIR = obj/$(PLATFORM) 178OBJECTS_DIR = obj/$(PLATFORM)
179MOC_DIR = moc/$(PLATFORM) 179MOC_DIR = moc/$(PLATFORM)
180 CONFIG = warn_off release console
diff --git a/gammu/emb/common/service/gsmring.c b/gammu/emb/common/service/gsmring.c
index 5a1ff87..f7f7082 100644
--- a/gammu/emb/common/service/gsmring.c
+++ b/gammu/emb/common/service/gsmring.c
@@ -1,619 +1,620 @@
1/* (c) 2001-2004 by Marcin Wiacek */ 1/* (c) 2001-2004 by Marcin Wiacek */
2/* Based on some work from Ralf Thelen (7110 ringtones), 2/* Based on some work from Ralf Thelen (7110 ringtones),
3 * Gnokii (RTTL and SM) and others 3 * Gnokii (RTTL and SM) and others
4 */ 4 */
5 5
6#include <stdlib.h> 6#include <stdlib.h>
7#include <string.h> 7#include <string.h>
8#include <ctype.h> 8#include <ctype.h>
9#include <math.h> 9#include <math.h>
10#ifdef WIN32 10#ifdef WIN32
11# include <windows.h> 11# include <windows.h>
12#endif 12#endif
13 13
14#include "../gsmcomon.h" 14#include "../gsmcomon.h"
15#include "../misc/coding/coding.h" 15#include "../misc/coding/coding.h"
16#include "../gsmstate.h" 16#include "../gsmstate.h"
17#include "gsmring.h" 17#include "gsmring.h"
18#include "sms/gsmsms.h" 18#include "sms/gsmsms.h"
19 19
20int GSM_RingNoteGetFrequency(GSM_RingNote Note) 20int GSM_RingNoteGetFrequency(GSM_RingNote Note)
21{ 21{
22 double freq=0; 22 double freq=0;
23 23
24 /* Values according to the software from http://iki.fi/too/sw/xring/ 24 /* Values according to the software from http://iki.fi/too/sw/xring/
25 * generated with: 25 * generated with:
26 * perl -e 'print int(4400 * (2 **($_/12)) + .5)/10, "\n" for(3..14)' 26 * perl -e 'print int(4400 * (2 **($_/12)) + .5)/10, "\n" for(3..14)'
27 */ 27 */
28 switch (Note.Note) { 28 switch (Note.Note) {
29 case Note_C : freq = 523.3; break; 29 case Note_C : freq = 523.3; break;
30 case Note_Cis: freq = 554.4; break; 30 case Note_Cis: freq = 554.4; break;
31 case Note_D : freq = 587.3; break; 31 case Note_D : freq = 587.3; break;
32 case Note_Dis: freq = 622.3; break; 32 case Note_Dis: freq = 622.3; break;
33 case Note_E : freq = 659.3; break; 33 case Note_E : freq = 659.3; break;
34 case Note_F : freq = 698.5; break; 34 case Note_F : freq = 698.5; break;
35 case Note_Fis: freq = 740; break; 35 case Note_Fis: freq = 740; break;
36 case Note_G : freq = 784; break; 36 case Note_G : freq = 784; break;
37 case Note_Gis: freq = 830.6; break; 37 case Note_Gis: freq = 830.6; break;
38 case Note_A : freq = 880; break; 38 case Note_A : freq = 880; break;
39 case Note_Ais: freq = 932.3; break; 39 case Note_Ais: freq = 932.3; break;
40 case Note_H : freq = 987.8; break; 40 case Note_H : freq = 987.8; break;
41 case Note_Pause: break; 41 case Note_Pause: break;
42 } 42 }
43 switch (Note.Scale) { 43 switch (Note.Scale) {
44 case Scale_440 : freq = freq / 2; break; 44 case Scale_440 : freq = freq / 2; break;
45 case Scale_880 : break; 45 case Scale_880 : break;
46 case Scale_1760: freq = freq * 2; break; 46 case Scale_1760: freq = freq * 2; break;
47 case Scale_3520: freq = freq * 4; break; 47 case Scale_3520: freq = freq * 4; break;
48 default : break; 48 default : break;
49 } 49 }
50 return (int)freq; 50 return (int)freq;
51} 51}
52 52
53int GSM_RingNoteGetFullDuration(GSM_RingNote Note) 53int GSM_RingNoteGetFullDuration(GSM_RingNote Note)
54{ 54{
55 int duration = 1; 55 int duration = 1;
56 56
57 switch (Note.Duration) { 57 switch (Note.Duration) {
58 case Duration_Full : duration = 128; break; 58 case Duration_Full : duration = 128; break;
59 case Duration_1_2 : duration = 64; break; 59 case Duration_1_2 : duration = 64; break;
60 case Duration_1_4 : duration = 32; break; 60 case Duration_1_4 : duration = 32; break;
61 case Duration_1_8 : duration = 16; break; 61 case Duration_1_8 : duration = 16; break;
62 case Duration_1_16 : duration = 8; break; 62 case Duration_1_16 : duration = 8; break;
63 case Duration_1_32 : duration = 4; break; 63 case Duration_1_32 : duration = 4; break;
64 } 64 }
65 switch (Note.DurationSpec) { 65 switch (Note.DurationSpec) {
66 case NoSpecialDuration : break; 66 case NoSpecialDuration : break;
67 case DottedNote : duration = duration * 3/2;break; 67 case DottedNote : duration = duration * 3/2;break;
68 case DoubleDottedNote : duration = duration * 9/4;break; 68 case DoubleDottedNote : duration = duration * 9/4;break;
69 case Length_2_3 : duration = duration * 2/3;break; 69 case Length_2_3 : duration = duration * 2/3;break;
70 } 70 }
71 return duration; 71 return duration;
72} 72}
73 73
74#ifndef PI 74#ifndef PI
75# define PI 3.141592654 75# define PI 3.141592654
76#endif 76#endif
77 77
78#define WAV_SAMPLE_RATE 44100 78#define WAV_SAMPLE_RATE 44100
79 79
80GSM_Error savewav(FILE *file, GSM_Ringtone *ringtone) 80GSM_Error savewav(FILE *file, GSM_Ringtone *ringtone)
81{ 81{
82 unsigned char WAV_Header[] = { 82 unsigned char WAV_Header[] = {
83 'R','I','F','F', 83 'R','I','F','F',
84 0x00,0x00,0x00,0x00,/* Length */ 84 0x00,0x00,0x00,0x00,/* Length */
85 'W','A','V','E'}; 85 'W','A','V','E'};
86 unsigned char FMT_Header[] = {'f','m','t',' ', 86 unsigned char FMT_Header[] = {'f','m','t',' ',
87 0x10,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x44,0xac, 87 0x10,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x44,0xac,
88 0x00,0x00,0x88,0x58,0x01,0x00,0x02,0x00,0x10,0x00}; 88 0x00,0x00,0x88,0x58,0x01,0x00,0x02,0x00,0x10,0x00};
89 unsigned char DATA_Header[] = { 89 unsigned char DATA_Header[] = {
90 'd','a','t','a', 90 'd','a','t','a',
91 0x00,0x00,0x00,0x00};/* Length */ 91 0x00,0x00,0x00,0x00};/* Length */
92 short DATA_Buffer[60000]; 92 short DATA_Buffer[60000];
93 long wavfilesize; 93 long wavfilesize;
94 GSM_RingNote *Note; 94 GSM_RingNote *Note;
95 long i,j,length=0; 95 long i,j,length=0;
96 double phase=0,phase_step; 96 double phase=0,phase_step;
97 97
98 fwrite(&WAV_Header, 1, sizeof(WAV_Header),file); 98 fwrite(&WAV_Header, 1, sizeof(WAV_Header),file);
99 fwrite(&FMT_Header, 1, sizeof(FMT_Header),file); 99 fwrite(&FMT_Header, 1, sizeof(FMT_Header),file);
100 fwrite(&DATA_Header, 1, sizeof(DATA_Header),file); 100 fwrite(&DATA_Header, 1, sizeof(DATA_Header),file);
101 101
102 for (i=0;i<ringtone->NoteTone.NrCommands;i++) { 102 for (i=0;i<ringtone->NoteTone.NrCommands;i++) {
103 if (ringtone->NoteTone.Commands[i].Type == RING_Note) { 103 if (ringtone->NoteTone.Commands[i].Type == RING_Note) {
104 Note = &ringtone->NoteTone.Commands[i].Note; 104 Note = &ringtone->NoteTone.Commands[i].Note;
105 phase_step = GSM_RingNoteGetFrequency(*Note)*WAV_SAMPLE_RATE*1.5; 105 phase_step = GSM_RingNoteGetFrequency(*Note)*WAV_SAMPLE_RATE*1.5;
106 for (j=0;j<((long)(GSM_RingNoteGetFullDuration(*Note)*WAV_SAMPLE_RATE/70));j++) { 106 for (j=0;j<((long)(GSM_RingNoteGetFullDuration(*Note)*WAV_SAMPLE_RATE/70));j++) {
107 DATA_Buffer[j] = ((int)(sin(phase*PI)*50000)); 107 /*DATA_Buffer[j] = ((int)(sin(phase*PI)*50000));*/
108 DATA_Buffer[j] = ((int)(0.5*50000));
108 phase = phase + phase_step; 109 phase = phase + phase_step;
109 length++; 110 length++;
110 } 111 }
111 fwrite(&DATA_Buffer,sizeof(short),j,file); 112 fwrite(&DATA_Buffer,sizeof(short),j,file);
112 } 113 }
113 } 114 }
114 115
115 wavfilesize = sizeof(WAV_Header) + sizeof(FMT_Header) + sizeof(DATA_Header) + length*2; 116 wavfilesize = sizeof(WAV_Header) + sizeof(FMT_Header) + sizeof(DATA_Header) + length*2;
116 WAV_Header[4] = ((unsigned char)wavfilesize % 256); 117 WAV_Header[4] = ((unsigned char)wavfilesize % 256);
117 WAV_Header[5] = ((unsigned char)wavfilesize / 256); 118 WAV_Header[5] = ((unsigned char)wavfilesize / 256);
118 WAV_Header[6] = ((unsigned char)wavfilesize / (256*256)); 119 WAV_Header[6] = ((unsigned char)wavfilesize / (256*256));
119 WAV_Header[7] = ((unsigned char)wavfilesize / (256*256*256)); 120 WAV_Header[7] = ((unsigned char)wavfilesize / (256*256*256));
120 wavfilesize = wavfilesize - 54; 121 wavfilesize = wavfilesize - 54;
121 DATA_Header[4] = ((unsigned char)wavfilesize % 256); 122 DATA_Header[4] = ((unsigned char)wavfilesize % 256);
122 DATA_Header[5] = ((unsigned char)wavfilesize / 256); 123 DATA_Header[5] = ((unsigned char)wavfilesize / 256);
123 DATA_Header[6] = ((unsigned char)wavfilesize / (256*256)); 124 DATA_Header[6] = ((unsigned char)wavfilesize / (256*256));
124 DATA_Header[7] = ((unsigned char)wavfilesize / (256*256*256)); 125 DATA_Header[7] = ((unsigned char)wavfilesize / (256*256*256));
125 126
126 fseek( file, 0, SEEK_SET); 127 fseek( file, 0, SEEK_SET);
127 fwrite(&WAV_Header, 1, sizeof(WAV_Header),file); 128 fwrite(&WAV_Header, 1, sizeof(WAV_Header),file);
128 fwrite(&FMT_Header, 1, sizeof(FMT_Header),file); 129 fwrite(&FMT_Header, 1, sizeof(FMT_Header),file);
129 fwrite(&DATA_Header, 1, sizeof(DATA_Header),file); 130 fwrite(&DATA_Header, 1, sizeof(DATA_Header),file);
130 131
131 return ERR_NONE; 132 return ERR_NONE;
132} 133}
133 134
134static GSM_Error savebin(FILE *file, GSM_Ringtone *ringtone) 135static GSM_Error savebin(FILE *file, GSM_Ringtone *ringtone)
135{ 136{
136 char nullchar=0x00; 137 char nullchar=0x00;
137 138
138 fwrite(&nullchar,1,1,file); 139 fwrite(&nullchar,1,1,file);
139 fwrite(&nullchar,1,1,file); 140 fwrite(&nullchar,1,1,file);
140 fprintf(file,"\x0C\x01\x2C"); 141 fprintf(file,"\x0C\x01\x2C");
141 fprintf(file,"%s",DecodeUnicodeString(ringtone->Name)); 142 fprintf(file,"%s",DecodeUnicodeString(ringtone->Name));
142 fwrite(&nullchar,1,1,file); 143 fwrite(&nullchar,1,1,file);
143 fwrite(&nullchar,1,1,file); 144 fwrite(&nullchar,1,1,file);
144 fwrite(ringtone->NokiaBinary.Frame,1,ringtone->NokiaBinary.Length,file); 145 fwrite(ringtone->NokiaBinary.Frame,1,ringtone->NokiaBinary.Length,file);
145 return ERR_NONE; 146 return ERR_NONE;
146} 147}
147 148
148static GSM_Error savepuremidi(FILE *file, GSM_Ringtone *ringtone) 149static GSM_Error savepuremidi(FILE *file, GSM_Ringtone *ringtone)
149{ 150{
150 fwrite(ringtone->NokiaBinary.Frame,1,ringtone->NokiaBinary.Length,file); 151 fwrite(ringtone->NokiaBinary.Frame,1,ringtone->NokiaBinary.Length,file);
151 return ERR_NONE; 152 return ERR_NONE;
152} 153}
153 154
154GSM_Error saverttl(FILE *file, GSM_Ringtone *ringtone) 155GSM_Error saverttl(FILE *file, GSM_Ringtone *ringtone)
155{ 156{
156 GSM_RingNoteScaleDefNoteScale; 157 GSM_RingNoteScaleDefNoteScale;
157 GSM_RingNoteDurationDefNoteDuration; 158 GSM_RingNoteDurationDefNoteDuration;
158 159
159 GSM_RingNoteStyleDefNoteStyle=0; 160 GSM_RingNoteStyleDefNoteStyle=0;
160 int DefNoteTempo=0; 161 int DefNoteTempo=0;
161 162
162 bool started = false, firstcomma = true; 163 bool started = false, firstcomma = true;
163 GSM_RingNote *Note; 164 GSM_RingNote *Note;
164 165
165 unsigned char buffer[15]; 166 unsigned char buffer[15];
166 int i,j,k=0; 167 int i,j,k=0;
167 168
168 /* Saves ringtone name */ 169 /* Saves ringtone name */
169 fprintf(file,"%s:",DecodeUnicodeString(ringtone->Name)); 170 fprintf(file,"%s:",DecodeUnicodeString(ringtone->Name));
170 171
171 /* Find the most frequently used duration */ 172 /* Find the most frequently used duration */
172 for (i=0;i<6;i++) buffer[i]=0; 173 for (i=0;i<6;i++) buffer[i]=0;
173 for (i=0;i<ringtone->NoteTone.NrCommands;i++) { 174 for (i=0;i<ringtone->NoteTone.NrCommands;i++) {
174 if (ringtone->NoteTone.Commands[i].Type == RING_Note) { 175 if (ringtone->NoteTone.Commands[i].Type == RING_Note) {
175 Note = &ringtone->NoteTone.Commands[i].Note; 176 Note = &ringtone->NoteTone.Commands[i].Note;
176 /* some durations need 2 bytes in file, some 1 */ 177 /* some durations need 2 bytes in file, some 1 */
177 if (Note->Duration >= Duration_Full && Note->Duration <= Duration_1_8) { 178 if (Note->Duration >= Duration_Full && Note->Duration <= Duration_1_8) {
178 buffer[Note->Duration/32]++; 179 buffer[Note->Duration/32]++;
179 } 180 }
180 if (Note->Duration >= Duration_1_16 && Note->Duration <= Duration_1_32) { 181 if (Note->Duration >= Duration_1_16 && Note->Duration <= Duration_1_32) {
181 buffer[Note->Duration/32]+=2; 182 buffer[Note->Duration/32]+=2;
182 } 183 }
183 } 184 }
184 } 185 }
185 /* Now find the most frequently used */ 186 /* Now find the most frequently used */
186 j=0; 187 j=0;
187 for (i=0;i<6;i++) { 188 for (i=0;i<6;i++) {
188 if (buffer[i]>j) { 189 if (buffer[i]>j) {
189 k=i; 190 k=i;
190 j=buffer[i]; 191 j=buffer[i];
191 } 192 }
192 } 193 }
193 /* Finally convert the default duration */ 194 /* Finally convert the default duration */
194 DefNoteDuration = k * 32; 195 DefNoteDuration = k * 32;
195 dbgprintf("DefNoteDuration=%d\n", DefNoteDuration); 196 dbgprintf("DefNoteDuration=%d\n", DefNoteDuration);
196 switch (DefNoteDuration) { 197 switch (DefNoteDuration) {
197 case Duration_Full:fprintf(file,"d=1"); break; 198 case Duration_Full:fprintf(file,"d=1"); break;
198 case Duration_1_2 :fprintf(file,"d=2"); break; 199 case Duration_1_2 :fprintf(file,"d=2"); break;
199 case Duration_1_4 :fprintf(file,"d=4"); break; 200 case Duration_1_4 :fprintf(file,"d=4"); break;
200 case Duration_1_8 :fprintf(file,"d=8"); break; 201 case Duration_1_8 :fprintf(file,"d=8"); break;
201 case Duration_1_16:fprintf(file,"d=16");break; 202 case Duration_1_16:fprintf(file,"d=16");break;
202 case Duration_1_32:fprintf(file,"d=32");break; 203 case Duration_1_32:fprintf(file,"d=32");break;
203 } 204 }
204 205
205 /* Find the most frequently used scale */ 206 /* Find the most frequently used scale */
206 for (i=0;i<9;i++) buffer[i]=0; 207 for (i=0;i<9;i++) buffer[i]=0;
207 for (i=0;i<ringtone->NoteTone.NrCommands;i++) { 208 for (i=0;i<ringtone->NoteTone.NrCommands;i++) {
208 if (ringtone->NoteTone.Commands[i].Type == RING_Note) { 209 if (ringtone->NoteTone.Commands[i].Type == RING_Note) {
209 Note = &ringtone->NoteTone.Commands[i].Note; 210 Note = &ringtone->NoteTone.Commands[i].Note;
210 if (Note->Note!=Note_Pause && 211 if (Note->Note!=Note_Pause &&
211 Note->Scale >= Scale_55 && Note->Scale <= Scale_14080) { 212 Note->Scale >= Scale_55 && Note->Scale <= Scale_14080) {
212 buffer[Note->Scale - 1]++; 213 buffer[Note->Scale - 1]++;
213 } 214 }
214 } 215 }
215 } 216 }
216 j=0; 217 j=0;
217 for (i=0;i<9;i++) { 218 for (i=0;i<9;i++) {
218 if (buffer[i]>j) { 219 if (buffer[i]>j) {
219 k = i; 220 k = i;
220 j=buffer[i]; 221 j=buffer[i];
221 } 222 }
222 } 223 }
223 DefNoteScale = k + 1; 224 DefNoteScale = k + 1;
224 /* Save the default scale */ 225 /* Save the default scale */
225 fprintf(file,",o=%i,",DefNoteScale); 226 fprintf(file,",o=%i,",DefNoteScale);
226 dbgprintf("DefNoteScale=%d\n", DefNoteScale); 227 dbgprintf("DefNoteScale=%d\n", DefNoteScale);
227 228
228 for (i=0;i<ringtone->NoteTone.NrCommands;i++) { 229 for (i=0;i<ringtone->NoteTone.NrCommands;i++) {
229 if (ringtone->NoteTone.Commands[i].Type != RING_Note) continue; 230 if (ringtone->NoteTone.Commands[i].Type != RING_Note) continue;
230 231
231 Note = &ringtone->NoteTone.Commands[i].Note; 232 Note = &ringtone->NoteTone.Commands[i].Note;
232 233
233 /* Trick from PPM Edit */ 234 /* Trick from PPM Edit */
234 if (Note->DurationSpec == DoubleDottedNote) { 235 if (Note->DurationSpec == DoubleDottedNote) {
235 switch (Note->Duration) { 236 switch (Note->Duration) {
236 case Duration_Full:Note->Duration = Duration_Full;break; 237 case Duration_Full:Note->Duration = Duration_Full;break;
237 case Duration_1_2 :Note->Duration = Duration_Full;break; 238 case Duration_1_2 :Note->Duration = Duration_Full;break;
238 case Duration_1_4 :Note->Duration = Duration_1_2; break; 239 case Duration_1_4 :Note->Duration = Duration_1_2; break;
239 case Duration_1_8 :Note->Duration = Duration_1_4; break; 240 case Duration_1_8 :Note->Duration = Duration_1_4; break;
240 case Duration_1_16:Note->Duration = Duration_1_8; break; 241 case Duration_1_16:Note->Duration = Duration_1_8; break;
241 case Duration_1_32:Note->Duration = Duration_1_16;break; 242 case Duration_1_32:Note->Duration = Duration_1_16;break;
242 } 243 }
243 Note->DurationSpec = NoSpecialDuration; 244 Note->DurationSpec = NoSpecialDuration;
244 } 245 }
245 246
246 if (!started) { 247 if (!started) {
247 DefNoteTempo=Note->Tempo; 248 DefNoteTempo=Note->Tempo;
248 DefNoteStyle=Note->Style; 249 DefNoteStyle=Note->Style;
249 switch (Note->Style) { 250 switch (Note->Style) {
250 case StaccatoStyle: fprintf(file,"s=S,"); break; 251 case StaccatoStyle: fprintf(file,"s=S,"); break;
251 case NaturalStyle : fprintf(file,"s=N,"); break; 252 case NaturalStyle : fprintf(file,"s=N,"); break;
252 case ContinuousStyle : break; 253 case ContinuousStyle : break;
253 } 254 }
254 /* Save the default tempo */ 255 /* Save the default tempo */
255 fprintf(file,"b=%i:",DefNoteTempo); 256 fprintf(file,"b=%i:",DefNoteTempo);
256 dbgprintf("DefNoteTempo=%d\n", DefNoteTempo); 257 dbgprintf("DefNoteTempo=%d\n", DefNoteTempo);
257 started = true; 258 started = true;
258 firstcomma = true; 259 firstcomma = true;
259 } 260 }
260 261
261 if (!started) continue; 262 if (!started) continue;
262 263
263 if (Note->Style!=DefNoteStyle) { 264 if (Note->Style!=DefNoteStyle) {
264 /* And a separator */ 265 /* And a separator */
265 if (!firstcomma) fprintf(file,","); 266 if (!firstcomma) fprintf(file,",");
266 firstcomma = false; 267 firstcomma = false;
267 DefNoteStyle=Note->Style; 268 DefNoteStyle=Note->Style;
268 switch (Note->Style) { 269 switch (Note->Style) {
269 case StaccatoStyle : fprintf(file,"s=S"); break; 270 case StaccatoStyle : fprintf(file,"s=S"); break;
270 case NaturalStyle : fprintf(file,"s=N"); break; 271 case NaturalStyle : fprintf(file,"s=N"); break;
271 case ContinuousStyle: fprintf(file,"s=C"); break; 272 case ContinuousStyle: fprintf(file,"s=C"); break;
272 } 273 }
273 } 274 }
274 if (Note->Tempo!=DefNoteTempo) { 275 if (Note->Tempo!=DefNoteTempo) {
275 /* And a separator */ 276 /* And a separator */
276 if (!firstcomma) fprintf(file,","); 277 if (!firstcomma) fprintf(file,",");
277 firstcomma = false; 278 firstcomma = false;
278 DefNoteTempo=Note->Tempo; 279 DefNoteTempo=Note->Tempo;
279 fprintf(file,"b=%i",DefNoteTempo); 280 fprintf(file,"b=%i",DefNoteTempo);
280 } 281 }
281 /* This note has a duration different than the default. We must save it */ 282 /* This note has a duration different than the default. We must save it */
282 if (Note->Duration!=DefNoteDuration) { 283 if (Note->Duration!=DefNoteDuration) {
283 /* And a separator */ 284 /* And a separator */
284 if (!firstcomma) fprintf(file,","); 285 if (!firstcomma) fprintf(file,",");
285 firstcomma = false; 286 firstcomma = false;
286 switch (Note->Duration) { 287 switch (Note->Duration) {
287 case Duration_Full:fprintf(file,"1"); break; 288 case Duration_Full:fprintf(file,"1"); break;
288 case Duration_1_2 :fprintf(file,"2"); break; 289 case Duration_1_2 :fprintf(file,"2"); break;
289 case Duration_1_4 :fprintf(file,"4"); break; 290 case Duration_1_4 :fprintf(file,"4"); break;
290 case Duration_1_8 :fprintf(file,"8"); break; 291 case Duration_1_8 :fprintf(file,"8"); break;
291 case Duration_1_16:fprintf(file,"16");break; 292 case Duration_1_16:fprintf(file,"16");break;
292 case Duration_1_32:fprintf(file,"32");break; 293 case Duration_1_32:fprintf(file,"32");break;
293 } 294 }
294 } else { 295 } else {
295 /* And a separator */ 296 /* And a separator */
296 if (!firstcomma) fprintf(file,","); 297 if (!firstcomma) fprintf(file,",");
297 firstcomma = false; 298 firstcomma = false;
298 } 299 }
299 /* Now save the actual note */ 300 /* Now save the actual note */
300 switch (Note->Note) { 301 switch (Note->Note) {
301 case Note_C :fprintf(file,"c");break; 302 case Note_C :fprintf(file,"c");break;
302 case Note_Cis:fprintf(file,"c#");break; 303 case Note_Cis:fprintf(file,"c#");break;
303 case Note_D :fprintf(file,"d");break; 304 case Note_D :fprintf(file,"d");break;
304 case Note_Dis:fprintf(file,"d#");break; 305 case Note_Dis:fprintf(file,"d#");break;
305 case Note_E :fprintf(file,"e");break; 306 case Note_E :fprintf(file,"e");break;
306 case Note_F :fprintf(file,"f");break; 307 case Note_F :fprintf(file,"f");break;
307 case Note_Fis:fprintf(file,"f#");break; 308 case Note_Fis:fprintf(file,"f#");break;
308 case Note_G :fprintf(file,"g");break; 309 case Note_G :fprintf(file,"g");break;
309 case Note_Gis:fprintf(file,"g#");break; 310 case Note_Gis:fprintf(file,"g#");break;
310 case Note_A :fprintf(file,"a");break; 311 case Note_A :fprintf(file,"a");break;
311 case Note_Ais:fprintf(file,"a#");break; 312 case Note_Ais:fprintf(file,"a#");break;
312 case Note_H :fprintf(file,"h");break; 313 case Note_H :fprintf(file,"h");break;
313 default :fprintf(file,"p");break; /*Pause ?*/ 314 default :fprintf(file,"p");break; /*Pause ?*/
314 } 315 }
315 switch (Note->DurationSpec) { 316 switch (Note->DurationSpec) {
316 case DottedNote : fprintf(file,".");break; 317 case DottedNote : fprintf(file,".");break;
317 default : break; 318 default : break;
318 } 319 }
319 if (Note->Note!=Note_Pause && Note->Scale != DefNoteScale) { 320 if (Note->Note!=Note_Pause && Note->Scale != DefNoteScale) {
320 fprintf(file,"%i",Note->Scale); 321 fprintf(file,"%i",Note->Scale);
321 } 322 }
322 } 323 }
323 return ERR_NONE; 324 return ERR_NONE;
324} 325}
325 326
326void saveimelody(FILE *file, GSM_Ringtone *ringtone) 327void saveimelody(FILE *file, GSM_Ringtone *ringtone)
327{ 328{
328 char Buffer[2000]; 329 char Buffer[2000];
329 int i=2000; 330 int i=2000;
330 331
331 GSM_EncodeEMSSound(*ringtone, Buffer, &i, (float)1.2, true); 332 GSM_EncodeEMSSound(*ringtone, Buffer, &i, (float)1.2, true);
332 333
333 fwrite(Buffer, 1, i, file); 334 fwrite(Buffer, 1, i, file);
334} 335}
335 336
336#ifndef ENABLE_LGPL 337#ifndef ENABLE_LGPL
337 338
338static void WriteVarLen(unsigned char* midifile, int* current, long value) 339static void WriteVarLen(unsigned char* midifile, int* current, long value)
339{ 340{
340 long buffer; 341 long buffer;
341 342
342 buffer = value & 0x7f; 343 buffer = value & 0x7f;
343 344
344 while (value >>= 7) { 345 while (value >>= 7) {
345 buffer <<= 8; 346 buffer <<= 8;
346 buffer |= 0x80; 347 buffer |= 0x80;
347 buffer += (value & 0x7f); 348 buffer += (value & 0x7f);
348 } 349 }
349 350
350 while (1) { 351 while (1) {
351 midifile[(*current)++] = (unsigned char)buffer; 352 midifile[(*current)++] = (unsigned char)buffer;
352 if (buffer & 0x80) { 353 if (buffer & 0x80) {
353 buffer >>= 8; 354 buffer >>= 8;
354 } else { 355 } else {
355 break; 356 break;
356 } 357 }
357 } 358 }
358} 359}
359 360
360#define singlepauses 361#define singlepauses
361 362
362/* FIXME: need adding tempo before each note and scale too ? */ 363/* FIXME: need adding tempo before each note and scale too ? */
363void savemid(FILE* file, GSM_Ringtone *ringtone) 364void savemid(FILE* file, GSM_Ringtone *ringtone)
364{ 365{
365 int pause = 0, current = 26, duration, i, note=0, length = 20; 366 int pause = 0, current = 26, duration, i, note=0, length = 20;
366 bool started = false; 367 bool started = false;
367 GSM_RingNote *Note; 368 GSM_RingNote *Note;
368 unsigned char midifile[3000] = { 369 unsigned char midifile[3000] = {
369 0x4D, 0x54, 0x68, 0x64, // MThd 370 0x4D, 0x54, 0x68, 0x64, // MThd
370 0x00, 0x00, 0x00, 0x06, // chunk length 371 0x00, 0x00, 0x00, 0x06, // chunk length
371 0x00, 0x00, // format 0 372 0x00, 0x00, // format 0
372 0x00, 0x01, // one track 373 0x00, 0x01, // one track
373 0x00, 0x20, // 32 per quarter note 374 0x00, 0x20, // 32 per quarter note
374 0x4D, 0x54, 0x72, 0x6B, // MTrk 375 0x4D, 0x54, 0x72, 0x6B, // MTrk
375 0x00, 0x00, 0x00, 0x00, // chunk length 376 0x00, 0x00, 0x00, 0x00, // chunk length
376 0x00, 0xFF, 0x51, 0x03, // tempo meta event 377 0x00, 0xFF, 0x51, 0x03, // tempo meta event
377 0x00, 0x00, 0x00}; // 3 bytes for us for a quarter note 378 0x00, 0x00, 0x00}; // 3 bytes for us for a quarter note
378 379
379 for (i = 0; i < ringtone->NoteTone.NrCommands; i++) { 380 for (i = 0; i < ringtone->NoteTone.NrCommands; i++) {
380 if (ringtone->NoteTone.Commands[i].Type == RING_Note) { 381 if (ringtone->NoteTone.Commands[i].Type == RING_Note) {
381 Note = &ringtone->NoteTone.Commands[i].Note; 382 Note = &ringtone->NoteTone.Commands[i].Note;
382 if (!started) { 383 if (!started) {
383 /* readmid does not read pauses at the beginning */ 384 /* readmid does not read pauses at the beginning */
384 if (Note->Note != Note_Pause) { 385 if (Note->Note != Note_Pause) {
385 /* FIXME: we need add tempo before each note or so... */ 386 /* FIXME: we need add tempo before each note or so... */
386 long duration=60000000/Note->Tempo; 387 long duration=60000000/Note->Tempo;
387 388
388 midifile[current++] = (unsigned char)(duration >> 16); 389 midifile[current++] = (unsigned char)(duration >> 16);
389 midifile[current++] = (unsigned char)(duration >> 8); 390 midifile[current++] = (unsigned char)(duration >> 8);
390 midifile[current++] = (unsigned char)duration; 391 midifile[current++] = (unsigned char)duration;
391 392
392 started = true; 393 started = true;
393 } 394 }
394 } 395 }
395 if (!started) continue; 396 if (!started) continue;
396 duration = GSM_RingNoteGetFullDuration(*Note); 397 duration = GSM_RingNoteGetFullDuration(*Note);
397 if (Note->Note == Note_Pause) { 398 if (Note->Note == Note_Pause) {
398 pause += duration; 399 pause += duration;
399#ifdef singlepauses 400#ifdef singlepauses
400 WriteVarLen(midifile,&current,pause); 401 WriteVarLen(midifile,&current,pause);
401 pause=0; 402 pause=0;
402 midifile[current++]=0x00; // pause 403 midifile[current++]=0x00; // pause
403 midifile[current++]=0x00; 404 midifile[current++]=0x00;
404#endif 405#endif
405 } else { 406 } else {
406 if (Note->Note >= Note_C && Note->Note <= Note_H) { 407 if (Note->Note >= Note_C && Note->Note <= Note_H) {
407 note = Note->Note/16 + 12 * Note->Scale - 1; 408 note = Note->Note/16 + 12 * Note->Scale - 1;
408 } 409 }
409 410
410 WriteVarLen(midifile,&current,pause); 411 WriteVarLen(midifile,&current,pause);
411 pause=0; 412 pause=0;
412 midifile[current++]=0x90; // note on 413 midifile[current++]=0x90; // note on
413 midifile[current++]=note; 414 midifile[current++]=note;
414 midifile[current++]=0x64; // forte 415 midifile[current++]=0x64; // forte
415 416
416 WriteVarLen(midifile,&current,duration); 417 WriteVarLen(midifile,&current,duration);
417 midifile[current++]=0x80; // note off 418 midifile[current++]=0x80; // note off
418 midifile[current++]=note; 419 midifile[current++]=note;
419 midifile[current++]=0x64; 420 midifile[current++]=0x64;
420 } 421 }
421 } 422 }
422 } 423 }
423 if (pause) { 424 if (pause) {
424 WriteVarLen(midifile,&current,pause); 425 WriteVarLen(midifile,&current,pause);
425 midifile[current++]=0x00; // pause 426 midifile[current++]=0x00; // pause
426 midifile[current++]=0x00; // 427 midifile[current++]=0x00; //
427 } 428 }
428 midifile[current++] = 0x00; 429 midifile[current++] = 0x00;
429 midifile[current++] = 0xFF; // track end 430 midifile[current++] = 0xFF; // track end
430 midifile[current++] = 0x2F; 431 midifile[current++] = 0x2F;
431 midifile[current++] = 0x00; 432 midifile[current++] = 0x00;
432 midifile[length++] = (current-22) >> 8; 433 midifile[length++] = (current-22) >> 8;
433 midifile[length++] = current-22; 434 midifile[length++] = current-22;
434 435
435 fwrite(midifile,1,current,file); 436 fwrite(midifile,1,current,file);
436} 437}
437 438
438#endif 439#endif
439 440
440void saveott(FILE *file, GSM_Ringtone *ringtone) 441void saveott(FILE *file, GSM_Ringtone *ringtone)
441{ 442{
442 char Buffer[2000]; 443 char Buffer[2000];
443 int i=2000; 444 int i=2000;
444 445
445 GSM_EncodeNokiaRTTLRingtone(*ringtone, Buffer, &i); 446 GSM_EncodeNokiaRTTLRingtone(*ringtone, Buffer, &i);
446 447
447 fwrite(Buffer, 1, i, file); 448 fwrite(Buffer, 1, i, file);
448} 449}
449 450
450GSM_Error GSM_SaveRingtoneFile(char *FileName, GSM_Ringtone *ringtone) 451GSM_Error GSM_SaveRingtoneFile(char *FileName, GSM_Ringtone *ringtone)
451{ 452{
452 FILE *file; 453 FILE *file;
453 454
454 file = fopen(FileName, "wb"); 455 file = fopen(FileName, "wb");
455 if (file == NULL) return ERR_CANTOPENFILE; 456 if (file == NULL) return ERR_CANTOPENFILE;
456 457
457 switch (ringtone->Format) { 458 switch (ringtone->Format) {
458 case RING_NOTETONE: 459 case RING_NOTETONE:
459 if (strstr(FileName,".ott")) { 460 if (strstr(FileName,".ott")) {
460 saveott(file,ringtone); 461 saveott(file,ringtone);
461#ifndef ENABLE_LGPL 462#ifndef ENABLE_LGPL
462 } else if (strstr(FileName,".mid")) { 463 } else if (strstr(FileName,".mid")) {
463 savemid(file,ringtone); 464 savemid(file,ringtone);
464#endif 465#endif
465 } else if (strstr(FileName,".rng")) { 466 } else if (strstr(FileName,".rng")) {
466 saveott(file,ringtone); 467 saveott(file,ringtone);
467 } else if (strstr(FileName,".imy")) { 468 } else if (strstr(FileName,".imy")) {
468 saveimelody(file,ringtone); 469 saveimelody(file,ringtone);
469 } else if (strstr(FileName,".ime")) { 470 } else if (strstr(FileName,".ime")) {
470 saveimelody(file,ringtone); 471 saveimelody(file,ringtone);
471 } else if (strstr(FileName,".wav")) { 472 } else if (strstr(FileName,".wav")) {
472 savewav(file,ringtone); 473 savewav(file,ringtone);
473 } else { 474 } else {
474 saverttl(file, ringtone); 475 saverttl(file, ringtone);
475 } 476 }
476 break; 477 break;
477 case RING_NOKIABINARY: 478 case RING_NOKIABINARY:
478 savebin(file, ringtone); 479 savebin(file, ringtone);
479 break; 480 break;
480 case RING_MIDI: 481 case RING_MIDI:
481 savepuremidi(file, ringtone); 482 savepuremidi(file, ringtone);
482 break; 483 break;
483 } 484 }
484 485
485 fclose(file); 486 fclose(file);
486 487
487 return ERR_NONE; 488 return ERR_NONE;
488} 489}
489 490
490static GSM_Error loadrttl(FILE *file, GSM_Ringtone *ringtone) 491static GSM_Error loadrttl(FILE *file, GSM_Ringtone *ringtone)
491{ 492{
492 GSM_RingNoteScale DefNoteScale= Scale_880; 493 GSM_RingNoteScale DefNoteScale= Scale_880;
493 GSM_RingNoteDuration DefNoteDuration= Duration_1_4; 494 GSM_RingNoteDuration DefNoteDuration= Duration_1_4;
494 GSM_RingNoteStyle DefNoteStyle= NaturalStyle; 495 GSM_RingNoteStyle DefNoteStyle= NaturalStyle;
495 int DefNoteTempo= 63, i=0; 496 int DefNoteTempo= 63, i=0;
496 497
497 unsigned char buffer[2000],Name[100]; 498 unsigned char buffer[2000],Name[100];
498 GSM_RingNote *Note; 499 GSM_RingNote *Note;
499 500
500 fread(buffer, 2000, 1, file); 501 fread(buffer, 2000, 1, file);
501 502
502 ringtone->NoteTone.NrCommands = 0; 503 ringtone->NoteTone.NrCommands = 0;
503 504
504 /* -------------- name ---------------- */ 505 /* -------------- name ---------------- */
505 while (buffer[i] != ':') { 506 while (buffer[i] != ':') {
506 if (buffer[i] == 0x00) return ERR_NONE; 507 if (buffer[i] == 0x00) return ERR_NONE;
507 i++; 508 i++;
508 } 509 }
509 if (i == 0) { 510 if (i == 0) {
510 /* This is for RTTL ringtones without name. */ 511 /* This is for RTTL ringtones without name. */
511 EncodeUnicode(ringtone->Name,"Gammu",5); 512 EncodeUnicode(ringtone->Name,"Gammu",5);
512 } else { 513 } else {
513 memcpy(Name,buffer,i); 514 memcpy(Name,buffer,i);
514 Name[i] = 0x00; 515 Name[i] = 0x00;
515 EncodeUnicode(ringtone->Name,Name,strlen(Name)); 516 EncodeUnicode(ringtone->Name,Name,strlen(Name));
516 } 517 }
517 i++; 518 i++;
518 519
519 /* --------- section with default ringtone settings ----------- */ 520 /* --------- section with default ringtone settings ----------- */
520 while(1) { 521 while(1) {
521 switch (buffer[i]) { 522 switch (buffer[i]) {
522 case ':': 523 case ':':
523 break; 524 break;
524 case 0x00: 525 case 0x00:
525 return ERR_NONE; 526 return ERR_NONE;
526 case 'd': case 'D': 527 case 'd': case 'D':
527 switch (atoi(buffer+i+2)) { 528 switch (atoi(buffer+i+2)) {
528 case 1: DefNoteDuration = Duration_Full; break; 529 case 1: DefNoteDuration = Duration_Full; break;
529 case 2: DefNoteDuration = Duration_1_2 ; break; 530 case 2: DefNoteDuration = Duration_1_2 ; break;
530 case 4: DefNoteDuration = Duration_1_4 ; break; 531 case 4: DefNoteDuration = Duration_1_4 ; break;
531 case 8: DefNoteDuration = Duration_1_8 ; break; 532 case 8: DefNoteDuration = Duration_1_8 ; break;
532 case 16: DefNoteDuration = Duration_1_16; break; 533 case 16: DefNoteDuration = Duration_1_16; break;
533 case 32: DefNoteDuration = Duration_1_32; break; 534 case 32: DefNoteDuration = Duration_1_32; break;
534 } 535 }
535 break; 536 break;
536 case 'o': case 'O': 537 case 'o': case 'O':
537 switch (atoi(buffer+i+2)) { 538 switch (atoi(buffer+i+2)) {
538 case 4: DefNoteScale = Scale_440 ; break; 539 case 4: DefNoteScale = Scale_440 ; break;
539 case 5: DefNoteScale = Scale_880 ; break; 540 case 5: DefNoteScale = Scale_880 ; break;
540 case 6: DefNoteScale = Scale_1760; break; 541 case 6: DefNoteScale = Scale_1760; break;
541 case 7: DefNoteScale = Scale_3520; break; 542 case 7: DefNoteScale = Scale_3520; break;
542 } 543 }
543 break; 544 break;
544 case 'b': case 'B': 545 case 'b': case 'B':
545 DefNoteTempo=atoi(buffer+i+2); 546 DefNoteTempo=atoi(buffer+i+2);
546 dbgprintf("Tempo = %i\n",DefNoteTempo); 547 dbgprintf("Tempo = %i\n",DefNoteTempo);
547 break; 548 break;
548 case 's': case 'S': 549 case 's': case 'S':
549 switch (buffer[i+1]) { 550 switch (buffer[i+1]) {
550 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break; 551 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break;
551 case 'N': case 'n': DefNoteStyle=NaturalStyle; break; 552 case 'N': case 'n': DefNoteStyle=NaturalStyle; break;
552 case 'S': case 's': DefNoteStyle=StaccatoStyle; break; 553 case 'S': case 's': DefNoteStyle=StaccatoStyle; break;
553 } 554 }
554 switch (buffer[i+2]) { 555 switch (buffer[i+2]) {
555 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break; 556 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break;
556 case 'N': case 'n': DefNoteStyle=NaturalStyle; break; 557 case 'N': case 'n': DefNoteStyle=NaturalStyle; break;
557 case 'S': case 's': DefNoteStyle=StaccatoStyle; break; 558 case 'S': case 's': DefNoteStyle=StaccatoStyle; break;
558 } 559 }
559 break; 560 break;
560 } 561 }
561 while (buffer[i] != ':' && buffer[i] != ',') { 562 while (buffer[i] != ':' && buffer[i] != ',') {
562 if (buffer[i] == 0x00) return ERR_NONE; 563 if (buffer[i] == 0x00) return ERR_NONE;
563 i++; 564 i++;
564 } 565 }
565 if (buffer[i] == ',') i++; 566 if (buffer[i] == ',') i++;
566 if (buffer[i] == ':') break; 567 if (buffer[i] == ':') break;
567 } 568 }
568 dbgprintf("DefNoteDuration=%d\n", DefNoteDuration); 569 dbgprintf("DefNoteDuration=%d\n", DefNoteDuration);
569 dbgprintf("DefNoteScale=%d\n", DefNoteScale); 570 dbgprintf("DefNoteScale=%d\n", DefNoteScale);
570 i++; 571 i++;
571 572
572 /* ------------------------- notes ------------------------------ */ 573 /* ------------------------- notes ------------------------------ */
573 while (buffer[i] != 0x00 && ringtone->NoteTone.NrCommands != MAX_RINGTONE_NOTES) { 574 while (buffer[i] != 0x00 && ringtone->NoteTone.NrCommands != MAX_RINGTONE_NOTES) {
574 switch(buffer[i]) { 575 switch(buffer[i]) {
575 case 'z': case 'Z': 576 case 'z': case 'Z':
576 switch (buffer[i+1]) { 577 switch (buffer[i+1]) {
577 case 'd': 578 case 'd':
578 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_DisableLED; 579 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_DisableLED;
579 ringtone->NoteTone.NrCommands++; 580 ringtone->NoteTone.NrCommands++;
580 break; 581 break;
581 case 'D': 582 case 'D':
582 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_EnableLED; 583 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_EnableLED;
583 ringtone->NoteTone.NrCommands++; 584 ringtone->NoteTone.NrCommands++;
584 break; 585 break;
585 case 'v': 586 case 'v':
586 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_DisableVibra; 587 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_DisableVibra;
587 ringtone->NoteTone.NrCommands++; 588 ringtone->NoteTone.NrCommands++;
588 break; 589 break;
589 case 'V': 590 case 'V':
590 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_EnableVibra; 591 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_EnableVibra;
591 ringtone->NoteTone.NrCommands++; 592 ringtone->NoteTone.NrCommands++;
592 break; 593 break;
593 case 'l': 594 case 'l':
594 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_DisableLight; 595 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_DisableLight;
595 ringtone->NoteTone.NrCommands++; 596 ringtone->NoteTone.NrCommands++;
596 break; 597 break;
597 case 'L': 598 case 'L':
598 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_EnableLight; 599 ringtone->NoteTone.Commands[ringtone->NoteTone.NrCommands].Type = RING_EnableLight;
599 ringtone->NoteTone.NrCommands++; 600 ringtone->NoteTone.NrCommands++;
600 } 601 }
601 break; 602 break;
602 case 'o': case 'O': 603 case 'o': case 'O':
603 switch (buffer[i+2]) { 604 switch (buffer[i+2]) {
604 case 4: DefNoteScale = Scale_440 ; break; 605 case 4: DefNoteScale = Scale_440 ; break;
605 case 5: DefNoteScale = Scale_880 ; break; 606 case 5: DefNoteScale = Scale_880 ; break;
606 case 6: DefNoteScale = Scale_1760; break; 607 case 6: DefNoteScale = Scale_1760; break;
607 case 7: DefNoteScale = Scale_3520; break; 608 case 7: DefNoteScale = Scale_3520; break;
608 } 609 }
609 break; 610 break;
610 case 's': case 'S': 611 case 's': case 'S':
611 switch (buffer[i+1]) { 612 switch (buffer[i+1]) {
612 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break; 613 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break;
613 case 'N': case 'n': DefNoteStyle=NaturalStyle; break; 614 case 'N': case 'n': DefNoteStyle=NaturalStyle; break;
614 case 'S': case 's': DefNoteStyle=StaccatoStyle; break; 615 case 'S': case 's': DefNoteStyle=StaccatoStyle; break;
615 } 616 }
616 switch (buffer[i+2]) { 617 switch (buffer[i+2]) {
617 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break; 618 case 'C': case 'c': DefNoteStyle=ContinuousStyle;break;
618 case 'N': case 'n': DefNoteStyle=NaturalStyle; break; 619 case 'N': case 'n': DefNoteStyle=NaturalStyle; break;
619 case 'S': case 's': DefNoteStyle=StaccatoStyle; break; 620 case 'S': case 's': DefNoteStyle=StaccatoStyle; break;
diff --git a/gammu/emb/gammu/gammu.pro b/gammu/emb/gammu/gammu.pro
index 6efc8e7..299de7f 100644
--- a/gammu/emb/gammu/gammu.pro
+++ b/gammu/emb/gammu/gammu.pro
@@ -1,53 +1,52 @@
1###################################################################### 1######################################################################
2# Automatically generated by qmake (1.07a) Fri Jul 30 22:22:02 2004 2# Automatically generated by qmake (1.07a) Fri Jul 30 22:22:02 2004
3###################################################################### 3######################################################################
4 4
5TEMPLATE = app 5TEMPLATE = app
6CONFIG += console
7DEPENDPATH += msvc06.mak \ 6DEPENDPATH += msvc06.mak \
8 msvc2003.mak \ 7 msvc2003.mak \
9 smsd \ 8 smsd \
10 depend/nokia \ 9 depend/nokia \
11 depend/siemens \ 10 depend/siemens \
12 depend/nokia/dct3trac 11 depend/nokia/dct3trac
13INCLUDEPATH += . smsd depend/nokia depend/nokia/dct3trac depend/siemens 12INCLUDEPATH += . smsd depend/nokia depend/nokia/dct3trac depend/siemens
14 CONFIG = qt warn_off release 13 CONFIG = warn_off release console
15# Input 14# Input
16 15
17HEADERS += gammu.h \ 16HEADERS += gammu.h \
18 sniff.h \ 17 sniff.h \
19 smsd/s_files.h \ 18 smsd/s_files.h \
20 smsd/s_mysql.h \ 19 smsd/s_mysql.h \
21 smsd/smsdcore.h \ 20 smsd/smsdcore.h \
22 depend/nokia/dct3.h \ 21 depend/nokia/dct3.h \
23 depend/nokia/dct4.h \ 22 depend/nokia/dct4.h \
24 depend/siemens/chiffre.h \ 23 depend/siemens/chiffre.h \
25 depend/siemens/dsiemens.h \ 24 depend/siemens/dsiemens.h \
26 depend/nokia/dct3trac/type-cc.h \ 25 depend/nokia/dct3trac/type-cc.h \
27 depend/nokia/dct3trac/type-mm.h \ 26 depend/nokia/dct3trac/type-mm.h \
28 depend/nokia/dct3trac/type-rr.h \ 27 depend/nokia/dct3trac/type-rr.h \
29 depend/nokia/dct3trac/type-sms.h \ 28 depend/nokia/dct3trac/type-sms.h \
30 depend/nokia/dct3trac/type-ss.h \ 29 depend/nokia/dct3trac/type-ss.h \
31 depend/nokia/dct3trac/wmx-gsm.h \ 30 depend/nokia/dct3trac/wmx-gsm.h \
32 depend/nokia/dct3trac/wmx-list.h \ 31 depend/nokia/dct3trac/wmx-list.h \
33 depend/nokia/dct3trac/wmx-sim.h \ 32 depend/nokia/dct3trac/wmx-sim.h \
34 depend/nokia/dct3trac/wmx-util.h \ 33 depend/nokia/dct3trac/wmx-util.h \
35 depend/nokia/dct3trac/wmx.h 34 depend/nokia/dct3trac/wmx.h
36SOURCES += gammu.c \ 35SOURCES += gammu.c \
37 sniff.c \ 36 sniff.c \
38 smsd/s_files.c \ 37 smsd/s_files.c \
39 smsd/smsdcore.c \ 38 smsd/smsdcore.c \
40 depend/nokia/dct3.c \ 39 depend/nokia/dct3.c \
41 depend/nokia/dct4.c \ 40 depend/nokia/dct4.c \
42 depend/siemens/chiffre.c \ 41 depend/siemens/chiffre.c \
43 depend/siemens/dsiemens.c \ 42 depend/siemens/dsiemens.c \
44 depend/nokia/dct3trac/wmx-gsm.c \ 43 depend/nokia/dct3trac/wmx-gsm.c \
45 depend/nokia/dct3trac/wmx-list.c \ 44 depend/nokia/dct3trac/wmx-list.c \
46 depend/nokia/dct3trac/wmx-sim.c \ 45 depend/nokia/dct3trac/wmx-sim.c \
47 depend/nokia/dct3trac/wmx-util.c \ 46 depend/nokia/dct3trac/wmx-util.c \
48 depend/nokia/dct3trac/wmx.c 47 depend/nokia/dct3trac/wmx.c
49 48
50LIBS += ../../../bin/libmicrogammu.so /usr/lib/libbluetooth.so /usr/lib/libsdp.so /usr/lib/libpthread.so 49LIBS += ../../../bin/libmicrogammu.so /usr/lib/libbluetooth.so /usr/lib/libsdp.so /usr/lib/libpthread.so
51DESTDIR = ../../../bin 50DESTDIR = ../../../bin
52OBJECTS_DIR = obj/unix 51OBJECTS_DIR = obj/unix
53TARGET = kammu \ No newline at end of file 52TARGET = kammu \ No newline at end of file
diff --git a/gammu/emb/gammu/gammuE.pro b/gammu/emb/gammu/gammuE.pro
index a1028cb..5010d8c 100644
--- a/gammu/emb/gammu/gammuE.pro
+++ b/gammu/emb/gammu/gammuE.pro
@@ -1,55 +1,57 @@
1###################################################################### 1######################################################################
2# Automatically generated by qmake (1.07a) Fri Jul 30 22:22:02 2004 2# Automatically generated by qmake (1.07a) Fri Jul 30 22:22:02 2004
3###################################################################### 3######################################################################
4 4
5TEMPLATE = app 5TEMPLATE = app
6DEPENDPATH += msvc06.mak \ 6DEPENDPATH += msvc06.mak \
7 msvc2003.mak \ 7 msvc2003.mak \
8 smsd \ 8 smsd \
9 depend/nokia \ 9 depend/nokia \
10 depend/siemens \ 10 depend/siemens \
11 depend/nokia/dct3trac 11 depend/nokia/dct3trac
12INCLUDEPATH += . smsd depend/nokia depend/nokia/dct3trac depend/siemens 12INCLUDEPATH += . smsd depend/nokia depend/nokia/dct3trac depend/siemens
13 CONFIG = qt warn_off release 13# console
14# Input 14# Input
15 15
16HEADERS += gammu.h \ 16HEADERS += gammu.h \
17 sniff.h \ 17 sniff.h \
18 smsd/s_files.h \ 18 smsd/s_files.h \
19 smsd/s_mysql.h \ 19 smsd/s_mysql.h \
20 smsd/smsdcore.h \ 20 smsd/smsdcore.h \
21 depend/nokia/dct3.h \ 21 depend/nokia/dct3.h \
22 depend/nokia/dct4.h \ 22 depend/nokia/dct4.h \
23 depend/siemens/chiffre.h \ 23 depend/siemens/chiffre.h \
24 depend/siemens/dsiemens.h \ 24 depend/siemens/dsiemens.h \
25 depend/nokia/dct3trac/type-cc.h \ 25 depend/nokia/dct3trac/type-cc.h \
26 depend/nokia/dct3trac/type-mm.h \ 26 depend/nokia/dct3trac/type-mm.h \
27 depend/nokia/dct3trac/type-rr.h \ 27 depend/nokia/dct3trac/type-rr.h \
28 depend/nokia/dct3trac/type-sms.h \ 28 depend/nokia/dct3trac/type-sms.h \
29 depend/nokia/dct3trac/type-ss.h \ 29 depend/nokia/dct3trac/type-ss.h \
30 depend/nokia/dct3trac/wmx-gsm.h \ 30 depend/nokia/dct3trac/wmx-gsm.h \
31 depend/nokia/dct3trac/wmx-list.h \ 31 depend/nokia/dct3trac/wmx-list.h \
32 depend/nokia/dct3trac/wmx-sim.h \ 32 depend/nokia/dct3trac/wmx-sim.h \
33 depend/nokia/dct3trac/wmx-util.h \ 33 depend/nokia/dct3trac/wmx-util.h \
34 depend/nokia/dct3trac/wmx.h 34 depend/nokia/dct3trac/wmx.h
35SOURCES += gammu.c \ 35SOURCES += gammu.c \
36 sniff.c \ 36 sniff.c \
37 smsd/s_files.c \ 37 smsd/s_files.c \
38 smsd/smsdcore.c \ 38 smsd/smsdcore.c \
39 depend/nokia/dct3.c \ 39 depend/nokia/dct3.c \
40 depend/nokia/dct4.c \ 40 depend/nokia/dct4.c \
41 depend/siemens/chiffre.c \ 41 depend/siemens/chiffre.c \
42 depend/siemens/dsiemens.c \ 42 depend/siemens/dsiemens.c \
43 depend/nokia/dct3trac/wmx-gsm.c \ 43 depend/nokia/dct3trac/wmx-gsm.c \
44 depend/nokia/dct3trac/wmx-list.c \ 44 depend/nokia/dct3trac/wmx-list.c \
45 depend/nokia/dct3trac/wmx-sim.c \ 45 depend/nokia/dct3trac/wmx-sim.c \
46 depend/nokia/dct3trac/wmx-util.c \ 46 depend/nokia/dct3trac/wmx-util.c \
47 depend/nokia/dct3trac/wmx.c 47 depend/nokia/dct3trac/wmx.c
48 48
49LIBS += -L$(QPEDIR)/lib
49LIBS += -lmicrogammu 50LIBS += -lmicrogammu
50LIBS += -lbluetooth 51LIBS += -lbluetooth
51LIBS += -lsdp 52LIBS += -lsdp
52LIBS += -lpthread 53LIBS += -lpthread
54 CONFIG = warn_off release console
53DESTDIR=$(QPEDIR)/bin 55DESTDIR=$(QPEDIR)/bin
54OBJECTS_DIR = obj/$(PLATFORM) 56OBJECTS_DIR = obj/$(PLATFORM)
55TARGET = kammu \ No newline at end of file 57TARGET = kammu \ No newline at end of file