diff options
Diffstat (limited to 'apps/plugins/mikmod/mikmod.c')
-rw-r--r-- | apps/plugins/mikmod/mikmod.c | 57 |
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) | |||
870 | enum plugin_status plugin_start(const void* parameter) | 874 | enum 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 | { |