Skip to content

Commit cff7cc8

Browse files
committed
wip
1 parent 4b8633e commit cff7cc8

File tree

9 files changed

+68
-15
lines changed

9 files changed

+68
-15
lines changed

crates/notation_bevy/src/app/app.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ impl NotationApp {
122122
fn insert_window_descriptor(app: &mut AppBuilder, title: String) {
123123
app.insert_resource(WindowDescriptor {
124124
title,
125-
//width: 1920.,
126-
//height: 1080.,
125+
width: 1920.,
126+
height: 1080.,
127127
..WindowDescriptor::default()
128128
});
129129
}

crates/notation_bevy/src/settings/layout_settings.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ pub struct LayoutSettings {
3333
pub mode: LayoutMode,
3434
pub focus_bar_ease_ms: u64,
3535
pub focusing_bar_ordinal: usize,
36+
pub try_show_last_row_in_grid_mode: bool,
3637
}
3738

3839
impl Default for LayoutSettings {
@@ -41,6 +42,7 @@ impl Default for LayoutSettings {
4142
mode: LayoutMode::default(),
4243
focus_bar_ease_ms: 250,
4344
focusing_bar_ordinal: usize::MAX,
45+
try_show_last_row_in_grid_mode: true,
4446
}
4547
}
4648
}
@@ -150,7 +152,7 @@ impl LayoutSettings {
150152
let content_size = grid_data.content_size;
151153
if grid_size.height > content_size.height {
152154
y = -(grid_size.height - content_size.height);
153-
} else if row > 0 {
155+
} else if row > 0 && self.try_show_last_row_in_grid_mode {
154156
let last_row_height = grid_data.calc_cell_size(row - 1, col).height;
155157
if last_row_height + pos_data.bar_layout.size.height <= grid_size.height / 2.0 {
156158
y = grid_data.calc_cell_offset(row - 1, col).y;

crates/notation_bevy/src/settings/notation_settings.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ pub struct NotationSettings {
1616
pub melody_piano_mode: bool,
1717
pub allow_panning: bool,
1818
pub panning_line_size: f32,
19+
pub override_beat_size: Option<f32>,
20+
pub override_chord_size: Option<f32>,
1921
}
2022

2123
impl Default for NotationSettings {
@@ -29,6 +31,8 @@ impl Default for NotationSettings {
2931
melody_piano_mode: false,
3032
allow_panning: true,
3133
panning_line_size: 32.0,
34+
override_beat_size: None,
35+
override_chord_size: None,
3236
}
3337
}
3438
}

crates/notation_bevy/src/tab/tab_bars.rs

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,15 @@ impl<'a> GridView<NotationLayout<'a>, BarView> for TabBars {
4747
return GridData::ZERO;
4848
}
4949
let bar_margin = engine.theme.sizes.layout.bar_margin;
50-
let bar_sizes = engine.theme.sizes.bar;
50+
let beat_size_range =
51+
match engine.settings.override_beat_size {
52+
Some(size) => (size, size * 2.0),
53+
None => engine.theme.sizes.bar.beat_size_range,
54+
};
5155
let bar_beats = self.tab.bar_beats() as f32;
5256
let bar_width_range = (
53-
bar_sizes.beat_size_range.0 * bar_beats,
54-
bar_sizes.beat_size_range.1 * bar_beats,
57+
beat_size_range.0 * bar_beats,
58+
beat_size_range.1 * bar_beats,
5559
);
5660
let (rows, cols, cell_width) = GridData::cals_fixed_rows_cols_by_width(
5761
grid_size.width - bar_margin * 2.0,

crates/notation_bevy/src/tab/tab_chords.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,14 @@ impl TabChords {
3333
grid_size: LayoutSize,
3434
chords: usize,
3535
) -> GridData {
36-
let sizes = engine.theme.sizes.chord;
36+
let chord_size_range =
37+
match engine.settings.override_chord_size {
38+
Some(size) => (size, size),
39+
None => engine.theme.sizes.chord.chord_size_range,
40+
};
3741
let (mut rows, mut cols, cell_width) = GridData::cals_fixed_rows_cols_by_width(
3842
grid_size.width,
39-
sizes.chord_size_range,
43+
chord_size_range,
4044
0.0,
4145
chords,
4246
);

crates/notation_bevy/src/theme/theme_sizes.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ impl Default for ChordSizes {
9090
fn default() -> Self {
9191
Self {
9292
max_chord_rows: 2,
93-
chord_size_range: (48.0, 80.0),
93+
chord_size_range: (64.0, 128.0),
9494
diagram_factor: 0.45,
9595
diagram_outline: PlayingSize::new(0.5, 2.0, 1.0),
9696
diagram_interval_radius_factor: 0.33,

crates/notation_bevy/src/viewer/control.rs

Lines changed: 40 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ impl ControlView {
243243
state.hide_control = true;
244244
window_resized_evts.send(WindowResizedEvent());
245245
}
246-
ui.checkbox(&mut settings.allow_panning, "Allow Panning");
246+
ui.separator();
247247
let play_title = if midi_state.play_control.play_state.is_playing() {
248248
"Pause"
249249
} else {
@@ -269,11 +269,6 @@ impl ControlView {
269269
&mut play_control_evts,
270270
)
271271
}
272-
let hide_bar_number = settings.hide_bar_number;
273-
ui.checkbox(&mut settings.hide_bar_number, "Hide Bar Number");
274-
if hide_bar_number != settings.hide_bar_number {
275-
Self::reload_tab(&mut commands, &mut state, &viewer_query);
276-
}
277272
if ui.button(format!("Begin: {}", midi_state.play_control.begin_bar_ordinal)).clicked() {
278273
Self::set_begin_bar_ordinal(&mut midi_state, &mut play_control_evts);
279274
}
@@ -288,11 +283,46 @@ impl ControlView {
288283
&mut play_control_evts,
289284
)
290285
}
286+
ui.separator();
287+
let mut override_beat_size = settings.override_beat_size.is_some();
288+
ui.checkbox(&mut override_beat_size, "Override Beat Size");
289+
if override_beat_size {
290+
let mut beat_size = settings.override_beat_size.unwrap_or(80.0);
291+
let last_beat_size = beat_size;
292+
ui.add(Slider::new(&mut beat_size, 16.0..=512.0).text("Beat Size"));
293+
if settings.override_beat_size.is_none() || float_ne!(beat_size, last_beat_size, abs <= 1.0) {
294+
settings.override_beat_size = Some(beat_size);
295+
window_resized_evts.send(WindowResizedEvent());
296+
}
297+
} else if settings.override_beat_size.is_some() {
298+
settings.override_beat_size = None;
299+
window_resized_evts.send(WindowResizedEvent());
300+
}
301+
let mut override_chord_size = settings.override_chord_size.is_some();
302+
ui.checkbox(&mut override_chord_size, "Override Chord Size");
303+
if override_chord_size {
304+
let mut chord_size = settings.override_chord_size.unwrap_or(128.0);
305+
let last_chord_size = chord_size;
306+
ui.add(Slider::new(&mut chord_size, 48.0..=256.0).text("Chord Size"));
307+
if settings.override_chord_size.is_none() || float_ne!(chord_size, last_chord_size, abs <= 1.0) {
308+
settings.override_chord_size = Some(chord_size);
309+
window_resized_evts.send(WindowResizedEvent());
310+
}
311+
} else if settings.override_chord_size.is_some() {
312+
settings.override_chord_size = None;
313+
window_resized_evts.send(WindowResizedEvent());
314+
}
315+
let hide_bar_number = settings.hide_bar_number;
316+
ui.checkbox(&mut settings.hide_bar_number, "Hide Bar Number");
317+
if hide_bar_number != settings.hide_bar_number {
318+
Self::reload_tab(&mut commands, &mut state, &viewer_query);
319+
}
291320
let always_show_fret = settings.always_show_fret;
292321
ui.checkbox(&mut settings.always_show_fret, "Always Show Fret");
293322
if always_show_fret != settings.always_show_fret {
294323
Self::reload_tab(&mut commands, &mut state, &viewer_query);
295324
}
325+
ui.separator();
296326
let mode_text = if settings.layout.mode == LayoutMode::Grid {
297327
"Line Mode"
298328
} else {
@@ -301,6 +331,10 @@ impl ControlView {
301331
if ui.button(mode_text).clicked() {
302332
Self::toggle_layout_mode(&mut commands, &mut state, &mut settings, &viewer_query);
303333
}
334+
if settings.layout.mode == LayoutMode::Grid {
335+
ui.checkbox(&mut settings.layout.try_show_last_row_in_grid_mode, "Try Show Last Row");
336+
}
337+
ui.separator();
304338
if ui.button("Reload Tab").clicked() {
305339
Self::reload_tab(&mut commands, &mut state, &viewer_query);
306340
}

crates/notation_midi/src/midi_hub.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ impl MidiHub {
7474
}
7575
}
7676
pub fn send(&mut self, settings: &MidiSettings, speed: &PlaySpeed, msg: &MidiMessage) {
77+
if settings.bypass_hub {
78+
return;
79+
}
7780
self.check_output(settings);
7881
if let Some(synth) = &self.output_synth {
7982
if let Err(err) = synth.send(speed, msg) {

crates/notation_midi/src/midi_settings.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use bevy_inspector_egui::Inspectable;
77
#[derive(Copy, Clone, PartialEq, Debug)]
88
#[cfg_attr(feature = "inspector", derive(Inspectable))]
99
pub struct MidiSettings {
10+
pub bypass_hub: bool,
1011
pub use_internal_synth: bool,
1112
pub vocal_sound: u8,
1213
pub vocal_velocity: u8,
@@ -19,6 +20,7 @@ pub struct MidiSettings {
1920
impl Default for MidiSettings {
2021
fn default() -> Self {
2122
Self {
23+
bypass_hub: false,
2224
use_internal_synth: Self::default_use_internal_synth(),
2325
vocal_sound: GMSoundSet::Cello as u8,
2426
vocal_velocity: 110,

0 commit comments

Comments
 (0)