Added N to play next song

This commit is contained in:
2025-12-10 18:40:46 +01:00
parent d1d0d891fa
commit d2fa5b2782
3 changed files with 30 additions and 0 deletions

View File

@ -157,6 +157,25 @@ void Audio::start(){
playing = true;
}
void Audio::skipToNextTrack(){
if(!ensureStream()) return;
// If menu music is active, just restart the looped menu track
if(isMenuMusic){
if(menuTrack.ok){
menuTrack.cursor = 0;
playing = true;
SDL_ResumeAudioStreamDevice(audioStream);
}
return;
}
if(tracks.empty()) return;
nextTrack();
playing = true;
SDL_ResumeAudioStreamDevice(audioStream);
}
void Audio::toggleMute(){ muted=!muted; }
void Audio::setMuted(bool m){ muted=m; }

View File

@ -42,6 +42,7 @@ public:
int getLoadedTrackCount() const; // get number of tracks loaded so far
void shuffle(); // randomize order
void start(); // begin playback
void skipToNextTrack(); // advance to the next music track
void toggleMute();
void setMuted(bool m);
bool isMuted() const { return muted; }

View File

@ -352,6 +352,16 @@ bool ApplicationManager::initializeManagers() {
consume = true;
}
// N: Skip to next song in the playlist (or restart menu track)
if (!consume && sc == SDL_SCANCODE_N) {
Audio::instance().skipToNextTrack();
if (!m_musicStarted && Audio::instance().getLoadedTrackCount() > 0) {
m_musicStarted = true;
m_musicEnabled = true;
}
consume = true;
}
if (!consume && sc == SDL_SCANCODE_H) {
AppState currentState = m_stateManager ? m_stateManager->getState() : AppState::Loading;
if (currentState != AppState::Loading) {