diff options
author | Linus Nielsen Feltzing <linus@haxx.se> | 2005-11-13 15:16:27 +0000 |
---|---|---|
committer | Linus Nielsen Feltzing <linus@haxx.se> | 2005-11-13 15:16:27 +0000 |
commit | 34e83598387e9b75c9c44cd756bd3980e65b07fc (patch) | |
tree | 307d9c4e907d41c1d53dd0226aed7a6836e7f5fd /apps/recorder | |
parent | 0bb62fb1e2bcb95c62177ec10e51914843619a0a (diff) | |
download | rockbox-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.c | 86 |
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 | ||
151 | static const char* const fmtstr[] = | 151 | static 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 | ||
176 | void adjust_cursor(void) | 181 | void 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 | ||
192 | char *rec_create_filename(char *buffer) | 206 | char *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], |