1
0
Fork 0
forked from len0rd/rockbox

Pitch steps changed to 0.1% instead of 1%.

Holding down ON+RIGHT/LEFT increases/decreses pitch 2% while key is held down, then returns.


git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2718 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Björn Stenberg 2002-10-18 12:05:15 +00:00
parent 8ca78b6665
commit 0834d3f322
2 changed files with 44 additions and 14 deletions

View file

@ -116,12 +116,10 @@ void usb_screen(void)
2 if USB was connected */
int on_screen(void)
{
static int pitch = 100;
static int pitch = 1000;
bool exit = false;
bool used = false;
lcd_setfont(FONT_SYSFIXED);
while (!exit) {
if ( used ) {
@ -131,6 +129,7 @@ int on_screen(void)
lcd_scroll_pause();
lcd_clear_display();
lcd_setfont(FONT_SYSFIXED);
ptr = str(LANG_PITCH_UP);
lcd_getstringsize(ptr,&w,&h);
@ -138,7 +137,7 @@ int on_screen(void)
lcd_bitmap(bitmap_icons_7x8[Icon_UpArrow],
LCD_WIDTH/2 - 3, h*2, 7, 8, true);
snprintf(buf, sizeof buf, "%d%%", pitch);
snprintf(buf, sizeof buf, "%d.%d%%", pitch / 10, pitch % 10 );
lcd_getstringsize(buf,&w,&h);
lcd_putsxy((LCD_WIDTH-w)/2, h, buf);
@ -165,8 +164,8 @@ int on_screen(void)
case BUTTON_ON | BUTTON_UP | BUTTON_REPEAT:
used = true;
pitch++;
if ( pitch > 200 )
pitch = 200;
if ( pitch > 2000 )
pitch = 2000;
#ifdef HAVE_MAS3587F
mpeg_set_pitch(pitch);
#endif
@ -177,8 +176,8 @@ int on_screen(void)
case BUTTON_ON | BUTTON_DOWN | BUTTON_REPEAT:
used = true;
pitch--;
if ( pitch < 50 )
pitch = 50;
if ( pitch < 500 )
pitch = 500;
#ifdef HAVE_MAS3587F
mpeg_set_pitch(pitch);
#endif
@ -199,6 +198,34 @@ int on_screen(void)
exit = true;
break;
case BUTTON_ON | BUTTON_RIGHT:
if ( pitch < 2000 ) {
pitch += 20;
mpeg_set_pitch(pitch);
}
break;
case BUTTON_RIGHT | BUTTON_REL:
if ( pitch > 500 ) {
pitch -= 20;
mpeg_set_pitch(pitch);
}
break;
case BUTTON_ON | BUTTON_LEFT:
if ( pitch > 500 ) {
pitch -= 20;
mpeg_set_pitch(pitch);
}
break;
case BUTTON_LEFT | BUTTON_REL:
if ( pitch < 2000 ) {
pitch += 20;
mpeg_set_pitch(pitch);
}
break;
#ifdef SIMULATOR
case BUTTON_ON:
#else

View file

@ -1985,16 +1985,19 @@ void mpeg_sound_channel_config(int configuration)
#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)
parameters and the result is that the audio is played at another pitch.
The pitch value is in tenths of percent.
*/
void mpeg_set_pitch(int pitch)
{
unsigned long val;
/* invert percent value */
percent = 10000/percent;
/* invert pitch value */
pitch = 1000000/pitch;
/* Calculate the new (bogus) frequency */
val = 18432*percent/100;
val = 18432*pitch/1000;
mas_writemem(MAS_BANK_D0,0x7f3,&val,1);