Files
Hatsune-Miku-s-Shoshitsu-in…/modules/musicPlayer.h
T
NanamiAdmin 7edba3fbc0 feat: make everything threads-safe.
feat: complete `uninstall.sh` logic to make everything synced.
	feat: complete basic play logic to handle background, music,
	lyric play.
2026-08-30 15:13:28 +08:00

28 lines
911 B
C++

// musicPlayer.h
//
// Play an audio file (MP3 / WAV / FLAC) through the system audio device.
// Backed by the vendored miniaudio library (third_party/miniaudio.h), which
// decodes and plays these formats natively and works on both Linux and
// Windows. The header deliberately does not include miniaudio.
#pragma once
#include <atomic>
#include <string>
#include "timeline.h"
namespace mp {
// Blocking playback of `path` in real time. `timeline` is optional; if given
// and not yet anchored, the music anchors it (audio is the show's clock).
// Returns 0 on success (played to the end or stopped early via `stop`).
// Non-zero return values:
// 1 argument error
// 2 could not open/decode the file
// 3 no audio device available (caller should degrade gracefully)
int play(const std::string& path, Timeline* timeline = nullptr,
std::atomic<bool>* stop = nullptr);
} // namespace mp