diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2002-09-12 12:25:44 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2002-09-12 12:25:44 +0000 |
commit | 5ed78ea80cdaa0ede4df89568f0781fa477a5738 (patch) | |
tree | 0fbd18be15fd91b96e19c689d6e6f6f55a07ed77 | |
parent | 174f4945f33fb23295559cc77c0763819411c3e3 (diff) | |
download | rockbox-5ed78ea80cdaa0ede4df89568f0781fa477a5738.tar.gz rockbox-5ed78ea80cdaa0ede4df89568f0781fa477a5738.zip |
Pitch control for Recorder
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2267 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r-- | firmware/mpeg.c | 20 | ||||
-rw-r--r-- | firmware/mpeg.h | 3 |
2 files changed, 23 insertions, 0 deletions
diff --git a/firmware/mpeg.c b/firmware/mpeg.c index 365099129e..ca3ac69692 100644 --- a/firmware/mpeg.c +++ b/firmware/mpeg.c @@ -1787,6 +1787,26 @@ void mpeg_sound_channel_config(int configuration) #endif } +#ifdef HAVE_MAS3587F +/* This function works by telling the decoder that we have another + crystal frequency than we actually have. It will adjust its internal + parameters and the result is that the audio is played at another pitch */ +void mpeg_set_pitch(int percent) +{ + unsigned long val; + + /* Calculate the new (bogus) frequency */ + val = 18432 + (18432*percent/100); + + mas_writemem(MAS_BANK_D0,0x7f3,&val,1); + + /* We must tell the MAS that the frequency has changed. + This will unfortunately cause a short silence. */ + val = 0x25; + mas_writemem(MAS_BANK_D0,0x7f1,&val,1); +} +#endif + void mpeg_init(int volume, int bass, int treble, int balance, int loudness, int bass_boost, int avc) { #ifdef SIMULATOR diff --git a/firmware/mpeg.h b/firmware/mpeg.h index f1451227d0..f2a2b38c6c 100644 --- a/firmware/mpeg.h +++ b/firmware/mpeg.h @@ -41,6 +41,9 @@ char *mpeg_sound_unit(int setting); int mpeg_sound_numdecimals(int setting); struct mp3entry* mpeg_current_track(void); bool mpeg_has_changed_track(void); +#ifdef HAVE_MAS3587F +void mpeg_set_pitch(int percent); +#endif #define SOUND_VOLUME 0 #define SOUND_BASS 1 |