Init audio context only on first jukebox use

This commit is contained in:
emeric
2026-02-18 23:56:39 +01:00
parent 825d16a11c
commit 7739c8f627
4 changed files with 145 additions and 34 deletions
@@ -45,6 +45,9 @@ namespace lms::jukebox
JukeboxService& operator=(const JukeboxService&) = delete;
private:
void startInit() override;
ServiceState getState() const override;
void play(std::size_t trackIndex, std::chrono::microseconds offset) override;
void pause() override;
@@ -64,6 +67,8 @@ namespace lms::jukebox
void shuffleTracks() override;
std::vector<db::TrackId> getTracks() const override;
void checkState(ServiceState state) const;
void onContextReady();
void onStreamReady();
@@ -82,6 +87,9 @@ namespace lms::jukebox
mutable std::shared_mutex _mutex;
const audio::AudioOutputBackend _backend;
ServiceState _state;
std::vector<db::TrackId> _tracks; // protected by mutex
std::optional<std::size_t> _currentTrackIndex; // protected by mutex
std::chrono::microseconds _currentTrackPlaybackTimeOffset{};