int DefNoteTempo=63;
u8 DefNoteStyle=ContinuousStyle;
- int CurrentNote;\r
- int buffer[6];\r
- int i,j,k=0;\r
- \r
- /* Saves ringtone name */\r
- fprintf(file,_("%s:"),ringtone->name);\r
-\r
- /* Find the most frequently used duration and use this for the default */\r
- \r
- for (i=0;i<6;i++) buffer[i]=0;\r
- for (i=0;i<ringtone->NrNotes;i++) {\r
- switch (ringtone->notes[i].duration) {\r
- case 192:buffer[0]++; break;\r
- case 128:buffer[0]++; break;\r
- case 96:buffer[1]++; break;\r
- case 64:buffer[1]++; break;\r
- case 48:buffer[2]++; break;\r
- case 32:buffer[2]++; break;\r
- case 24:buffer[3]++; break;\r
- case 16:buffer[3]++; break;\r
- case 12:buffer[4]++; break;\r
- case 8:buffer[4]++; break;\r
- case 6:buffer[5]++; break;\r
- case 4:buffer[5]++; break;\r
- }\r
- }\r
-\r
- /* Now find the most frequently used */\r
- j=0;\r
- for (i=0;i<6;i++) {\r
- if (buffer[i]>j) {\r
- k=i; \r
- j=buffer[i];\r
- }\r
- }\r
-\r
- /* Finally convert and save the default duration */\r
-\r
- switch (k) {\r
- case 0: DefNoteDuration=128; fprintf(file, _("d=1,")); break; \r
- case 1: DefNoteDuration= 64; fprintf(file, _("d=2,")); break; \r
- case 2: DefNoteDuration= 32; fprintf(file, _("d=4,")); break; \r
- case 3: DefNoteDuration= 16; fprintf(file, _("d=8,")); break; \r
- case 4: DefNoteDuration= 8; fprintf(file,_("d=16,")); break; \r
- case 5: DefNoteDuration= 4; fprintf(file,_("d=32,")); break; \r
- default: DefNoteDuration= 16; fprintf(file, _("d=8,")); break; \r
- } \r
-\r
-\r
- /* Find the most frequently used scale and use this for the default */\r
-\r
- for (i=0;i<6;i++) buffer[i]=0;\r
- for (i=0;i<ringtone->NrNotes;i++) {\r
- if (ringtone->notes[i].note!=255) {\r
- buffer[ringtone->notes[i].note/14]++;\r
- }\r
- }\r
- j=0;\r
- for (i=0;i<6;i++) {\r
- if (buffer[i]>j) {\r
- DefNoteScale=i;\r
- j=buffer[i];\r
- }\r
- }\r
+ 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;i<ringtone->NrNotes;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;i<ringtone->NrNotes;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 */\r
- fprintf(file,_("o=%i,"),DefNoteScale+4);\r \r
+ /* 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;
}
-\r
+
/* Save the default tempo */
fprintf(file,_("b=%i,"),DefNoteTempo);
/* Save the default loop */
fprintf(file,_("l=%i:"),ringtone->Loop);
-#ifdef DEBUG\r
- printf("DefNoteDuration=%d\n", DefNoteDuration);\r
- printf("DefNoteScale=%d\n", DefNoteScale);\r
- printf("Number of notes=%d\n",ringtone->NrNotes);\r
-#endif\r
- \r
- /* Now loop round for each note */\r
-\r
- for (i=0;i<ringtone->NrNotes;i++) {\r
- CurrentNote=ringtone->notes[i].note;\r
-\r
+#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;i<ringtone->NrNotes;i++) {
+ CurrentNote=ringtone->notes[i].note;
+
if (ringtone->notes[i].style!=DefNoteStyle) {
DefNoteStyle=ringtone->notes[i].style;
switch (DefNoteStyle) {
case NaturalStyle : fprintf(file,_("s=N")); break;
case ContinuousStyle: fprintf(file,_("s=C")); break;
}
- /* And a separator before next note */\r
- if (i!=ringtone->NrNotes-1)\r
- fprintf(file,_(","));\r
+ /* 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);\r
- if (i!=ringtone->NrNotes-1)\r
- fprintf(file,_(","));\r
+ 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 */\r
- if (ringtone->notes[i].duration!=DefNoteDuration) {\r
- switch (ringtone->notes[i].duration) {\r
- case 192: fprintf(file, _("1")); break; //192=128*1.5\r
- case 128: fprintf(file, _("1")); break;\r
- case 96: fprintf(file, _("2")); break; //96=64*1.5\r
- case 64: fprintf(file, _("2")); break;\r
- case 48: fprintf(file, _("4")); break; //48=32*1.5\r
- case 32: fprintf(file, _("4")); break;\r
- case 24: fprintf(file, _("8")); break; //24=16*1.5\r
- case 16: fprintf(file, _("8")); break;\r
- case 12: fprintf(file,_("16")); break; //12=8*1.5\r
- case 8: fprintf(file,_("16")); break;\r
- case 6: fprintf(file,_("32")); break; //6=4*1.5\r
- case 4: fprintf(file,_("32")); break;\r
- default: \r
- break;\r
- }\r
- }\r
- \r
- /* Now save the actual note */\r
- switch (GSM_GetNote(CurrentNote)) {\r
- case Note_C :fprintf(file,_("c"));break;\r
- case Note_Cis:fprintf(file,_("c#"));break;\r
- case Note_D :fprintf(file,_("d"));break;\r
- case Note_Dis:fprintf(file,_("d#"));break;\r
- case Note_E :fprintf(file,_("e"));break;\r
- case Note_F :fprintf(file,_("f"));break;\r
- case Note_Fis:fprintf(file,_("f#"));break;\r
- case Note_G :fprintf(file,_("g"));break;\r
- case Note_Gis:fprintf(file,_("g#"));break;\r
- case Note_A :fprintf(file,_("a"));break;\r
- case Note_Ais:fprintf(file,_("a#"));break;\r
- case Note_H :fprintf(file,_("h"));break;\r
- default :fprintf(file,_("p"));break; //Pause ?\r
- }\r
-\r
- /* Saving info about special duration */\r
- if (ringtone->notes[i].duration==128*1.5 ||\r
- ringtone->notes[i].duration==64*1.5 ||\r
- ringtone->notes[i].duration==32*1.5 ||\r
- ringtone->notes[i].duration==16*1.5 ||\r
- ringtone->notes[i].duration==8*1.5 ||\r
- ringtone->notes[i].duration==4*1.5)\r
- fprintf(file,_("."));\r
- \r
- /* This note has a scale different than the default, so save it */\r
- if ( (CurrentNote!=255) && (CurrentNote/14!=DefNoteScale))\r
- fprintf(file,_("%i"),(CurrentNote/14)+4);\r
- \r
- /* And a separator before next note */\r
- if (i!=ringtone->NrNotes-1)\r
- fprintf(file,_(","));\r
-\r
- }\r
+ /* 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)