summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/recorder/recording.c5
-rw-r--r--firmware/export/mpeg.h2
-rw-r--r--firmware/mpeg.c9
3 files changed, 8 insertions, 8 deletions
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c
index ff79be24f7..f8a719db1b 100644
--- a/apps/recorder/recording.c
+++ b/apps/recorder/recording.c
@@ -72,13 +72,12 @@ static void set_gain(void)
72{ 72{
73 if(global_settings.rec_source == SOURCE_MIC) 73 if(global_settings.rec_source == SOURCE_MIC)
74 { 74 {
75 mpeg_set_recording_gain(0, 0, 75 mpeg_set_recording_gain(global_settings.rec_mic_gain, 0, true);
76 global_settings.rec_mic_gain);
77 } 76 }
78 else 77 else
79 { 78 {
80 mpeg_set_recording_gain(global_settings.rec_left_gain, 79 mpeg_set_recording_gain(global_settings.rec_left_gain,
81 global_settings.rec_right_gain, 0); 80 global_settings.rec_right_gain, false);
82 } 81 }
83} 82}
84 83
diff --git a/firmware/export/mpeg.h b/firmware/export/mpeg.h
index dda93f811d..9f266bf9e5 100644
--- a/firmware/export/mpeg.h
+++ b/firmware/export/mpeg.h
@@ -89,7 +89,7 @@ void mpeg_record(char *filename);
89void mpeg_set_recording_options(int frequency, int quality, 89void mpeg_set_recording_options(int frequency, int quality,
90 int source, int channel_mode, 90 int source, int channel_mode,
91 bool editable); 91 bool editable);
92void mpeg_set_recording_gain(int left, int right, int mic); 92void mpeg_set_recording_gain(int left, int right, bool use_mic);
93unsigned long mpeg_recorded_time(void); 93unsigned long mpeg_recorded_time(void);
94unsigned long mpeg_num_recorded_bytes(void); 94unsigned long mpeg_num_recorded_bytes(void);
95#endif 95#endif
diff --git a/firmware/mpeg.c b/firmware/mpeg.c
index 22776150dc..b59c058598 100644
--- a/firmware/mpeg.c
+++ b/firmware/mpeg.c
@@ -2142,7 +2142,7 @@ static void init_recording(void)
2142 mas_writereg(0xa3, 0x90); 2142 mas_writereg(0xa3, 0x90);
2143 } 2143 }
2144 2144
2145 /* Enable the Left A/D Converter */ 2145 /* Enable A/D Converters */
2146 mas_codec_writereg(0x0, 0xcccd); 2146 mas_codec_writereg(0x0, 0xcccd);
2147 2147
2148 /* Copy left channel to right (mono mode) */ 2148 /* Copy left channel to right (mono mode) */
@@ -2925,14 +2925,15 @@ void mpeg_set_recording_options(int frequency, int quality,
2925 } 2925 }
2926} 2926}
2927 2927
2928void mpeg_set_recording_gain(int left, int right, int mic) 2928/* If use_mic is true, the left gain is used */
2929void mpeg_set_recording_gain(int left, int right, bool use_mic)
2929{ 2930{
2930 /* Enable both left and right A/D */ 2931 /* Enable both left and right A/D */
2931 mas_codec_writereg(0x0, 2932 mas_codec_writereg(0x0,
2932 (left << 12) | 2933 (left << 12) |
2933 (right << 8) | 2934 (right << 8) |
2934 (mic << 4) | 2935 (left << 4) |
2935 (mic?0x0008:0) | /* Connect left A/D to mic */ 2936 (use_mic?0x0008:0) | /* Connect left A/D to mic */
2936 0x0007); 2937 0x0007);
2937} 2938}
2938 2939