Files
shweets-sim/src/resource/audio.hpp
shweet 17f3348e94
Some checks failed
Build / Build Game (push) Has been cancelled
The Mega Snivy Update
2026-02-28 21:48:00 -05:00

35 lines
709 B
C++

#pragma once
#include <SDL3_mixer/SDL_mixer.h>
#include <filesystem>
#include <memory>
#include "../util/physfs.hpp"
namespace game::resource
{
class Audio
{
static MIX_Mixer* mixer_get();
void unload();
std::shared_ptr<MIX_Audio> internal{};
MIX_Track* track{nullptr};
public:
Audio() = default;
Audio(const std::filesystem::path&);
Audio(const util::physfs::Path&);
Audio(const Audio&);
Audio(Audio&&) noexcept;
Audio& operator=(const Audio&);
Audio& operator=(Audio&&) noexcept;
~Audio();
bool is_valid() const;
void play(bool isLoop = false);
void stop();
bool is_playing() const;
static void volume_set(float volume);
};
}