summaryrefslogtreecommitdiff
path: root/apps/plugins/mikmod/mikmod.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/mikmod/mikmod.c')
-rw-r--r--apps/plugins/mikmod/mikmod.c57
1 files changed, 32 insertions, 25 deletions
diff --git a/apps/plugins/mikmod/mikmod.c b/apps/plugins/mikmod/mikmod.c
index 3302fc306a..688baed56c 100644
--- a/apps/plugins/mikmod/mikmod.c
+++ b/apps/plugins/mikmod/mikmod.c
@@ -8,7 +8,7 @@
8#undef SYNC 8#undef SYNC
9#ifdef SIMULATOR 9#ifdef SIMULATOR
10#define SYNC 10#define SYNC
11#elif NUM_CORES > 1 11#else
12#define USETHREADS 12#define USETHREADS
13#endif 13#endif
14 14
@@ -525,10 +525,14 @@ static int settings_menu(void)
525{ 525{
526 int selection = 0; 526 int selection = 0;
527 527
528 MENUITEM_STRINGLIST(settings_menu, "Mikmod Settings", NULL, "Panning Separation", 528 MENUITEM_STRINGLIST(settings_menu, "Mikmod Settings", NULL,
529 "Reverberation", "Interpolation", "Reverse Channels", "Surround", 529 ID2P(LANG_PANNING_SEPARATION),
530 ID2P(LANG_REVERBERATION),
531 ID2P(LANG_INTERPOLATION),
532 ID2P(LANG_SWAP_CHANNELS),
533 ID2P(LANG_MIKMOD_SURROUND),
530#ifdef HAVE_ADJUSTABLE_CPU_FREQ 534#ifdef HAVE_ADJUSTABLE_CPU_FREQ
531 "CPU Boost" 535 ID2P(LANG_CPU_BOOST)
532#endif 536#endif
533 ); 537 );
534 538
@@ -538,36 +542,36 @@ static int settings_menu(void)
538 switch(selection) 542 switch(selection)
539 { 543 {
540 case 0: 544 case 0:
541 rb->set_int("Panning Separation", "", 1, 545 rb->set_int(rb->str(LANG_PANNING_SEPARATION), "", 1,
542 &(settings.pansep), 546 &(settings.pansep),
543 NULL, 8, 0, 128, NULL ); 547 NULL, 8, 0, 128, NULL );
544 applysettings(); 548 applysettings();
545 break; 549 break;
546 550
547 case 1: 551 case 1:
548 rb->set_int("Reverberation", "", 1, 552 rb->set_int(rb->str(LANG_REVERBERATION), "", 1,
549 &(settings.reverb), 553 &(settings.reverb),
550 NULL, 1, 0, 15, NULL ); 554 NULL, 1, 0, 15, NULL );
551 applysettings(); 555 applysettings();
552 break; 556 break;
553 557
554 case 2: 558 case 2:
555 rb->set_bool("Interpolation", &(settings.interp)); 559 rb->set_bool(rb->str(LANG_INTERPOLATION), &(settings.interp));
556 applysettings(); 560 applysettings();
557 break; 561 break;
558 562
559 case 3: 563 case 3:
560 rb->set_bool("Reverse Channels", &(settings.reverse)); 564 rb->set_bool(rb->str(LANG_SWAP_CHANNELS), &(settings.reverse));
561 applysettings(); 565 applysettings();
562 break; 566 break;
563 567
564 case 4: 568 case 4:
565 rb->set_bool("Surround", &(settings.surround)); 569 rb->set_bool(rb->str(LANG_MIKMOD_SURROUND), &(settings.surround));
566 applysettings(); 570 applysettings();
567 break; 571 break;
568 572
569 case 5: 573 case 5:
570 rb->set_bool("CPU Boost", &(settings.boost)); 574 rb->set_bool(rb->str(LANG_CPU_BOOST), &(settings.boost));
571 applysettings(); 575 applysettings();
572 break; 576 break;
573 577
@@ -587,7 +591,9 @@ static int main_menu(void)
587 int result; 591 int result;
588 592
589 MENUITEM_STRINGLIST(main_menu,"Mikmod Main Menu",NULL, 593 MENUITEM_STRINGLIST(main_menu,"Mikmod Main Menu",NULL,
590 "Settings", "Return", "Quit"); 594 ID2P(LANG_SETTINGS),
595 ID2P(LANG_RETURN),
596 ID2P(LANG_MENU_QUIT));
591 while (1) 597 while (1)
592 { 598 {
593 switch (rb->do_menu(&main_menu,&selection, NULL, false)) 599 switch (rb->do_menu(&main_menu,&selection, NULL, false))
@@ -620,8 +626,12 @@ static void thread(void)
620 626
621 while (1) 627 while (1)
622 { 628 {
623 synthbuf(); 629 if (rb->queue_empty(&thread_q))
624 rb->queue_wait_w_tmo(&thread_q, &ev, HZ/20); 630 {
631 synthbuf();
632 rb->yield();
633 }
634 else rb->queue_wait(&thread_q, &ev);
625 switch (ev.id) { 635 switch (ev.id) {
626 case EV_EXIT: 636 case EV_EXIT:
627 return; 637 return;
@@ -660,7 +670,8 @@ static int playfile(char* filename)
660 { 670 {
661 display = DISPLAY_INFO; 671 display = DISPLAY_INFO;
662 Player_Start(module); 672 Player_Start(module);
663 rb->pcm_play_data(&get_more, NULL, NULL, 0); 673 rb->pcmbuf_fade(false, true);
674 rb->mixer_channel_play_data(PCM_MIXER_CHAN_PLAYBACK, get_more, NULL, 0);
664 } 675 }
665 676
666#ifdef HAVE_ADJUSTABLE_CPU_FREQ 677#ifdef HAVE_ADJUSTABLE_CPU_FREQ
@@ -798,14 +809,7 @@ static int playfile(char* filename)
798 break; 809 break;
799 810
800 case ACTION_WPS_PLAY: 811 case ACTION_WPS_PLAY:
801 if(!Player_Paused()) 812 rb->mixer_channel_play_pause(PCM_MIXER_CHAN_PLAYBACK, Player_Paused());
802 {
803 rb->pcm_play_stop();
804 }
805 else
806 {
807 rb->pcm_play_data(&get_more, NULL, NULL, 0);
808 }
809 Player_TogglePause(); 813 Player_TogglePause();
810 break; 814 break;
811 815
@@ -870,6 +874,7 @@ static int playfile(char* filename)
870enum plugin_status plugin_start(const void* parameter) 874enum plugin_status plugin_start(const void* parameter)
871{ 875{
872 enum plugin_status retval; 876 enum plugin_status retval;
877 int orig_samplerate = rb->mixer_get_frequency();
873 878
874 if (parameter == NULL) 879 if (parameter == NULL)
875 { 880 {
@@ -879,13 +884,14 @@ enum plugin_status plugin_start(const void* parameter)
879 884
880 rb->lcd_setfont(FONT_SYSFIXED); 885 rb->lcd_setfont(FONT_SYSFIXED);
881 886
887 rb->talk_force_shutup();
882 rb->pcm_play_stop(); 888 rb->pcm_play_stop();
883#if INPUT_SRC_CAPS != 0 889#if INPUT_SRC_CAPS != 0
884 /* Select playback */ 890 /* Select playback */
885 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK); 891 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
886 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK); 892 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK);
887#endif 893#endif
888 rb->pcm_set_frequency(SAMPLE_RATE); 894 rb->mixer_set_frequency(SAMPLE_RATE);
889 895
890 audio_buffer = rb->plugin_get_audio_buffer((size_t *)&audio_buffer_free); 896 audio_buffer = rb->plugin_get_audio_buffer((size_t *)&audio_buffer_free);
891 897
@@ -922,8 +928,9 @@ enum plugin_status plugin_start(const void* parameter)
922 928
923 MikMod_Exit(); 929 MikMod_Exit();
924 930
925 rb->pcm_play_stop(); 931 rb->pcmbuf_fade(false, false);
926 rb->pcm_set_frequency(HW_SAMPR_DEFAULT); 932 rb->mixer_channel_stop(PCM_MIXER_CHAN_PLAYBACK);
933 rb->mixer_set_frequency(orig_samplerate);
927 934
928 if (retval == PLUGIN_OK) 935 if (retval == PLUGIN_OK)
929 { 936 {