summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tools/voicefont.c20
1 files changed, 9 insertions, 11 deletions
diff --git a/tools/voicefont.c b/tools/voicefont.c
index df2577b455..546d0052f4 100644
--- a/tools/voicefont.c
+++ b/tools/voicefont.c
@@ -33,11 +33,9 @@
33 33
34/* endian conversion macros */ 34/* endian conversion macros */
35#if defined(__BIG_ENDIAN__) 35#if defined(__BIG_ENDIAN__)
36#define SWAP2(x) (x) 36#define UINT_TO_BE(x) (x)
37#define SWAP4(x) (x)
38#else 37#else
39#define SWAP2(x) ((((unsigned)(x)>>8) & 0x00ff) | (((unsigned)(x)<<8) & 0xff00)) 38#define UINT_TO_BE(x) ((((unsigned)(x)>>24) & 0x000000ff) |\
40#define SWAP4(x) ((((unsigned)(x)>>24) & 0x000000ff) |\
41 (((unsigned)(x)>>8) & 0x0000ff00) |\ 39 (((unsigned)(x)>>8) & 0x0000ff00) |\
42 (((unsigned)(x)<<8) & 0x00ff0000) |\ 40 (((unsigned)(x)<<8) & 0x00ff0000) |\
43 (((unsigned)(x)<<24) & 0xff000000)) 41 (((unsigned)(x)<<24) & 0xff000000))
@@ -163,24 +161,24 @@ int voicefont(FILE* voicefontids,int targetnum,char* filedir, FILE* output)
163 /* Create the file format: */ 161 /* Create the file format: */
164 162
165 /* 1st 32 bit value in the file is the version number */ 163 /* 1st 32 bit value in the file is the version number */
166 value = SWAP4(400); /* 4.00 */ 164 value = UINT_TO_BE(400); /* 4.00 */
167 fwrite(&value, sizeof(value), 1, output); 165 fwrite(&value, sizeof(value), 1, output);
168 166
169 /* 2nd 32 bit value in the file is the id number for the target 167 /* 2nd 32 bit value in the file is the id number for the target
170 we made the voce file for */ 168 we made the voce file for */
171 value = SWAP4(targetnum); 169 value = UINT_TO_BE(targetnum);
172 fwrite(&value, sizeof(value), 1, output); 170 fwrite(&value, sizeof(value), 1, output);
173 171
174 /* 3rd 32 bit value in the file is the header size (= 1st table position) */ 172 /* 3rd 32 bit value in the file is the header size (= 1st table position) */
175 value = SWAP4(HEADER_SIZE); /* version, target id, header size, number1, number2 */ 173 value = UINT_TO_BE(HEADER_SIZE); /* version, target id, header size, number1, number2 */
176 fwrite(&value, sizeof(value), 1, output); 174 fwrite(&value, sizeof(value), 1, output);
177 175
178 /* 4th 32 bit value in the file is the number of clips in 1st table */ 176 /* 4th 32 bit value in the file is the number of clips in 1st table */
179 value = SWAP4(count-count_voiceonly); 177 value = UINT_TO_BE(count-count_voiceonly);
180 fwrite(&value, sizeof(value), 1, output); 178 fwrite(&value, sizeof(value), 1, output);
181 179
182 /* 5th bit value in the file is the number of clips in 2nd table */ 180 /* 5th bit value in the file is the number of clips in 2nd table */
183 value = SWAP4(count_voiceonly); 181 value = UINT_TO_BE(count_voiceonly);
184 fwrite(&value, sizeof(value), 1, output); 182 fwrite(&value, sizeof(value), 1, output);
185 183
186 /* then followed by offset/size pairs for each clip */ 184 /* then followed by offset/size pairs for each clip */
@@ -199,9 +197,9 @@ int voicefont(FILE* voicefontids,int targetnum,char* filedir, FILE* output)
199 continue; 197 continue;
200 } 198 }
201 199
202 value = SWAP4(pos[i]); /* position */ 200 value = UINT_TO_BE(pos[i]); /* position */
203 fwrite(&value, sizeof(value), 1,output); 201 fwrite(&value, sizeof(value), 1,output);
204 value = SWAP4(size[i]); /* size */ 202 value = UINT_TO_BE(size[i]); /* size */
205 fwrite(&value, sizeof(value), 1, output); 203 fwrite(&value, sizeof(value), 1, output);
206 } /* for i */ 204 } /* for i */
207 } /* for j */ 205 } /* for j */