add pausing

This commit is contained in:
Anthony Samms
2025-11-10 01:57:01 -05:00
parent b381f4f897
commit 244b66c0f3
2 changed files with 20 additions and 3 deletions

View File

@@ -1095,7 +1095,7 @@ void set_music_pan(music music, float pan) {
float get_music_time_length(music music) {
float total_seconds = 0.0f;
total_seconds = (float)music.frameCount/music.stream.sampleRate;
total_seconds = (float)music.frameCount/AUDIO.System.sampleRate;
return total_seconds;
}
@@ -1104,7 +1104,7 @@ float get_music_time_played(music music) {
float seconds_played = 0.0f;
if (music.stream.buffer != NULL) {
pthread_mutex_lock(&AUDIO.System.lock);
seconds_played = (float)music.stream.buffer->framesProcessed / music.stream.sampleRate;
seconds_played = (float)music.stream.buffer->framesProcessed / AUDIO.System.sampleRate;
pthread_mutex_unlock(&AUDIO.System.lock);
}
return seconds_played;

View File

@@ -53,6 +53,9 @@ class GameScreen(Screen):
self.end_ms = 0
self.start_delay = 1000
self.song_started = False
self.paused = False
self.pause_time = 0
self.audio_time = 0
self.movie = None
self.song_music = None
if global_data.config["general"]["nijiiro_notes"]:
@@ -212,6 +215,19 @@ class GameScreen(Screen):
audio.stop_music_stream(self.song_music)
return self.on_screen_end('SONG_SELECT')
if ray.is_key_pressed(ray.KeyboardKey.KEY_SPACE):
self.paused = not self.paused
if self.paused:
if self.song_music is not None:
self.audio_time = audio.get_music_time_played(self.song_music)
audio.stop_music_stream(self.song_music)
self.pause_time = get_current_ms() - self.start_ms
else:
if self.song_music is not None:
audio.play_music_stream(self.song_music, 'music')
audio.seek_music_stream(self.song_music, self.audio_time)
self.start_ms = get_current_ms() - self.pause_time
def spawn_ending_anims(self):
if global_data.session_data[global_data.player_num-1].result_data.bad == 0:
self.player_1.ending_anim = FCAnimation(self.player_1.is_2p)
@@ -233,7 +249,8 @@ class GameScreen(Screen):
super().update()
current_time = get_current_ms()
self.transition.update(current_time)
self.current_ms = current_time - self.start_ms
if not self.paused:
self.current_ms = current_time - self.start_ms
self.start_song(current_time)
self.update_background(current_time)