Skip to content

Commit e2f935e

Browse files
committed
Optimize MUSIC_PlayValue
1 parent 873d894 commit e2f935e

2 files changed

Lines changed: 15 additions & 16 deletions

File tree

src/extended_audio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ static int AUDIO_VoiceAvailable() {
212212

213213
int AUDIO_AddQueue(u16 music) {
214214
if (!AUDIO_VoiceAvailable() || num_audio == AUDIO_QUEUE_LENGTH) {
215-
printf("Voice: queue full or voice not available, cannot add new mp3 #%d\n",music);
215+
printf("Voice: queue full or voice not available, cannot add new mp3 #%d\n", music);
216216
return 0;
217217
}
218218
CONFIG_VoiceParse(music);

src/music.c

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -272,25 +272,24 @@ void MUSIC_PlayValue(u16 music, s32 value, u8 unit, u8 prec)
272272
}
273273
}
274274

275-
if (!AUDIO_AddQueue(music)) {
276-
if (music < MUSIC_TOTAL)
277-
MUSIC_Play(music);
275+
if ( !AUDIO_AddQueue(music) && (music < MUSIC_TOTAL) ) {
276+
MUSIC_Play(music);
278277
return;
279278
}
280279

281280
// Play minutes/hours/seconds for timers
282281
if (unit == VOICE_UNIT_TIME) {
283282
if (value >= 3600) {
284283
i = value / 3600;
284+
value %= 3600;
285285
AUDIO_AddQueue(i + MUSIC_TOTAL);
286286
AUDIO_AddQueue(VOICE_UNIT_HOURS + VOICE_UNIT_OFFSET);
287-
value %= 3600;
288287
}
289288
if (value >= 60) {
290289
i = value / 60;
290+
value %= 60;
291291
AUDIO_AddQueue(i + MUSIC_TOTAL);
292292
AUDIO_AddQueue(VOICE_UNIT_MINUTES + VOICE_UNIT_OFFSET);
293-
value %= 60;
294293
}
295294
if (value > 0) {
296295
AUDIO_AddQueue(value + MUSIC_TOTAL);
@@ -302,7 +301,7 @@ void MUSIC_PlayValue(u16 music, s32 value, u8 unit, u8 prec)
302301
// Add minus sign for negative number
303302
if (value < 0) {
304303
AUDIO_AddQueue(VOICE_UNIT_MINUS + VOICE_UNIT_OFFSET);
305-
value *= -1;
304+
value = -value;
306305
}
307306

308307
//Add precision digits
@@ -315,31 +314,31 @@ void MUSIC_PlayValue(u16 music, s32 value, u8 unit, u8 prec)
315314
digits[digit_count++] = VOICE_DEC_SEP;
316315
}
317316

318-
// Special case value == 0 and not playing TIME
319-
if (value == 0 && unit != VOICE_UNIT_TIME)
317+
// Special case value == 0
318+
if (value == 0)
320319
digits[digit_count++] = 0;
321320
// Get single digits from remaining value
322321
while (value > 0) {
323-
if(value > 999) {
322+
if (value > 999) {
324323
thousands = value / 1000;
325324
value %= 1000;
326325
}
327-
if(value > 100) {
326+
if (value > 100) {
328327
digits[digit_count++] = value % 100;
329328
value /= 100;
330329
digits[digit_count++] = value + 99;
331-
if (thousands){
332-
digits[digit_count++] = 109; // MP3 for "thousands"
333-
digits[digit_count++] = thousands;
330+
if (thousands) {
331+
digits[digit_count++] = 109; // MP3 for "thousands"
332+
digits[digit_count++] = thousands;
334333
}
335334
break;
336335
}
337-
if(value < 101 && value > 0) {
336+
if (value < 101 && value > 0) {
338337
digits[digit_count++] = value;
339338
break;
340339
}
341340
else {
342-
if (thousands){
341+
if (thousands) {
343342
digits[digit_count++] = 109; // MP3 for "thousands"
344343
digits[digit_count++] = thousands;
345344
}

0 commit comments

Comments
 (0)