X-Git-Url: https://git.jankratochvil.net/?p=gnokii.git;a=blobdiff_plain;f=common%2Ffiles%2Fgsm-filetypes.c;h=3c389bbea1bdef9ebf430387ad4f7ba8681f6f44;hp=e431fa45495a94f5ed0b4c486aa641212acf25aa;hb=c70d730109945bd20579579213102ae02c764e21;hpb=9243ae4a92a0e97f3c850018930fc50ff3f75544 diff --git a/common/files/gsm-filetypes.c b/common/files/gsm-filetypes.c index e431fa4..3c389bb 100644 --- a/common/files/gsm-filetypes.c +++ b/common/files/gsm-filetypes.c @@ -648,101 +648,101 @@ void saverttl(FILE *file, GSM_Ringtone *ringtone) int DefNoteTempo=63; u8 DefNoteStyle=ContinuousStyle; - int CurrentNote; - int buffer[6]; - int i,j,k=0; - - /* Saves ringtone name */ - fprintf(file,_("%s:"),ringtone->name); - - /* Find the most frequently used duration and use this for the default */ - - for (i=0;i<6;i++) buffer[i]=0; - for (i=0;iNrNotes;i++) { - switch (ringtone->notes[i].duration) { - case 192:buffer[0]++; break; - case 128:buffer[0]++; break; - case 96:buffer[1]++; break; - case 64:buffer[1]++; break; - case 48:buffer[2]++; break; - case 32:buffer[2]++; break; - case 24:buffer[3]++; break; - case 16:buffer[3]++; break; - case 12:buffer[4]++; break; - case 8:buffer[4]++; break; - case 6:buffer[5]++; break; - case 4:buffer[5]++; break; - } - } - - /* Now find the most frequently used */ - j=0; - for (i=0;i<6;i++) { - if (buffer[i]>j) { - k=i; - j=buffer[i]; - } - } - - /* Finally convert and save the default duration */ - - switch (k) { - case 0: DefNoteDuration=128; fprintf(file, _("d=1,")); break; - case 1: DefNoteDuration= 64; fprintf(file, _("d=2,")); break; - case 2: DefNoteDuration= 32; fprintf(file, _("d=4,")); break; - case 3: DefNoteDuration= 16; fprintf(file, _("d=8,")); break; - case 4: DefNoteDuration= 8; fprintf(file,_("d=16,")); break; - case 5: DefNoteDuration= 4; fprintf(file,_("d=32,")); break; - default: DefNoteDuration= 16; fprintf(file, _("d=8,")); break; - } - - - /* Find the most frequently used scale and use this for the default */ - - for (i=0;i<6;i++) buffer[i]=0; - for (i=0;iNrNotes;i++) { - if (ringtone->notes[i].note!=255) { - buffer[ringtone->notes[i].note/14]++; - } - } - j=0; - for (i=0;i<6;i++) { - if (buffer[i]>j) { - DefNoteScale=i; - j=buffer[i]; - } - } + int CurrentNote; + int buffer[6]; + int i,j,k=0; + + /* Saves ringtone name */ + fprintf(file,_("%s:"),ringtone->name); + + /* Find the most frequently used duration and use this for the default */ + + for (i=0;i<6;i++) buffer[i]=0; + for (i=0;iNrNotes;i++) { + switch (ringtone->notes[i].duration) { + case 192:buffer[0]++; break; + case 128:buffer[0]++; break; + case 96:buffer[1]++; break; + case 64:buffer[1]++; break; + case 48:buffer[2]++; break; + case 32:buffer[2]++; break; + case 24:buffer[3]++; break; + case 16:buffer[3]++; break; + case 12:buffer[4]++; break; + case 8:buffer[4]++; break; + case 6:buffer[5]++; break; + case 4:buffer[5]++; break; + } + } + + /* Now find the most frequently used */ + j=0; + for (i=0;i<6;i++) { + if (buffer[i]>j) { + k=i; + j=buffer[i]; + } + } + + /* Finally convert and save the default duration */ + + switch (k) { + case 0: DefNoteDuration=128; fprintf(file, _("d=1,")); break; + case 1: DefNoteDuration= 64; fprintf(file, _("d=2,")); break; + case 2: DefNoteDuration= 32; fprintf(file, _("d=4,")); break; + case 3: DefNoteDuration= 16; fprintf(file, _("d=8,")); break; + case 4: DefNoteDuration= 8; fprintf(file,_("d=16,")); break; + case 5: DefNoteDuration= 4; fprintf(file,_("d=32,")); break; + default: DefNoteDuration= 16; fprintf(file, _("d=8,")); break; + } + + + /* Find the most frequently used scale and use this for the default */ + + for (i=0;i<6;i++) buffer[i]=0; + for (i=0;iNrNotes;i++) { + if (ringtone->notes[i].note!=255) { + buffer[ringtone->notes[i].note/14]++; + } + } + j=0; + for (i=0;i<6;i++) { + if (buffer[i]>j) { + DefNoteScale=i; + j=buffer[i]; + } + } if (ringtone->NrNotes!=0) { DefNoteTempo=ringtone->notes[0].tempo; DefNoteStyle=ringtone->notes[0].style; } - /* Save the default scale */ - fprintf(file,_("o=%i,"),DefNoteScale+4); + /* Save the default scale */ + fprintf(file,_("o=%i,"),DefNoteScale+4); switch (DefNoteStyle) { case StaccatoStyle: fprintf(file,_("s=S,")); break; case NaturalStyle : fprintf(file,_("s=N,")); break; } - + /* Save the default tempo */ fprintf(file,_("b=%i,"),DefNoteTempo); /* Save the default loop */ fprintf(file,_("l=%i:"),ringtone->Loop); -#ifdef DEBUG - printf("DefNoteDuration=%d\n", DefNoteDuration); - printf("DefNoteScale=%d\n", DefNoteScale); - printf("Number of notes=%d\n",ringtone->NrNotes); -#endif - - /* Now loop round for each note */ - - for (i=0;iNrNotes;i++) { - CurrentNote=ringtone->notes[i].note; - +#ifdef DEBUG + printf("DefNoteDuration=%d\n", DefNoteDuration); + printf("DefNoteScale=%d\n", DefNoteScale); + printf("Number of notes=%d\n",ringtone->NrNotes); +#endif + + /* Now loop round for each note */ + + for (i=0;iNrNotes;i++) { + CurrentNote=ringtone->notes[i].note; + if (ringtone->notes[i].style!=DefNoteStyle) { DefNoteStyle=ringtone->notes[i].style; switch (DefNoteStyle) { @@ -750,73 +750,73 @@ void saverttl(FILE *file, GSM_Ringtone *ringtone) case NaturalStyle : fprintf(file,_("s=N")); break; case ContinuousStyle: fprintf(file,_("s=C")); break; } - /* And a separator before next note */ - if (i!=ringtone->NrNotes-1) - fprintf(file,_(",")); + /* And a separator before next note */ + if (i!=ringtone->NrNotes-1) + fprintf(file,_(",")); } if (ringtone->notes[i].tempo!=DefNoteTempo) { DefNoteTempo=ringtone->notes[i].tempo; - fprintf(file,_("b=%i"),DefNoteTempo); - if (i!=ringtone->NrNotes-1) - fprintf(file,_(",")); + fprintf(file,_("b=%i"),DefNoteTempo); + if (i!=ringtone->NrNotes-1) + fprintf(file,_(",")); } - /* This note has a duration different than the default. We must save it */ - if (ringtone->notes[i].duration!=DefNoteDuration) { - switch (ringtone->notes[i].duration) { - case 192: fprintf(file, _("1")); break; //192=128*1.5 - case 128: fprintf(file, _("1")); break; - case 96: fprintf(file, _("2")); break; //96=64*1.5 - case 64: fprintf(file, _("2")); break; - case 48: fprintf(file, _("4")); break; //48=32*1.5 - case 32: fprintf(file, _("4")); break; - case 24: fprintf(file, _("8")); break; //24=16*1.5 - case 16: fprintf(file, _("8")); break; - case 12: fprintf(file,_("16")); break; //12=8*1.5 - case 8: fprintf(file,_("16")); break; - case 6: fprintf(file,_("32")); break; //6=4*1.5 - case 4: fprintf(file,_("32")); break; - default: - break; - } - } - - /* Now save the actual note */ - switch (GSM_GetNote(CurrentNote)) { - case Note_C :fprintf(file,_("c"));break; - case Note_Cis:fprintf(file,_("c#"));break; - case Note_D :fprintf(file,_("d"));break; - case Note_Dis:fprintf(file,_("d#"));break; - case Note_E :fprintf(file,_("e"));break; - case Note_F :fprintf(file,_("f"));break; - case Note_Fis:fprintf(file,_("f#"));break; - case Note_G :fprintf(file,_("g"));break; - case Note_Gis:fprintf(file,_("g#"));break; - case Note_A :fprintf(file,_("a"));break; - case Note_Ais:fprintf(file,_("a#"));break; - case Note_H :fprintf(file,_("h"));break; - default :fprintf(file,_("p"));break; //Pause ? - } - - /* Saving info about special duration */ - if (ringtone->notes[i].duration==128*1.5 || - ringtone->notes[i].duration==64*1.5 || - ringtone->notes[i].duration==32*1.5 || - ringtone->notes[i].duration==16*1.5 || - ringtone->notes[i].duration==8*1.5 || - ringtone->notes[i].duration==4*1.5) - fprintf(file,_(".")); - - /* This note has a scale different than the default, so save it */ - if ( (CurrentNote!=255) && (CurrentNote/14!=DefNoteScale)) - fprintf(file,_("%i"),(CurrentNote/14)+4); - - /* And a separator before next note */ - if (i!=ringtone->NrNotes-1) - fprintf(file,_(",")); - - } + /* This note has a duration different than the default. We must save it */ + if (ringtone->notes[i].duration!=DefNoteDuration) { + switch (ringtone->notes[i].duration) { + case 192: fprintf(file, _("1")); break; //192=128*1.5 + case 128: fprintf(file, _("1")); break; + case 96: fprintf(file, _("2")); break; //96=64*1.5 + case 64: fprintf(file, _("2")); break; + case 48: fprintf(file, _("4")); break; //48=32*1.5 + case 32: fprintf(file, _("4")); break; + case 24: fprintf(file, _("8")); break; //24=16*1.5 + case 16: fprintf(file, _("8")); break; + case 12: fprintf(file,_("16")); break; //12=8*1.5 + case 8: fprintf(file,_("16")); break; + case 6: fprintf(file,_("32")); break; //6=4*1.5 + case 4: fprintf(file,_("32")); break; + default: + break; + } + } + + /* Now save the actual note */ + switch (GSM_GetNote(CurrentNote)) { + case Note_C :fprintf(file,_("c"));break; + case Note_Cis:fprintf(file,_("c#"));break; + case Note_D :fprintf(file,_("d"));break; + case Note_Dis:fprintf(file,_("d#"));break; + case Note_E :fprintf(file,_("e"));break; + case Note_F :fprintf(file,_("f"));break; + case Note_Fis:fprintf(file,_("f#"));break; + case Note_G :fprintf(file,_("g"));break; + case Note_Gis:fprintf(file,_("g#"));break; + case Note_A :fprintf(file,_("a"));break; + case Note_Ais:fprintf(file,_("a#"));break; + case Note_H :fprintf(file,_("h"));break; + default :fprintf(file,_("p"));break; //Pause ? + } + + /* Saving info about special duration */ + if (ringtone->notes[i].duration==128*1.5 || + ringtone->notes[i].duration==64*1.5 || + ringtone->notes[i].duration==32*1.5 || + ringtone->notes[i].duration==16*1.5 || + ringtone->notes[i].duration==8*1.5 || + ringtone->notes[i].duration==4*1.5) + fprintf(file,_(".")); + + /* This note has a scale different than the default, so save it */ + if ( (CurrentNote!=255) && (CurrentNote/14!=DefNoteScale)) + fprintf(file,_("%i"),(CurrentNote/14)+4); + + /* And a separator before next note */ + if (i!=ringtone->NrNotes-1) + fprintf(file,_(",")); + + } } void WriteVarLen(char* midifile, int* current, long value) @@ -2081,7 +2081,10 @@ void loadlmbpbkentry(unsigned char *buffer, unsigned char *buffer2, GSM_Backup * void loadlmbstartupentry(unsigned char *buffer, unsigned char *buffer2, GSM_Backup *backup) { - int i,j,z; + int i,j; +#ifdef DEBUG + int z; +#endif j=1; for (i=0;i