summaryrefslogtreecommitdiffabout
Unidiff
Diffstat (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
@@ -80,107 +80,107 @@ HEADERS += config.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
@@ -84,96 +84,97 @@ HEADERS += config.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
@@ -11,193 +11,194 @@
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 }
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