summaryrefslogtreecommitdiff
path: root/apps/plugins/metronome.c
diff options
context:
space:
mode:
authorMichael Sevakis <jethead71@rockbox.org>2007-06-10 02:10:47 +0000
committerMichael Sevakis <jethead71@rockbox.org>2007-06-10 02:10:47 +0000
commit4597ebe24b5300f9e0009ae5a4e08a0527214e94 (patch)
treea1d5c3e6c305b5033efca4827e9e2d116662bda3 /apps/plugins/metronome.c
parent19cc9d063a22cd5162e164d8f5e2fe98944c3721 (diff)
downloadrockbox-4597ebe24b5300f9e0009ae5a4e08a0527214e94.tar.gz
rockbox-4597ebe24b5300f9e0009ae5a4e08a0527214e94.zip
Plugins that play sound must be sure to set inputs and outputs on audio muxed targets. Add strict adherence to the interface protocols. Make sure playback sets the playback output as well.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@13604 a1c6a512-1295-4272-9138-f99709370657
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