summaryrefslogtreecommitdiff
path: root/apps/plugins/metronome.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins/metronome.c')
-rw-r--r--apps/plugins/metronome.c20
1 files changed, 17 insertions, 3 deletions
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c
index 712731462a..83af2eb46b 100644
--- a/apps/plugins/metronome.c
+++ b/apps/plugins/metronome.c
@@ -904,6 +904,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
904#else 904#else
905#define PLA_ARRAY_COUNT 2 905#define PLA_ARRAY_COUNT 2
906#endif 906#endif
907 enum plugin_status status;
907 908
908 (void)parameter; 909 (void)parameter;
909 rb = api; 910 rb = api;
@@ -915,7 +916,12 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
915 rb->bitswap(sound, sizeof(sound)); 916 rb->bitswap(sound, sizeof(sound));
916#else 917#else
917 prepare_tock(); 918 prepare_tock();
918 rb->pcm_set_frequency(44100); 919#if INPUT_SRC_CAPS != 0
920 /* Select playback */
921 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
922 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK);
923#endif
924 rb->pcm_set_frequency(SAMPR_44);
919#endif 925#endif
920 926
921 calc_period(); 927 calc_period();
@@ -944,7 +950,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
944 case METRONOME_QUIT: 950 case METRONOME_QUIT:
945 /* get out of here */ 951 /* get out of here */
946 cleanup(NULL); 952 cleanup(NULL);
947 return PLUGIN_OK; 953 status = PLUGIN_OK;
954 goto metronome_exit;
948 955
949#if CONFIG_KEYPAD == ONDIO_PAD 956#if CONFIG_KEYPAD == ONDIO_PAD
950 case METRONOME_PLAY_TAP: 957 case METRONOME_PLAY_TAP:
@@ -1013,7 +1020,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
1013 default: 1020 default:
1014 if (rb->default_event_handler_ex(button, cleanup, NULL) 1021 if (rb->default_event_handler_ex(button, cleanup, NULL)
1015 == SYS_USB_CONNECTED) 1022 == SYS_USB_CONNECTED)
1016 return PLUGIN_USB_CONNECTED; 1023 {
1024 status = PLUGIN_USB_CONNECTED;
1025 goto metronome_exit;
1026 }
1017 reset_tap = false; 1027 reset_tap = false;
1018 break; 1028 break;
1019 1029
@@ -1022,5 +1032,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
1022 tap_count = 0; 1032 tap_count = 0;
1023 } 1033 }
1024 } 1034 }
1035
1036metronome_exit:
1037 rb->pcm_set_frequency(HW_SAMPR_DEFAULT);
1038 return status;
1025} 1039}
1026 1040