@@ -9,7 +9,7 @@ use notation_bevy_utils::prelude::{
99} ;
1010use float_eq:: float_ne;
1111use notation_midi:: prelude:: { MidiState , PlayControlEvent , MidiSettings , JumpToBarEvent } ;
12- use notation_model:: prelude:: { Tab } ;
12+ use notation_model:: prelude:: { Tab , Octave } ;
1313
1414use crate :: settings:: layout_settings:: LayoutMode ;
1515use crate :: ui:: layout:: NotationLayout ;
@@ -168,6 +168,8 @@ impl ControlView {
168168 }
169169 pub fn midi_settings_ui (
170170 ui : & mut Ui ,
171+ state : & mut NotationAppState ,
172+ theme : & mut NotationTheme ,
171173 midi_settings : & mut MidiSettings ,
172174 midi_state : & mut MidiState ,
173175 play_control_evts : & mut EventWriter < PlayControlEvent > ,
@@ -186,6 +188,18 @@ impl ControlView {
186188 }
187189 if !midi_settings. bypass_hub {
188190 ui. separator ( ) ;
191+ ui. horizontal ( |ui| {
192+ ui. label ( format ! ( "Click Octave: {}" , midi_settings. click_octave) ) ;
193+ ui. separator ( ) ;
194+ if midi_settings. click_octave > Octave :: P1 && ui. button ( "lower" ) . clicked ( ) {
195+ midi_settings. click_octave = midi_settings. click_octave . get_lower ( ) ;
196+ Control :: reload_tab ( state, theme) ;
197+ }
198+ if midi_settings. click_octave < Octave :: P7 && ui. button ( "higher" ) . clicked ( ) {
199+ midi_settings. click_octave = midi_settings. click_octave . get_higher ( ) ;
200+ Control :: reload_tab ( state, theme) ;
201+ }
202+ } ) ;
189203 ui. horizontal ( |ui| {
190204 ui. checkbox ( & mut midi_settings. click_mute , "Mute" ) ;
191205 ui. add ( Slider :: new ( & mut midi_settings. click_velocity , 0 ..=127 ) . text ( "Click" ) ) ;
@@ -609,7 +623,7 @@ impl ControlView {
609623 ui. separator ( ) ;
610624 egui:: ScrollArea :: auto_sized ( ) . show ( ui, |ui| {
611625 ui. vertical ( |ui| {
612- Self :: midi_settings_ui ( ui, & mut midi_settings, & mut midi_state, & mut play_control_evts) ;
626+ Self :: midi_settings_ui ( ui, & mut state , & mut theme , & mut midi_settings, & mut midi_state, & mut play_control_evts) ;
613627 Self :: display_ui ( ui, & mut state, & mut settings, & mut theme) ;
614628 ui. separator ( ) ;
615629 Self :: layout_ui ( ui, & mut state, & mut settings, & mut theme) ;
0 commit comments