diff options
author | dec05eba <dec05eba@protonmail.com> | 2024-10-27 01:52:22 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2024-10-27 01:54:37 +0200 |
commit | cfcee1a5d8e5068cdc5171b01beb9f9e6251e51e (patch) | |
tree | d2237ae86f9c41bb74ae05be25f5209857e1a132 /include | |
parent | 1d2fc77cfcd3d40c3a382d3f5f8e6c28e8b38da9 (diff) |
Add option to change video resolution
Diffstat (limited to 'include')
-rw-r--r-- | include/Config.hpp | 3 | ||||
-rw-r--r-- | include/gui/CheckBox.hpp | 4 | ||||
-rw-r--r-- | include/gui/SettingsPage.hpp | 9 |
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; |