-rw-r--r-- | gammu/emb/common/common.pro | 1 | ||||
-rw-r--r-- | gammu/emb/common/service/gsmring.c | 6 |
2 files changed, 6 insertions, 1 deletions
diff --git a/gammu/emb/common/common.pro b/gammu/emb/common/common.pro index 9342cb7..0e719ee 100644 --- a/gammu/emb/common/common.pro +++ b/gammu/emb/common/common.pro @@ -143,44 +143,45 @@ device/bluetoth/affix.c \ device/bluetoth/bluez.c \ device/bluetoth/blue_w32.c \ device/bluetoth/bluetoth.c \ device/serial/ser_djg.c \ device/irda/irda.c \ device/devfunc.c \ protocol/at/at.c \ protocol/alcatel/alcabus.c \ protocol/nokia/mbus2.c \ protocol/nokia/fbus2.c \ protocol/nokia/phonet.c \ protocol/obex/obex.c \ protocol/symbian/mrouter.c \ phone/pfunc.c \ phone/at/atgen.c \ phone/at/siemens.c \ phone/at/sonyeric.c \ phone/alcatel/alcatel.c \ phone/nokia/dct3/n6110.c \ phone/nokia/dct3/n7110.c \ phone/nokia/dct3/n9210.c \ phone/nokia/dct3/dct3func.c \ phone/nokia/dct4/n3320.c \ phone/nokia/dct4/n3650.c \ phone/nokia/dct4/n6510.c \ phone/nokia/dct4/dct4func.c \ phone/nokia/nauto.c \ phone/nokia/nfunc.c \ phone/nokia/nfuncold.c \ phone/obex/obexgen.c \ phone/symbian/mroutgen.c +DEFINES += DESKTOP_VERSION TARGET = microgammu CONFIG = warn_off release console DESTDIR = ../../../bin OBJECTS_DIR = obj/unix MOC_DIR = moc/unix unix: { SOURCES += device/serial/ser_unx.c } win32:{ SOURCES += device/serial/ser_w32.c } diff --git a/gammu/emb/common/service/gsmring.c b/gammu/emb/common/service/gsmring.c index f7f7082..7df46f1 100644 --- a/gammu/emb/common/service/gsmring.c +++ b/gammu/emb/common/service/gsmring.c @@ -75,66 +75,70 @@ int GSM_RingNoteGetFullDuration(GSM_RingNote Note) # define PI 3.141592654 #endif #define WAV_SAMPLE_RATE 44100 GSM_Error savewav(FILE *file, GSM_Ringtone *ringtone) { unsigned char WAV_Header[] = { 'R','I','F','F', 0x00,0x00,0x00,0x00, /* Length */ 'W','A','V','E'}; unsigned char FMT_Header[] = {'f','m','t',' ', 0x10,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x44,0xac, 0x00,0x00,0x88,0x58,0x01,0x00,0x02,0x00,0x10,0x00}; unsigned char DATA_Header[] = { 'd','a','t','a', 0x00,0x00,0x00,0x00}; /* Length */ short DATA_Buffer[60000]; long wavfilesize; GSM_RingNote *Note; long i,j,length=0; double phase=0,phase_step; fwrite(&WAV_Header, 1, sizeof(WAV_Header), file); fwrite(&FMT_Header, 1, sizeof(FMT_Header), file); fwrite(&DATA_Header, 1, sizeof(DATA_Header), file); for (i=0;i<ringtone->NoteTone.NrCommands;i++) { if (ringtone->NoteTone.Commands[i].Type == RING_Note) { Note = &ringtone->NoteTone.Commands[i].Note; phase_step = GSM_RingNoteGetFrequency(*Note)*WAV_SAMPLE_RATE*1.5; for (j=0;j<((long)(GSM_RingNoteGetFullDuration(*Note)*WAV_SAMPLE_RATE/70));j++) { - /*DATA_Buffer[j] = ((int)(sin(phase*PI)*50000));*/ +#ifdef DESKTOP_VERSION + DATA_Buffer[j] = ((int)(sin(phase*PI)*50000)); +#else + // we have no sin on Zaurus DATA_Buffer[j] = ((int)(0.5*50000)); +#endif phase = phase + phase_step; length++; } fwrite(&DATA_Buffer,sizeof(short),j,file); } } wavfilesize = sizeof(WAV_Header) + sizeof(FMT_Header) + sizeof(DATA_Header) + length*2; WAV_Header[4] = ((unsigned char)wavfilesize % 256); WAV_Header[5] = ((unsigned char)wavfilesize / 256); WAV_Header[6] = ((unsigned char)wavfilesize / (256*256)); WAV_Header[7] = ((unsigned char)wavfilesize / (256*256*256)); wavfilesize = wavfilesize - 54; DATA_Header[4] = ((unsigned char)wavfilesize % 256); DATA_Header[5] = ((unsigned char)wavfilesize / 256); DATA_Header[6] = ((unsigned char)wavfilesize / (256*256)); DATA_Header[7] = ((unsigned char)wavfilesize / (256*256*256)); fseek( file, 0, SEEK_SET); fwrite(&WAV_Header, 1, sizeof(WAV_Header), file); fwrite(&FMT_Header, 1, sizeof(FMT_Header), file); fwrite(&DATA_Header, 1, sizeof(DATA_Header), file); return ERR_NONE; } static GSM_Error savebin(FILE *file, GSM_Ringtone *ringtone) { char nullchar=0x00; fwrite(&nullchar,1,1,file); fwrite(&nullchar,1,1,file); |