@@ -29,6 +29,11 @@ crate::macros::choice_enum!(no_default all pub(in crate::ui) enum AvgMode {
2929 PeakHold => "Peak hold" ,
3030} ) ;
3131
32+ crate :: macros:: choice_enum!( no_default all pub ( in crate :: ui) enum FrequencyDirection {
33+ LowToHigh => "Low -> High" ,
34+ HighToLow => "High -> Low" ,
35+ } ) ;
36+
3237struct AveragingControls {
3338 mode : AvgMode ,
3439 factor : f32 ,
@@ -48,7 +53,10 @@ settings_messages!(pane, value {
4853 Source ( Channel ) => set_if_changed( & mut pane. settings. source, value) ;
4954 SecondarySource ( Channel ) => set_if_changed( & mut pane. settings. secondary_source, value) ;
5055 FrequencyScale ( FrequencyScale ) => set_if_changed( & mut pane. settings. frequency_scale, value) ;
51- ReverseFrequency ( bool ) => set_if_changed( & mut pane. settings. reverse_frequency, value) ;
56+ FrequencyDirection ( FrequencyDirection ) => set_if_changed(
57+ & mut pane. settings. reverse_frequency,
58+ value == FrequencyDirection :: HighToLow ,
59+ ) ;
5260 DisplayMode ( SpectrumDisplayMode ) => set_if_changed( & mut pane. settings. display_mode, value) ;
5361 WeightingMode ( SpectrumWeightingMode ) => set_if_changed( & mut pane. settings. weighting_mode, value) ;
5462 SecondaryWeightingMode ( SpectrumWeightingMode ) => set_if_changed( & mut pane. settings. secondary_weighting_mode, value) ;
@@ -67,10 +75,10 @@ impl Pane {
6775 pub ( super ) fn view ( & self ) -> Element < ' _ , Message > {
6876 let s = & self . settings ;
6977 let hop_divisor = get_closest_hop_divisor ( s. fft_size , s. hop_size ) ;
70- let dir = if s. reverse_frequency {
71- "High <- Low"
78+ let direction = if s. reverse_frequency {
79+ FrequencyDirection :: HighToLow
7280 } else {
73- "Low -> High"
81+ FrequencyDirection :: LowToHigh
7482 } ;
7583
7684 let sources = split (
@@ -109,7 +117,12 @@ impl Pane {
109117 pick( "Display" , SpectrumDisplayMode :: ALL , s. display_mode, Message :: DisplayMode ) ;
110118 split(
111119 controls!( 8.0 ;
112- toggle( dir, s. reverse_frequency, Message :: ReverseFrequency ) ;
120+ pick(
121+ "Direction" ,
122+ FrequencyDirection :: ALL ,
123+ direction,
124+ Message :: FrequencyDirection ,
125+ ) ;
113126 toggle( "Frequency grid" , s. show_grid, Message :: ShowGrid ) ;
114127 ) ,
115128 controls!( 8.0 ;
0 commit comments