summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/plugins/announce_status.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/apps/plugins/announce_status.c b/apps/plugins/announce_status.c
index fa9e783fd8..9df6fef7bc 100644
--- a/apps/plugins/announce_status.c
+++ b/apps/plugins/announce_status.c
@@ -411,13 +411,15 @@ void thread(void)
411 interval = gAnnounce.interval * HZ; 411 interval = gAnnounce.interval * HZ;
412 switch (ev.id) 412 switch (ev.id)
413 { 413 {
414 case SYS_USB_CONNECTED:
415 rb->usb_acknowledge(SYS_USB_CONNECTED_ACK);
414 case EV_EXIT: 416 case EV_EXIT:
415 return; 417 return;
416 case EV_OTHINSTANCE: 418 case EV_OTHINSTANCE:
417 if (*rb->current_tick - last_tick >= interval) 419 if (*rb->current_tick - last_tick >= interval)
418 { 420 {
419 last_tick += interval; 421 last_tick += interval;
420 rb->sleep(0); 422 rb->sleep(HZ / 10);
421 announce(); 423 announce();
422 } 424 }
423 break; 425 break;
@@ -425,7 +427,7 @@ void thread(void)
425 rb->beep_play(1500, 100, 1000); 427 rb->beep_play(1500, 100, 1000);
426 break; 428 break;
427 case EV_TRACKCHANGE: 429 case EV_TRACKCHANGE:
428 rb->sleep(0); 430 rb->sleep(HZ / 10);
429 announce(); 431 announce();
430 break; 432 break;
431 } 433 }
@@ -509,7 +511,7 @@ int plugin_main(const void* parameter)
509 gAnnounce.index = 0; 511 gAnnounce.index = 0;
510 gAnnounce.timeout = 0; 512 gAnnounce.timeout = 0;
511 513
512 rb->talk_id(LANG_HOLD_FOR_SETTINGS, false); 514
513 rb->splash(HZ / 2, "Announce Status"); 515 rb->splash(HZ / 2, "Announce Status");
514 516
515 if (configfile_load(CFG_FILE, config, gCfg_sz, CFG_VER) < 0) 517 if (configfile_load(CFG_FILE, config, gCfg_sz, CFG_VER) < 0)
@@ -518,6 +520,14 @@ int plugin_main(const void* parameter)
518 config_set_defaults(); 520 config_set_defaults();
519 configfile_save(CFG_FILE, config, gCfg_sz, CFG_VER); 521 configfile_save(CFG_FILE, config, gCfg_sz, CFG_VER);
520 522
523 if (rb->mixer_channel_status(PCM_MIXER_CHAN_PLAYBACK) == CHANNEL_PLAYING)
524 {
525 while (rb->mixer_channel_get_bytes_waiting(PCM_MIXER_CHAN_PLAYBACK) > 0)
526 rb->sleep(HZ / 10);
527 }
528
529 rb->talk_id(LANG_HOLD_FOR_SETTINGS, false);
530
521 rb->splash(HZ, ID2P(LANG_HOLD_FOR_SETTINGS)); 531 rb->splash(HZ, ID2P(LANG_HOLD_FOR_SETTINGS));
522 } 532 }
523 533