1
0
Fork 0
forked from len0rd/rockbox

Allow volume change in the recording screen

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7845 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Linus Nielsen Feltzing 2005-11-13 15:16:27 +00:00
parent 0bb62fb1e2
commit 34e8359838

View file

@ -150,7 +150,7 @@ static void set_gain(void)
static const char* const fmtstr[] = static const char* const fmtstr[] =
{ {
"", /* no decimals */ "%d %s", /* no decimals */
"%d.%d %s ", /* 1 decimal */ "%d.%d %s ", /* 1 decimal */
"%d.%02d %s " /* 2 decimals */ "%d.%02d %s " /* 2 decimals */
}; };
@ -164,10 +164,15 @@ char *fmt_gain(int snd, int val, char *str, int len)
numdec = sound_numdecimals(snd); numdec = sound_numdecimals(snd);
unit = sound_unit(snd); unit = sound_unit(snd);
if(numdec)
{
i = tmp / (10*numdec); i = tmp / (10*numdec);
d = abs(tmp % (10*numdec)); d = abs(tmp % (10*numdec));
snprintf(str, len, fmtstr[numdec], i, d, unit); snprintf(str, len, fmtstr[numdec], i, d, unit);
}
else
snprintf(str, len, fmtstr[numdec], tmp, unit);
return str; return str;
} }
@ -175,18 +180,27 @@ static int cursor;
void adjust_cursor(void) void adjust_cursor(void)
{ {
if(global_settings.rec_source == SOURCE_LINE) int max_cursor;
{
if(cursor < 0) if(cursor < 0)
cursor = 0; cursor = 0;
if(cursor > 2) switch(global_settings.rec_source)
cursor = 2;
}
else
{ {
cursor = 0; case SOURCE_MIC:
max_cursor = 1;
break;
case SOURCE_LINE:
max_cursor = 3;
break;
default:
max_cursor = 0;
break;
} }
if(cursor > max_cursor)
cursor = max_cursor;
} }
char *rec_create_filename(char *buffer) char *rec_create_filename(char *buffer)
@ -504,6 +518,13 @@ bool recording_screen(void)
switch(cursor) switch(cursor)
{ {
case 0: case 0:
if(global_settings.volume <
sound_max(SOUND_VOLUME))
global_settings.volume++;
sound_set_volume(global_settings.volume);
break;
case 1:
if(global_settings.rec_source == SOURCE_MIC) if(global_settings.rec_source == SOURCE_MIC)
{ {
if(global_settings.rec_mic_gain < if(global_settings.rec_mic_gain <
@ -520,12 +541,12 @@ bool recording_screen(void)
global_settings.rec_right_gain = gain; global_settings.rec_right_gain = gain;
} }
break; break;
case 1: case 2:
if(global_settings.rec_left_gain < if(global_settings.rec_left_gain <
sound_max(SOUND_LEFT_GAIN)) sound_max(SOUND_LEFT_GAIN))
global_settings.rec_left_gain++; global_settings.rec_left_gain++;
break; break;
case 2: case 3:
if(global_settings.rec_right_gain < if(global_settings.rec_right_gain <
sound_max(SOUND_RIGHT_GAIN)) sound_max(SOUND_RIGHT_GAIN))
global_settings.rec_right_gain++; global_settings.rec_right_gain++;
@ -540,6 +561,13 @@ bool recording_screen(void)
switch(cursor) switch(cursor)
{ {
case 0: case 0:
if(global_settings.volume >
sound_min(SOUND_VOLUME))
global_settings.volume--;
sound_set_volume(global_settings.volume);
break;
case 1:
if(global_settings.rec_source == SOURCE_MIC) if(global_settings.rec_source == SOURCE_MIC)
{ {
if(global_settings.rec_mic_gain > if(global_settings.rec_mic_gain >
@ -556,12 +584,12 @@ bool recording_screen(void)
global_settings.rec_right_gain = gain; global_settings.rec_right_gain = gain;
} }
break; break;
case 1: case 2:
if(global_settings.rec_left_gain > if(global_settings.rec_left_gain >
sound_min(SOUND_LEFT_GAIN)) sound_min(SOUND_LEFT_GAIN))
global_settings.rec_left_gain--; global_settings.rec_left_gain--;
break; break;
case 2: case 3:
if(global_settings.rec_right_gain > if(global_settings.rec_right_gain >
sound_min(SOUND_RIGHT_GAIN)) sound_min(SOUND_RIGHT_GAIN))
global_settings.rec_right_gain--; global_settings.rec_right_gain--;
@ -595,6 +623,7 @@ bool recording_screen(void)
global_settings.rec_editable, global_settings.rec_editable,
global_settings.rec_prerecord_time); global_settings.rec_prerecord_time);
adjust_cursor();
set_gain(); set_gain();
update_countdown = 1; /* Update immediately */ update_countdown = 1; /* Update immediately */
@ -735,6 +764,16 @@ bool recording_screen(void)
last_seconds = 0; last_seconds = 0;
} }
snprintf(buf, 32, "%s: %s", str(LANG_VOLUME),
fmt_gain(SOUND_VOLUME,
global_settings.volume,
buf2, sizeof(buf2)));
if (global_settings.invert_cursor && (pos++ == cursor))
lcd_puts_style(0, 3, buf, STYLE_INVERT);
else
lcd_puts(0, 3, buf);
if(global_settings.rec_source == SOURCE_MIC) if(global_settings.rec_source == SOURCE_MIC)
{ {
snprintf(buf, 32, "%s: %s", str(LANG_RECORDING_GAIN), snprintf(buf, 32, "%s: %s", str(LANG_RECORDING_GAIN),
@ -774,17 +813,14 @@ bool recording_screen(void)
fmt_gain(SOUND_RIGHT_GAIN, fmt_gain(SOUND_RIGHT_GAIN,
global_settings.rec_right_gain, global_settings.rec_right_gain,
buf2, sizeof(buf2))); buf2, sizeof(buf2)));
if (global_settings.invert_cursor && (pos++ == cursor)) if (global_settings.invert_cursor && (pos == cursor))
lcd_puts_style(0, 6, buf, STYLE_INVERT); lcd_puts_style(0, 6, buf, STYLE_INVERT);
else else
lcd_puts(0, 6, buf); lcd_puts(0, 6, buf);
} }
} }
#ifdef SOURCE_SPDIF put_cursorxy(0, 3 + cursor, true);
if(global_settings.rec_source != SOURCE_SPDIF)
#endif
put_cursorxy(0, 4 + cursor, true);
if (global_settings.rec_source != SOURCE_LINE) { if (global_settings.rec_source != SOURCE_LINE) {
snprintf(buf, 32, "%s %s [%d]", snprintf(buf, 32, "%s %s [%d]",