mirror of
https://repo.dec05eba.com/gpu-screen-recorder-ui
synced 2026-04-20 00:45:51 +09:00
Add hotkeys for replay and streaming, finish everything
This commit is contained in:
@@ -7,6 +7,8 @@
|
||||
#include <optional>
|
||||
|
||||
namespace gsr {
|
||||
struct GsrInfo;
|
||||
|
||||
struct ConfigHotkey {
|
||||
int64_t keysym = 0;
|
||||
uint32_t modifiers = 0;
|
||||
@@ -86,7 +88,7 @@ namespace gsr {
|
||||
};
|
||||
|
||||
struct Config {
|
||||
Config();
|
||||
Config(const GsrInfo &gsr_info);
|
||||
|
||||
MainConfig main_config;
|
||||
StreamingConfig streaming_config;
|
||||
@@ -94,6 +96,6 @@ namespace gsr {
|
||||
ReplayConfig replay_config;
|
||||
};
|
||||
|
||||
std::optional<Config> read_config();
|
||||
std::optional<Config> read_config(const GsrInfo &gsr_info);
|
||||
void save_config(Config &config);
|
||||
}
|
||||
@@ -45,6 +45,9 @@ namespace gsr {
|
||||
void toggle_show();
|
||||
void toggle_record();
|
||||
void toggle_pause();
|
||||
void toggle_stream();
|
||||
void toggle_replay();
|
||||
void save_replay();
|
||||
void show_notification(const char *str, double timeout_seconds, mgl::Color icon_color, mgl::Color bg_color, NotificationType notification_type);
|
||||
bool is_open() const;
|
||||
private:
|
||||
@@ -59,9 +62,16 @@ namespace gsr {
|
||||
void update_ui_recording_started();
|
||||
void update_ui_recording_stopped();
|
||||
|
||||
void on_press_start_replay(const std::string &id);
|
||||
void on_press_start_record(const std::string &id);
|
||||
void on_press_start_stream(const std::string &id);
|
||||
void update_ui_streaming_started();
|
||||
void update_ui_streaming_stopped();
|
||||
|
||||
void update_ui_replay_started();
|
||||
void update_ui_replay_stopped();
|
||||
|
||||
void on_press_save_replay();
|
||||
void on_press_start_replay();
|
||||
void on_press_start_record();
|
||||
void on_press_start_stream();
|
||||
bool update_compositor_texture(const mgl_monitor *monitor);
|
||||
private:
|
||||
using KeyBindingCallback = std::function<void()>;
|
||||
@@ -92,7 +102,7 @@ namespace gsr {
|
||||
uint64_t default_cursor = 0;
|
||||
pid_t gpu_screen_recorder_process = -1;
|
||||
pid_t notification_process = -1;
|
||||
std::optional<Config> config;
|
||||
Config config;
|
||||
DropdownButton *replay_dropdown_button_ptr = nullptr;
|
||||
DropdownButton *record_dropdown_button_ptr = nullptr;
|
||||
DropdownButton *stream_dropdown_button_ptr = nullptr;
|
||||
|
||||
@@ -42,6 +42,7 @@ namespace gsr {
|
||||
mgl::Texture play_texture;
|
||||
mgl::Texture stop_texture;
|
||||
mgl::Texture pause_texture;
|
||||
mgl::Texture save_texture;
|
||||
|
||||
double double_click_timeout_seconds = 0.4;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace gsr {
|
||||
STREAM
|
||||
};
|
||||
|
||||
SettingsPage(Type type, const GsrInfo &gsr_info, std::vector<AudioDevice> audio_devices, std::optional<Config> &config, PageStack *page_stack);
|
||||
SettingsPage(Type type, const GsrInfo &gsr_info, std::vector<AudioDevice> audio_devices, Config &config, PageStack *page_stack);
|
||||
SettingsPage(const SettingsPage&) = delete;
|
||||
SettingsPage& operator=(const SettingsPage&) = delete;
|
||||
|
||||
@@ -104,7 +104,7 @@ namespace gsr {
|
||||
void save_stream();
|
||||
private:
|
||||
Type type;
|
||||
std::optional<Config> &config;
|
||||
Config &config;
|
||||
std::vector<AudioDevice> audio_devices;
|
||||
|
||||
GsrPage *content_page_ptr = nullptr;
|
||||
|
||||
Reference in New Issue
Block a user