aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2024-10-27 01:52:22 +0200
committerdec05eba <dec05eba@protonmail.com>2024-10-27 01:54:37 +0200
commitcfcee1a5d8e5068cdc5171b01beb9f9e6251e51e (patch)
treed2237ae86f9c41bb74ae05be25f5209857e1a132 /include
parent1d2fc77cfcd3d40c3a382d3f5f8e6c28e8b38da9 (diff)
Add option to change video resolution
Diffstat (limited to 'include')
-rw-r--r--include/Config.hpp3
-rw-r--r--include/gui/CheckBox.hpp4
-rw-r--r--include/gui/SettingsPage.hpp9
3 files changed, 16 insertions, 0 deletions
diff --git a/include/Config.hpp b/include/Config.hpp
index 5766009..5839297 100644
--- a/include/Config.hpp
+++ b/include/Config.hpp
@@ -16,9 +16,12 @@ namespace gsr {
std::string record_area_option = "screen";
int32_t record_area_width = 0;
int32_t record_area_height = 0;
+ int32_t video_width = 0;
+ int32_t video_height = 0;
int32_t fps = 60;
int32_t video_bitrate = 5000;
bool merge_audio_tracks = true;
+ bool change_video_resolution = false;
std::vector<std::string> audio_tracks;
std::string color_range = "limited";
std::string video_quality = "very_high";
diff --git a/include/gui/CheckBox.hpp b/include/gui/CheckBox.hpp
index 8703794..0c86c0a 100644
--- a/include/gui/CheckBox.hpp
+++ b/include/gui/CheckBox.hpp
@@ -6,6 +6,8 @@
#include <mglpp/graphics/Text.hpp>
#include <mglpp/graphics/Sprite.hpp>
+#include <functional>
+
namespace gsr {
class CheckBox : public Widget {
public:
@@ -20,6 +22,8 @@ namespace gsr {
void set_checked(bool checked, bool animated = false);
bool is_checked() const;
+
+ std::function<void(bool checked)> on_changed;
private:
void apply_animation();
mgl::vec2f get_checkbox_size();
diff --git a/include/gui/SettingsPage.hpp b/include/gui/SettingsPage.hpp
index 4f5a7c9..77542a8 100644
--- a/include/gui/SettingsPage.hpp
+++ b/include/gui/SettingsPage.hpp
@@ -39,8 +39,13 @@ namespace gsr {
std::unique_ptr<Entry> create_area_height_entry();
std::unique_ptr<List> create_area_size();
std::unique_ptr<List> create_area_size_section();
+ std::unique_ptr<Entry> create_video_width_entry();
+ std::unique_ptr<Entry> create_video_height_entry();
+ std::unique_ptr<List> create_video_resolution();
+ std::unique_ptr<List> create_video_resolution_section();
std::unique_ptr<CheckBox> create_restore_portal_session_checkbox();
std::unique_ptr<List> create_restore_portal_session_section();
+ std::unique_ptr<Widget> create_change_video_resolution_section();
std::unique_ptr<Widget> create_capture_target(const GsrInfo &gsr_info);
std::unique_ptr<ComboBox> create_audio_track_selection_checkbox();
std::unique_ptr<Button> create_remove_audio_track_button(List *audio_device_list_ptr);
@@ -107,6 +112,7 @@ namespace gsr {
List *settings_list_ptr = nullptr;
List *select_window_list_ptr = nullptr;
List *area_size_list_ptr = nullptr;
+ List *video_resolution_list_ptr = nullptr;
List *restore_portal_session_list_ptr = nullptr;
List *color_range_list_ptr = nullptr;
Widget *video_codec_ptr = nullptr;
@@ -115,11 +121,14 @@ namespace gsr {
ComboBox *record_area_box_ptr = nullptr;
Entry *area_width_entry_ptr = nullptr;
Entry *area_height_entry_ptr = nullptr;
+ Entry *video_width_entry_ptr = nullptr;
+ Entry *video_height_entry_ptr = nullptr;
Entry *framerate_entry_ptr = nullptr;
Entry *video_bitrate_entry_ptr = nullptr;
List *video_bitrate_list_ptr = nullptr;
List *audio_devices_list_ptr = nullptr;
CheckBox *merge_audio_tracks_checkbox_ptr = nullptr;
+ CheckBox *change_video_resolution_checkbox_ptr = nullptr;
ComboBox *color_range_box_ptr = nullptr;
ComboBox *video_quality_box_ptr = nullptr;
ComboBox *video_codec_box_ptr = nullptr;