diff options
author | dec05eba <dec05eba@protonmail.com> | 2025-02-10 18:22:21 +0100 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2025-02-10 18:22:21 +0100 |
commit | f4e44cbef5dbbc2a2b71e7b9b70ee72d30b7c6a6 (patch) | |
tree | fba7a409ad73abc4b233c9dfd960f014c2df6b69 /include/AudioPlayer.hpp | |
parent | 3d6354c642244cde272c328a31c72a0adba54999 (diff) |
Prepare for sound. Fix game name being gsr-ui on wayland in some cases when saving video when the ui is open
Diffstat (limited to 'include/AudioPlayer.hpp')
-rw-r--r-- | include/AudioPlayer.hpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/include/AudioPlayer.hpp b/include/AudioPlayer.hpp new file mode 100644 index 0000000..22c3be8 --- /dev/null +++ b/include/AudioPlayer.hpp @@ -0,0 +1,22 @@ +#pragma once + +#include <thread> + +namespace gsr { + // Only plays raw stereo PCM audio in 48000hz in s16le format. + // Use this command to convert an audio file (input.wav) to a format playable by this class (output.pcm): + // ffmpeg -i input.wav -f s16le -acodec pcm_s16le -ar 48000 output.pcm + class AudioPlayer { + public: + AudioPlayer() = default; + ~AudioPlayer(); + AudioPlayer(const AudioPlayer&) = delete; + AudioPlayer& operator=(const AudioPlayer&) = delete; + + bool play(const char *filepath); + private: + std::thread thread; + bool stop_playing_audio = false; + int audio_file_fd = -1; + }; +}
\ No newline at end of file |