diff options
Diffstat (limited to 'apps/plugins/metronome.c')
-rw-r--r-- | apps/plugins/metronome.c | 20 |
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 | |||
1036 | metronome_exit: | ||
1037 | rb->pcm_set_frequency(HW_SAMPR_DEFAULT); | ||
1038 | return status; | ||
1025 | } | 1039 | } |
1026 | 1040 | ||