summaryrefslogtreecommitdiff
path: root/apps/recorder
diff options
context:
space:
mode:
authorLinus Nielsen Feltzing <linus@haxx.se>2005-11-13 15:16:27 +0000
committerLinus Nielsen Feltzing <linus@haxx.se>2005-11-13 15:16:27 +0000
commit34e83598387e9b75c9c44cd756bd3980e65b07fc (patch)
tree307d9c4e907d41c1d53dd0226aed7a6836e7f5fd /apps/recorder
parent0bb62fb1e2bcb95c62177ec10e51914843619a0a (diff)
downloadrockbox-34e83598387e9b75c9c44cd756bd3980e65b07fc.tar.gz
rockbox-34e83598387e9b75c9c44cd756bd3980e65b07fc.zip
Allow volume change in the recording screen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@7845 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/recorder')
-rw-r--r--apps/recorder/recording.c86
1 files changed, 61 insertions, 25 deletions
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index 119209a26a..62b5dff489 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -150,7 +150,7 @@ static void set_gain(void)
150 150
151static const char* const fmtstr[] = 151static const char* const fmtstr[] =
152{ 152{
153 "", /* no decimals */ 153 "%d %s", /* no decimals */
154 "%d.%d %s ", /* 1 decimal */ 154 "%d.%d %s ", /* 1 decimal */
155 "%d.%02d %s " /* 2 decimals */ 155 "%d.%02d %s " /* 2 decimals */
156}; 156};
@@ -164,10 +164,15 @@ char *fmt_gain(int snd, int val, char *str, int len)
164 numdec = sound_numdecimals(snd); 164 numdec = sound_numdecimals(snd);
165 unit = sound_unit(snd); 165 unit = sound_unit(snd);
166 166
167 i = tmp / (10*numdec); 167 if(numdec)
168 d = abs(tmp % (10*numdec)); 168 {
169 i = tmp / (10*numdec);
170 d = abs(tmp % (10*numdec));
171 snprintf(str, len, fmtstr[numdec], i, d, unit);
172 }
173 else
174 snprintf(str, len, fmtstr[numdec], tmp, unit);
169 175
170 snprintf(str, len, fmtstr[numdec], i, d, unit);
171 return str; 176 return str;
172} 177}
173 178
@@ -175,18 +180,27 @@ static int cursor;
175 180
176void adjust_cursor(void) 181void adjust_cursor(void)
177{ 182{
178 if(global_settings.rec_source == SOURCE_LINE) 183 int max_cursor;
179 {
180 if(cursor < 0)
181 cursor = 0;
182 184
183 if(cursor > 2) 185 if(cursor < 0)
184 cursor = 2;
185 }
186 else
187 {
188 cursor = 0; 186 cursor = 0;
187
188 switch(global_settings.rec_source)
189 {
190 case SOURCE_MIC:
191 max_cursor = 1;
192 break;
193
194 case SOURCE_LINE:
195 max_cursor = 3;
196 break;
197 default:
198 max_cursor = 0;
199 break;
189 } 200 }
201
202 if(cursor > max_cursor)
203 cursor = max_cursor;
190} 204}
191 205
192char *rec_create_filename(char *buffer) 206char *rec_create_filename(char *buffer)
@@ -504,6 +518,13 @@ bool recording_screen(void)
504 switch(cursor) 518 switch(cursor)
505 { 519 {
506 case 0: 520 case 0:
521 if(global_settings.volume <
522 sound_max(SOUND_VOLUME))
523 global_settings.volume++;
524 sound_set_volume(global_settings.volume);
525 break;
526
527 case 1:
507 if(global_settings.rec_source == SOURCE_MIC) 528 if(global_settings.rec_source == SOURCE_MIC)
508 { 529 {
509 if(global_settings.rec_mic_gain < 530 if(global_settings.rec_mic_gain <
@@ -520,12 +541,12 @@ bool recording_screen(void)
520 global_settings.rec_right_gain = gain; 541 global_settings.rec_right_gain = gain;
521 } 542 }
522 break; 543 break;
523 case 1: 544 case 2:
524 if(global_settings.rec_left_gain < 545 if(global_settings.rec_left_gain <
525 sound_max(SOUND_LEFT_GAIN)) 546 sound_max(SOUND_LEFT_GAIN))
526 global_settings.rec_left_gain++; 547 global_settings.rec_left_gain++;
527 break; 548 break;
528 case 2: 549 case 3:
529 if(global_settings.rec_right_gain < 550 if(global_settings.rec_right_gain <
530 sound_max(SOUND_RIGHT_GAIN)) 551 sound_max(SOUND_RIGHT_GAIN))
531 global_settings.rec_right_gain++; 552 global_settings.rec_right_gain++;
@@ -540,6 +561,13 @@ bool recording_screen(void)
540 switch(cursor) 561 switch(cursor)
541 { 562 {
542 case 0: 563 case 0:
564 if(global_settings.volume >
565 sound_min(SOUND_VOLUME))
566 global_settings.volume--;
567 sound_set_volume(global_settings.volume);
568 break;
569
570 case 1:
543 if(global_settings.rec_source == SOURCE_MIC) 571 if(global_settings.rec_source == SOURCE_MIC)
544 { 572 {
545 if(global_settings.rec_mic_gain > 573 if(global_settings.rec_mic_gain >
@@ -556,17 +584,17 @@ bool recording_screen(void)
556 global_settings.rec_right_gain = gain; 584 global_settings.rec_right_gain = gain;
557 } 585 }
558 break; 586 break;
559 case 1: 587 case 2:
560 if(global_settings.rec_left_gain > 588 if(global_settings.rec_left_gain >
561 sound_min(SOUND_LEFT_GAIN)) 589 sound_min(SOUND_LEFT_GAIN))
562 global_settings.rec_left_gain--; 590 global_settings.rec_left_gain--;
563 break; 591 break;
564 case 2: 592 case 3:
565 if(global_settings.rec_right_gain > 593 if(global_settings.rec_right_gain >
566 sound_min(SOUND_RIGHT_GAIN)) 594 sound_min(SOUND_RIGHT_GAIN))
567 global_settings.rec_right_gain--; 595 global_settings.rec_right_gain--;
568 break; 596 break;
569 } 597 }
570 set_gain(); 598 set_gain();
571 update_countdown = 1; /* Update immediately */ 599 update_countdown = 1; /* Update immediately */
572 break; 600 break;
@@ -594,7 +622,8 @@ bool recording_screen(void)
594 global_settings.rec_channels, 622 global_settings.rec_channels,
595 global_settings.rec_editable, 623 global_settings.rec_editable,
596 global_settings.rec_prerecord_time); 624 global_settings.rec_prerecord_time);
597 625
626 adjust_cursor();
598 set_gain(); 627 set_gain();
599 update_countdown = 1; /* Update immediately */ 628 update_countdown = 1; /* Update immediately */
600 629
@@ -735,6 +764,16 @@ bool recording_screen(void)
735 last_seconds = 0; 764 last_seconds = 0;
736 } 765 }
737 766
767 snprintf(buf, 32, "%s: %s", str(LANG_VOLUME),
768 fmt_gain(SOUND_VOLUME,
769 global_settings.volume,
770 buf2, sizeof(buf2)));
771
772 if (global_settings.invert_cursor && (pos++ == cursor))
773 lcd_puts_style(0, 3, buf, STYLE_INVERT);
774 else
775 lcd_puts(0, 3, buf);
776
738 if(global_settings.rec_source == SOURCE_MIC) 777 if(global_settings.rec_source == SOURCE_MIC)
739 { 778 {
740 snprintf(buf, 32, "%s: %s", str(LANG_RECORDING_GAIN), 779 snprintf(buf, 32, "%s: %s", str(LANG_RECORDING_GAIN),
@@ -774,18 +813,15 @@ bool recording_screen(void)
774 fmt_gain(SOUND_RIGHT_GAIN, 813 fmt_gain(SOUND_RIGHT_GAIN,
775 global_settings.rec_right_gain, 814 global_settings.rec_right_gain,
776 buf2, sizeof(buf2))); 815 buf2, sizeof(buf2)));
777 if (global_settings.invert_cursor && (pos++ == cursor)) 816 if (global_settings.invert_cursor && (pos == cursor))
778 lcd_puts_style(0, 6, buf, STYLE_INVERT); 817 lcd_puts_style(0, 6, buf, STYLE_INVERT);
779 else 818 else
780 lcd_puts(0, 6, buf); 819 lcd_puts(0, 6, buf);
781 } 820 }
782 } 821 }
783 822
784#ifdef SOURCE_SPDIF 823 put_cursorxy(0, 3 + cursor, true);
785 if(global_settings.rec_source != SOURCE_SPDIF) 824
786#endif
787 put_cursorxy(0, 4 + cursor, true);
788
789 if (global_settings.rec_source != SOURCE_LINE) { 825 if (global_settings.rec_source != SOURCE_LINE) {
790 snprintf(buf, 32, "%s %s [%d]", 826 snprintf(buf, 32, "%s %s [%d]",
791 freq_str[global_settings.rec_frequency], 827 freq_str[global_settings.rec_frequency],