summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2006-01-10 22:22:19 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2006-01-10 22:22:19 +0000
commitbefd0ac3a61b70a86ee909ebb9dd59e074a9f9e8 (patch)
treeea3f7a06ada3ae4bc3e1adfce1e59f445cff55c6
parentcf218e33eca3abcc1067b9e78f1c82510bfe7c69 (diff)
downloadrockbox-befd0ac3a61b70a86ee909ebb9dd59e074a9f9e8.tar.gz
rockbox-befd0ac3a61b70a86ee909ebb9dd59e074a9f9e8.zip
Correct metronome sound on PCM playback targets
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8325 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/plugins/metronome.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/apps/plugins/metronome.c b/apps/plugins/metronome.c
index 587d9f5fe1..c1e156075b 100644
--- a/apps/plugins/metronome.c
+++ b/apps/plugins/metronome.c
@@ -711,11 +711,23 @@ static signed short sound[] = {
711 711
712int tock; 712int tock;
713 713
714short sndbuf[sizeof(sound)*2];
715
716/* Convert the mono "tock" sample to interleaved stereo */
717void prepare_tock(void)
718{
719 int i;
720 for(i = 0;i < (int)sizeof(sound)/2;i++) {
721 sndbuf[i*2] = sound[i];
722 sndbuf[i*2+1] = sound[i];
723 }
724}
725
714void callback_pcm(unsigned char** start, long* size) 726void callback_pcm(unsigned char** start, long* size)
715{ 727{
716 if(sound_active) { 728 if(sound_active) {
717 *start = (unsigned char *)sound; 729 *start = (unsigned char *)sndbuf;
718 *size = sizeof(sound); 730 *size = sizeof(sndbuf);
719 sound_active = false; 731 sound_active = false;
720 } 732 }
721} 733}
@@ -876,6 +888,7 @@ enum plugin_status plugin_start(struct plugin_api* api, void* parameter){
876#if CONFIG_CODEC != SWCODEC 888#if CONFIG_CODEC != SWCODEC
877 rb->bitswap(sound, sizeof(sound)); 889 rb->bitswap(sound, sizeof(sound));
878#else 890#else
891 prepare_tock();
879 rb->pcm_set_frequency(44100); 892 rb->pcm_set_frequency(44100);
880#endif 893#endif
881 894