diff -u -r rockbox-all-original/apps/sound_menu.c rockbox-all/apps/sound_menu.c --- rockbox-all-original/apps/sound_menu.c 2005-09-28 00:42:38.000000000 +0200 +++ rockbox-all/apps/sound_menu.c 2005-10-14 22:57:41.939923200 +0200 @@ -65,11 +65,13 @@ char str[32]; int talkunit = UNIT_INT; int steps; + int faststeps; int button; unit = sound_unit(setting); numdec = sound_numdecimals(setting); steps = sound_steps(setting); + faststeps = sound_faststeps(setting); /*fasteps = higher value to on+up/down use */ min = sound_min(setting); max = sound_max(setting); if (*unit == 'd') /* crude reconstruction */ @@ -119,6 +121,16 @@ changed = true; break; +#if defined (BUTTON_ON) /*ondio doesn't have on button. */ + + case SETTINGS_INC | BUTTON_ON: /* Faster Increase setting */ + case SETTINGS_INC | BUTTON_ON | BUTTON_REPEAT: + (*variable)+=(faststeps); + if(*variable > max ) + *variable = max; + changed = true; + break; + case SETTINGS_DEC: case SETTINGS_DEC | BUTTON_REPEAT: (*variable)-=steps; @@ -127,6 +139,15 @@ changed = true; break; + case SETTINGS_DEC | BUTTON_ON: /* Faster decrease setting */ + case SETTINGS_DEC | BUTTON_ON | BUTTON_REPEAT: + (*variable)-=(faststeps); + if(*variable < min ) + *variable = min; + changed = true; + break; +#endif + case SETTINGS_OK: case SETTINGS_CANCEL: #ifdef SETTINGS_OK2 diff -u -r rockbox-all-original/apps/wps.c rockbox-all/apps/wps.c --- rockbox-all-original/apps/wps.c 2005-08-29 22:07:18.000000000 +0200 +++ rockbox-all/apps/wps.c 2005-10-14 22:37:11.550710400 +0200 @@ -537,6 +537,33 @@ } break; +#if (CONFIG_KEYPAD == IRIVER_H100_PAD) || \ + (CONFIG_KEYPAD == IRIVER_H300_PAD) + /* volume up fast */ + case BUTTON_UP | BUTTON_ON: + case BUTTON_UP | BUTTON_ON | BUTTON_REPEAT: + case BUTTON_RC_VOL_UP | BUTTON_ON: + case BUTTON_RC_VOL_UP | BUTTON_ON | BUTTON_REPEAT: + global_settings.volume+=5; + if (setvol()) { + restore = true; + restoretimer = current_tick + HZ; + } + break; + + /* volume down fast */ + case BUTTON_DOWN | BUTTON_ON: + case BUTTON_DOWN | BUTTON_ON | BUTTON_REPEAT: + case BUTTON_RC_VOL_DOWN | BUTTON_RC_ON: + case BUTTON_RC_VOL_DOWN | BUTTON_RC_ON | BUTTON_REPEAT: + global_settings.volume-=5; + if (setvol()) { + restore = true; + restoretimer = current_tick + HZ; + } + break; +#endif + /* volume down */ case WPS_DECVOL: case WPS_DECVOL | BUTTON_REPEAT: diff -u -r rockbox-all-original/firmware/export/sound.h rockbox-all/firmware/export/sound.h --- rockbox-all-original/firmware/export/sound.h 2005-08-29 23:15:20.000000000 +0200 +++ rockbox-all/firmware/export/sound.h 2005-10-11 10:34:42.000000000 +0200 @@ -54,6 +54,7 @@ const char *sound_unit(int setting); int sound_numdecimals(int setting); int sound_steps(int setting); +int sound_faststeps(int setting); #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) || defined(SIMULATOR) void sound_set_pitch(int permille); int sound_get_pitch(void); diff -u -r rockbox-all-original/firmware/sound.c rockbox-all/firmware/sound.c --- rockbox-all-original/firmware/sound.c 2005-08-29 23:15:20.000000000 +0200 +++ rockbox-all/firmware/sound.c 2005-10-14 20:40:44.323571200 +0200 @@ -113,6 +113,28 @@ 1, /* Super bass */ }; +static const int faststeps[] = /* Defines higher steps */ + /* when using ONUP/DOWN */ +{ + 10, /* Volume */ + 4, /* Bass */ + 4, /* Treble */ + 10, /* Balance */ + 3, /* Loudness */ + 2, /* AVC */ + 2, /* Channels */ + 10, /* Stereo width */ + 3, /* Left gain */ + 3, /* Right gain */ + 3, /* Mic gain */ + 10, /* MDB Strength */ + 10, /* MDB Harmonics */ + 30, /* MDB Center */ + 30, /* MDB Shape */ + 1, /* MDB Enable */ + 1, /* Super bass */ +}; + static const int minval[] = { 0, /* Volume */ @@ -215,6 +237,11 @@ return steps[setting]; } +int sound_faststeps(int setting) +{ + return faststeps[setting]; +} + int sound_min(int setting) { return minval[setting];