Skip to content

Commit 8e57804

Browse files
committed
Go back to menu after song is finished
1 parent b1bf5c7 commit 8e57804

File tree

3 files changed

+12
-0
lines changed

3 files changed

+12
-0
lines changed

midi-file/src/playback.rs

+4
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ impl PlaybackState {
8989
self.running = time;
9090
}
9191

92+
pub fn is_finished(&self) -> bool {
93+
self.time() >= self.length()
94+
}
95+
9296
pub fn percentage(&self) -> f32 {
9397
self.running.as_secs_f32() / self.length().as_secs_f32()
9498
}

neothesia/src/scene/playing_scene/midi_player.rs

+4
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,10 @@ impl MidiPlayer {
166166
self.playback.percentage()
167167
}
168168

169+
pub fn is_finished(&self) -> bool {
170+
self.playback.is_finished()
171+
}
172+
169173
pub fn time(&self) -> Duration {
170174
self.playback.time()
171175
}

neothesia/src/scene/playing_scene/mod.rs

+4
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ impl Scene for PlayingScene {
141141

142142
self.bg_quad_pipeline.prepare(&ctx.gpu.queue);
143143
self.fg_quad_pipeline.prepare(&ctx.gpu.queue);
144+
145+
if self.player.is_finished() {
146+
ctx.proxy.send_event(NeothesiaEvent::MainMenu).ok();
147+
}
144148
}
145149

146150
fn render<'pass>(

0 commit comments

Comments
 (0)