summaryrefslogtreecommitdiff
path: root/apps/recorder/peakmeter.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/recorder/peakmeter.c')
-rw-r--r--apps/recorder/peakmeter.c24
1 files changed, 17 insertions, 7 deletions
diff --git a/apps/recorder/peakmeter.c b/apps/recorder/peakmeter.c
index aacfc23cee..ca1b8c8750 100644
--- a/apps/recorder/peakmeter.c
+++ b/apps/recorder/peakmeter.c
@@ -930,6 +930,21 @@ void peak_meter_screen(struct screen *display, int x, int y, int height)
930 peak_meter_draw(display, &scales[display->screen_type], x, y, 930 peak_meter_draw(display, &scales[display->screen_type], x, y,
931 display->getwidth() - x, height); 931 display->getwidth() - x, height);
932} 932}
933
934/* sets *left and *right to the current *unscaled* values */
935void peak_meter_current_vals(int *left, int *right)
936{
937 static int left_level = 0, right_level = 0;
938 if (level_check){
939 /* only read the volume info from MAS if peek since last read*/
940 left_level = peak_meter_read_l();
941 right_level = peak_meter_read_r();
942 level_check = false;
943 }
944 *left = left_level;
945 *right = right_level;
946}
947
933/** 948/**
934 * Draws a peak meter in the specified size at the specified position. 949 * Draws a peak meter in the specified size at the specified position.
935 * @param int x - The x coordinate. 950 * @param int x - The x coordinate.
@@ -944,7 +959,7 @@ void peak_meter_screen(struct screen *display, int x, int y, int height)
944static void peak_meter_draw(struct screen *display, struct meter_scales *scales, 959static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
945 int x, int y, int width, int height) 960 int x, int y, int width, int height)
946{ 961{
947 static int left_level = 0, right_level = 0; 962 int left_level = 0, right_level = 0;
948 int left = 0, right = 0; 963 int left = 0, right = 0;
949 int meterwidth = width - 3; 964 int meterwidth = width - 3;
950 int i, delta; 965 int i, delta;
@@ -964,12 +979,7 @@ static void peak_meter_draw(struct screen *display, struct meter_scales *scales,
964 if (peak_meter_enabled) { 979 if (peak_meter_enabled) {
965 980
966 981
967 if (level_check){ 982 peak_meter_current_vals(&left_level, &right_level);
968 /* only read the volume info from MAS if peek since last read*/
969 left_level = peak_meter_read_l();
970 right_level = peak_meter_read_r();
971 level_check = false;
972 }
973 983
974 /* scale the samples dBfs */ 984 /* scale the samples dBfs */
975 left = peak_meter_scale_value(left_level, meterwidth); 985 left = peak_meter_scale_value(left_level, meterwidth);