From 34ce9bdc59a767627b94e37d1559ec864372e870 Mon Sep 17 00:00:00 2001 From: a0kami Date: Mon, 14 Jul 2025 21:10:11 +0200 Subject: [PATCH] fixed hardcoded half-height to match any image height --- src/waveform.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/waveform.rs b/src/waveform.rs index eca9b94..3a078c7 100644 --- a/src/waveform.rs +++ b/src/waveform.rs @@ -68,10 +68,10 @@ impl Waveform { } // Set function scoped last rows if previous_left_row.0 != self.rgba.height as usize && previous_left_row.1 != 0 { - last_rows.0 = if (previous_left_row.0 as f32 - 128f32).abs() < (previous_left_row.1 as f32 - 128f32).abs() {previous_left_row.0} else {previous_left_row.1}; + last_rows.0 = if (previous_left_row.0 as f32 - (self.rgba.height/2) as f32).abs() < (previous_left_row.1 as f32 - (self.rgba.height/2) as f32).abs() {previous_left_row.0} else {previous_left_row.1}; } if previous_right_row.0 != self.rgba.height as usize && previous_right_row.1 != 0 { - last_rows.1 = if (previous_right_row.0 as f32 - 128f32).abs() < (previous_right_row.1 as f32 - 128f32).abs() {previous_right_row.0} else {previous_right_row.1}; + last_rows.1 = if (previous_right_row.0 as f32 - (self.rgba.height/2) as f32).abs() < (previous_right_row.1 as f32 - (self.rgba.height/2) as f32).abs() {previous_right_row.0} else {previous_right_row.1}; } } else { @@ -84,7 +84,7 @@ impl Waveform { // LEFT CHANNEL let column_values : &[f32] = &left_samples[x*left_column_width..(x+1)*left_column_width]; let column_average : f32 = (column_values.iter().cloned().reduce(|acc, v| acc+v).unwrap_or(0f32) / column_values.len() as f32).clamp(-0.99, 0.99); - let row = (128f32 - (column_average * 128f32)).round() as usize; + let row = ((self.rgba.height/2) as f32 - (column_average * (self.rgba.height/2) as f32)).round() as usize; // Draw vertical lines from last row let range : Vec = if row <= last_rows.0 {(row..=last_rows.0).collect()} else {(last_rows.0..=row).rev().collect()}; @@ -98,7 +98,7 @@ impl Waveform { // RIGHT CHANNEL let column_values : &[f32] = &right_samples[x*right_column_width..(x+1)*right_column_width]; let column_average : f32 = (column_values.iter().cloned().reduce(|acc, v| acc+v).unwrap_or(0f32) / column_values.len() as f32).clamp(-0.99, 0.99); - let row = (128f32 - (column_average * 128f32)).round() as usize; + let row = ((self.rgba.height/2) as f32 - (column_average * (self.rgba.height/2) as f32)).round() as usize; // Draw vertical lines from last row let range : Vec = if row <= last_rows.1 {(row..=last_rows.1).collect()} else {(last_rows.1..=row).rev().collect()};