diff --git a/firmware/application/apps/ui_looking_glass_app.cpp b/firmware/application/apps/ui_looking_glass_app.cpp index 187c5f75c..57071203e 100644 --- a/firmware/application/apps/ui_looking_glass_app.cpp +++ b/firmware/application/apps/ui_looking_glass_app.cpp @@ -69,7 +69,7 @@ void GlassView::manage_beep_audio() { } } -void GlassView::get_max_power(const ChannelSpectrum& spectrum, uint8_t bin, uint8_t& max_power) { +void GlassView::get_max_power(const ChannelSpectrum& spectrum, uint16_t bin, uint8_t& max_power) { if (mode == LOOKING_GLASS_SINGLEPASS) { // <20MHz spectrum mode if (bin < 120) { @@ -91,7 +91,7 @@ void GlassView::get_max_power(const ChannelSpectrum& spectrum, uint8_t bin, uint } } -rf::Frequency GlassView::get_freq_from_bin_pos(uint8_t pos) { +rf::Frequency GlassView::get_freq_from_bin_pos(uint16_t pos) { rf::Frequency freq_at_pos = 0; if (mode == LOOKING_GLASS_SINGLEPASS) { // starting from the middle, minus 8 ignored bin on each side. Since pos is [-120,120] after the (pos - 120), it's divided by screen_width(240)/2 => 120 @@ -200,7 +200,7 @@ void GlassView::on_channel_spectrum(const ChannelSpectrum& spectrum) { baseband::spectrum_streaming_stop(); // Convert bins of this spectrum slice into a representative max_power and when enough, into pixels // we actually need screen_width (240) of those bins - for (uint8_t bin = 0; bin < bin_length; bin++) { + for (uint16_t bin = 0; bin < bin_length; bin++) { get_max_power(spectrum, bin, max_power); if (max_power > range_max_power) range_max_power = max_power; @@ -208,7 +208,7 @@ void GlassView::on_channel_spectrum(const ChannelSpectrum& spectrum) { if (bin == 119) { uint8_t next_max_power = 0; get_max_power(spectrum, bin + 1, next_max_power); - for (uint8_t it = 0; it < ignore_dc; it++) { + for (uint16_t it = 0; it < ignore_dc; it++) { uint8_t med_max_power = (max_power + next_max_power) / 2; // due to the way process_bins works we have to keep resetting the color if (process_bins(&med_max_power) == true) return; // new line signaled, return @@ -298,8 +298,8 @@ void GlassView::on_range_changed() { receiver_model.set_target_frequency(f_center); // tune rx for this slice } -void GlassView::plot_marker(uint8_t pos) { - uint8_t shift_y = 0; +void GlassView::plot_marker(uint16_t pos) { + uint16_t shift_y = 0; if (live_frequency_view > 0) // plot one line down when in live view { shift_y = 16; diff --git a/firmware/application/apps/ui_looking_glass_app.hpp b/firmware/application/apps/ui_looking_glass_app.hpp index 5d4a99af0..8299b4a20 100644 --- a/firmware/application/apps/ui_looking_glass_app.hpp +++ b/firmware/application/apps/ui_looking_glass_app.hpp @@ -116,8 +116,8 @@ class GlassView : public View { void update_min(int32_t v); void update_max(int32_t v); void update_range_field(); - void get_max_power(const ChannelSpectrum& spectrum, uint8_t bin, uint8_t& max_power); - rf::Frequency get_freq_from_bin_pos(uint8_t pos); + void get_max_power(const ChannelSpectrum& spectrum, uint16_t bin, uint8_t& max_power); + rf::Frequency get_freq_from_bin_pos(uint16_t pos); void on_marker_change(); void retune(); bool process_bins(uint8_t* powerlevel); @@ -128,7 +128,7 @@ class GlassView : public View { void on_range_changed(); void reset_live_view(); void add_spectrum_pixel(uint8_t power); - void plot_marker(uint8_t pos); + void plot_marker(uint16_t pos); void load_presets(); void populate_presets(); void launch_audio(rf::Frequency center_freq); @@ -138,7 +138,7 @@ class GlassView : public View { rf::Frequency f_center_ini{0}; rf::Frequency marker{0}; - uint8_t marker_pixel_index{0}; + uint16_t marker_pixel_index{0}; rf::Frequency marker_pixel_step{0}; // Size of one spectrum bin in Hz.