From 4597ebe24b5300f9e0009ae5a4e08a0527214e94 Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 10 Jun 2007 02:10:47 +0000 Subject: 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 --- apps/plugins/metronome.c | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) (limited to 'apps/plugins/metronome.c') 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){ #else #define PLA_ARRAY_COUNT 2 #endif + enum plugin_status status; (void)parameter; rb = api; @@ -915,7 +916,12 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ rb->bitswap(sound, sizeof(sound)); #else prepare_tock(); - rb->pcm_set_frequency(44100); +#if INPUT_SRC_CAPS != 0 + /* Select playback */ + rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK); + rb->audio_set_output_source(AUDIO_SRC_PLAYBACK); +#endif + rb->pcm_set_frequency(SAMPR_44); #endif calc_period(); @@ -944,7 +950,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ case METRONOME_QUIT: /* get out of here */ cleanup(NULL); - return PLUGIN_OK; + status = PLUGIN_OK; + goto metronome_exit; #if CONFIG_KEYPAD == ONDIO_PAD case METRONOME_PLAY_TAP: @@ -1013,7 +1020,10 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ default: if (rb->default_event_handler_ex(button, cleanup, NULL) == SYS_USB_CONNECTED) - return PLUGIN_USB_CONNECTED; + { + status = PLUGIN_USB_CONNECTED; + goto metronome_exit; + } reset_tap = false; break; @@ -1022,5 +1032,9 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){ tap_count = 0; } } + +metronome_exit: + rb->pcm_set_frequency(HW_SAMPR_DEFAULT); + return status; } -- cgit v1.2.3