mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-03-31 09:17:04 +09:00
Prepare for sound. Fix game name being gsr-ui on wayland in some cases when saving video when the ui is open
This commit is contained in:
22
include/AudioPlayer.hpp
Normal file
22
include/AudioPlayer.hpp
Normal file
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "WindowUtils.hpp"
|
||||
#include "GlobalHotkeysLinux.hpp"
|
||||
#include "GlobalHotkeysJoystick.hpp"
|
||||
#include "AudioPlayer.hpp"
|
||||
|
||||
#include <mglpp/window/Window.hpp>
|
||||
#include <mglpp/window/Event.hpp>
|
||||
@@ -189,5 +190,7 @@ namespace gsr {
|
||||
|
||||
mgl::Clock replay_save_clock;
|
||||
bool replay_save_show_notification = false;
|
||||
|
||||
AudioPlayer audio_player;
|
||||
};
|
||||
}
|
||||
@@ -18,6 +18,8 @@ namespace gsr {
|
||||
|
||||
Window get_focused_window(Display *dpy, WindowCaptureType cap_type);
|
||||
std::string get_focused_window_name(Display *dpy, WindowCaptureType window_capture_type);
|
||||
std::string get_window_name_at_position(Display *dpy, mgl::vec2i position, Window ignore_window);
|
||||
std::string get_window_name_at_cursor_position(Display *dpy, Window ignore_window);
|
||||
mgl::vec2i get_cursor_position(Display *dpy, Window *window);
|
||||
mgl::vec2i create_window_get_center_position(Display *display);
|
||||
std::string get_window_manager_name(Display *display);
|
||||
|
||||
Reference in New Issue
Block a user