summaryrefslogtreecommitdiff
path: root/apps/plugins
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
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')
-rw-r--r--apps/plugins/doom/i_sound.c12
-rw-r--r--apps/plugins/metronome.c20
-rw-r--r--apps/plugins/midiplay.c9
-rw-r--r--apps/plugins/mpegplayer/mpegplayer.c10
-rw-r--r--apps/plugins/rockboy/rbsound.c10
-rw-r--r--apps/plugins/zxbox/spsound.c10
6 files changed, 58 insertions, 13 deletions
diff --git a/apps/plugins/doom/i_sound.c b/apps/plugins/doom/i_sound.c
index d79f7a132b..2f4f594077 100644
--- a/apps/plugins/doom/i_sound.c
+++ b/apps/plugins/doom/i_sound.c
@@ -56,9 +56,9 @@
56#define MIXBUFFERSIZE (SAMPLECOUNT*BUFMUL) 56#define MIXBUFFERSIZE (SAMPLECOUNT*BUFMUL)
57 57
58#ifdef HW_HAVE_11 58#ifdef HW_HAVE_11
59#define SAMPLERATE 11025 // 44100 22050 11025 59#define SAMPLERATE SAMPR_11 // 44100 22050 11025
60#else 60#else
61#define SAMPLERATE 44100 // 44100 22050 11025 61#define SAMPLERATE SAMPR_44 // 44100 22050 11025
62#endif 62#endif
63#define SAMPLESIZE 2 // 16bit 63#define SAMPLESIZE 2 // 16bit
64 64
@@ -481,7 +481,7 @@ void I_SubmitSound(void)
481void I_ShutdownSound(void) 481void I_ShutdownSound(void)
482{ 482{
483 rb->pcm_play_stop(); 483 rb->pcm_play_stop();
484 rb->pcm_set_frequency(44100); // 44100 484 rb->pcm_set_frequency(HW_SAMPR_DEFAULT); // 44100
485} 485}
486 486
487void I_InitSound() 487void I_InitSound()
@@ -491,6 +491,12 @@ void I_InitSound()
491 // Initialize external data (all sounds) at start, keep static. 491 // Initialize external data (all sounds) at start, keep static.
492 printf( "I_InitSound: "); 492 printf( "I_InitSound: ");
493 rb->pcm_play_stop(); 493 rb->pcm_play_stop();
494
495#if INPUT_SRC_CAPS != 0
496 /* Select playback */
497 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
498 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK);
499#endif
494 rb->pcm_set_frequency(SAMPLERATE); 500 rb->pcm_set_frequency(SAMPLERATE);
495 501
496 vol_lookup=malloc(128*256*sizeof(int)); 502 vol_lookup=malloc(128*256*sizeof(int));
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
diff --git a/apps/plugins/midiplay.c b/apps/plugins/midiplay.c
index e586f7b0fe..9dda07482e 100644
--- a/apps/plugins/midiplay.c
+++ b/apps/plugins/midiplay.c
@@ -80,11 +80,11 @@ PLUGIN_IRAM_DECLARE
80#define FRACTSIZE 10 80#define FRACTSIZE 10
81 81
82#ifndef SIMULATOR 82#ifndef SIMULATOR
83 #define SAMPLE_RATE 22050 // 44100 22050 11025 83 #define SAMPLE_RATE SAMPR_22 // 44100 22050 11025
84 #define MAX_VOICES 20 // Note: 24 midi channels is the minimum general midi 84 #define MAX_VOICES 20 // Note: 24 midi channels is the minimum general midi
85 // spec implementation 85 // spec implementation
86#else // Simulator requires 44100, and we can afford to use more voices 86#else // Simulator requires 44100, and we can afford to use more voices
87 #define SAMPLE_RATE 44100 87 #define SAMPLE_RATE SAMPR_44
88 #define MAX_VOICES 48 88 #define MAX_VOICES 48
89#endif 89#endif
90 90
@@ -232,6 +232,11 @@ int midimain(void * filename)
232 232
233//#ifndef SIMULATOR 233//#ifndef SIMULATOR
234 rb->pcm_play_stop(); 234 rb->pcm_play_stop();
235#if INPUT_SRC_CAPS != 0
236 /* Select playback */
237 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
238 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK);
239#endif
235 rb->pcm_set_frequency(SAMPLE_RATE); // 44100 22050 11025 240 rb->pcm_set_frequency(SAMPLE_RATE); // 44100 22050 11025
236//#endif 241//#endif
237 242
diff --git a/apps/plugins/mpegplayer/mpegplayer.c b/apps/plugins/mpegplayer/mpegplayer.c
index 5b098dd7b4..881baa925e 100644
--- a/apps/plugins/mpegplayer/mpegplayer.c
+++ b/apps/plugins/mpegplayer/mpegplayer.c
@@ -1636,6 +1636,14 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1636 1636
1637 audiobuf = rb->plugin_get_audio_buffer(&audiosize); 1637 audiobuf = rb->plugin_get_audio_buffer(&audiosize);
1638 1638
1639#if INPUT_SRC_CAPS != 0
1640 /* Select playback */
1641 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
1642 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK);
1643#endif
1644
1645 rb->pcm_set_frequency(SAMPR_44);
1646
1639 /* Set disk pointers to NULL */ 1647 /* Set disk pointers to NULL */
1640 disk_buf_end = disk_buf = NULL; 1648 disk_buf_end = disk_buf = NULL;
1641 1649
@@ -1847,6 +1855,8 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter)
1847 1855
1848 save_settings(); /* Save settings (if they have changed) */ 1856 save_settings(); /* Save settings (if they have changed) */
1849 1857
1858 rb->pcm_set_frequency(HW_SAMPR_DEFAULT);
1859
1850#ifdef HAVE_BACKLIGHT 1860#ifdef HAVE_BACKLIGHT
1851 /* reset backlight settings */ 1861 /* reset backlight settings */
1852 rb->backlight_set_timeout(rb->global_settings->backlight_timeout); 1862 rb->backlight_set_timeout(rb->global_settings->backlight_timeout);
diff --git a/apps/plugins/rockboy/rbsound.c b/apps/plugins/rockboy/rbsound.c
index 4e61d5590c..e671554e25 100644
--- a/apps/plugins/rockboy/rbsound.c
+++ b/apps/plugins/rockboy/rbsound.c
@@ -45,8 +45,14 @@ void pcm_init(void)
45 } 45 }
46 46
47 rb->pcm_play_stop(); 47 rb->pcm_play_stop();
48
49#if INPUT_SRC_CAPS != 0
50 /* Select playback */
51 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
52 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK);
53#endif
48 54
49 rb->pcm_set_frequency(11025); /* 44100 22050 11025 */ 55 rb->pcm_set_frequency(SAMPR_11); /* 44100 22050 11025 */
50} 56}
51 57
52void pcm_close(void) 58void pcm_close(void)
@@ -54,7 +60,7 @@ void pcm_close(void)
54 memset(&pcm, 0, sizeof pcm); 60 memset(&pcm, 0, sizeof pcm);
55 newly_started = true; 61 newly_started = true;
56 rb->pcm_play_stop(); 62 rb->pcm_play_stop();
57 rb->pcm_set_frequency(44100); 63 rb->pcm_set_frequency(HW_SAMPR_DEFAULT);
58} 64}
59 65
60int pcm_submit(void) 66int pcm_submit(void)
diff --git a/apps/plugins/zxbox/spsound.c b/apps/plugins/zxbox/spsound.c
index f9a4c6caa7..aae4ad9c8d 100644
--- a/apps/plugins/zxbox/spsound.c
+++ b/apps/plugins/zxbox/spsound.c
@@ -106,8 +106,12 @@ static void open_snd(void)
106 sndstate = SPS_OPENED; 106 sndstate = SPS_OPENED;
107 sound_avail=1; 107 sound_avail=1;
108 rb->pcm_play_stop(); 108 rb->pcm_play_stop();
109 rb->pcm_set_frequency(44100); 109#if INPUT_SRC_CAPS != 0
110 110 /* Select playback */
111 rb->audio_set_input_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
112 rb->audio_set_output_source(AUDIO_SRC_PLAYBACK);
113#endif
114 rb->pcm_set_frequency(SAMPR_44);
111} 115}
112 116
113static void close_snd(int normal) 117static void close_snd(int normal)
@@ -115,7 +119,7 @@ static void close_snd(int normal)
115 (void)normal; 119 (void)normal;
116 sound_avail = 0; 120 sound_avail = 0;
117 rb->pcm_play_stop(); 121 rb->pcm_play_stop();
118 rb->pcm_set_frequency(44100); 122 rb->pcm_set_frequency(HW_SAMPR_DEFAULT);
119} 123}
120 124
121 125