Diffstat (limited to 'gammu/emb/common/service/gsmring.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | gammu/emb/common/service/gsmring.c | 6 |
1 files changed, 5 insertions, 1 deletions
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 | |||
@@ -95,26 +95,30 @@ GSM_Error savewav(FILE *file, GSM_Ringtone *ringtone) | |||
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 | #ifdef DESKTOP_VERSION |
108 | DATA_Buffer[j] = ((int)(sin(phase*PI)*50000)); | ||
109 | #else | ||
110 | // we have no sin on Zaurus | ||
108 | DATA_Buffer[j] = ((int)(0.5*50000)); | 111 | DATA_Buffer[j] = ((int)(0.5*50000)); |
112 | #endif | ||
109 | phase = phase + phase_step; | 113 | phase = phase + phase_step; |
110 | length++; | 114 | length++; |
111 | } | 115 | } |
112 | fwrite(&DATA_Buffer,sizeof(short),j,file); | 116 | fwrite(&DATA_Buffer,sizeof(short),j,file); |
113 | } | 117 | } |
114 | } | 118 | } |
115 | 119 | ||
116 | wavfilesize = sizeof(WAV_Header) + sizeof(FMT_Header) + sizeof(DATA_Header) + length*2; | 120 | wavfilesize = sizeof(WAV_Header) + sizeof(FMT_Header) + sizeof(DATA_Header) + length*2; |
117 | WAV_Header[4] = ((unsigned char)wavfilesize % 256); | 121 | WAV_Header[4] = ((unsigned char)wavfilesize % 256); |
118 | WAV_Header[5] = ((unsigned char)wavfilesize / 256); | 122 | WAV_Header[5] = ((unsigned char)wavfilesize / 256); |
119 | WAV_Header[6] = ((unsigned char)wavfilesize / (256*256)); | 123 | WAV_Header[6] = ((unsigned char)wavfilesize / (256*256)); |
120 | WAV_Header[7] = ((unsigned char)wavfilesize / (256*256*256)); | 124 | WAV_Header[7] = ((unsigned char)wavfilesize / (256*256*256)); |