diff options
author | dec05eba <dec05eba@protonmail.com> | 2024-08-01 18:38:06 +0200 |
---|---|---|
committer | dec05eba <dec05eba@protonmail.com> | 2024-08-01 18:38:06 +0200 |
commit | 6624db873c91087bc1805b9d018c92c455b85190 (patch) | |
tree | 169010942015f1ff209cd56600f4de433c8792ef /include/GsrInfo.hpp | |
parent | 5d40409fc6e54af4c4dccdab11f03bce21c5a9a2 (diff) |
Move dropdown button text and icon code to dropdown button class
Diffstat (limited to 'include/GsrInfo.hpp')
-rw-r--r-- | include/GsrInfo.hpp | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/include/GsrInfo.hpp b/include/GsrInfo.hpp new file mode 100644 index 0000000..e029919 --- /dev/null +++ b/include/GsrInfo.hpp @@ -0,0 +1,66 @@ +#pragma once + +#include <string> +#include <vector> + +#include <mglpp/system/vec.hpp> + +namespace gsr { + struct SupportedVideoCodecs { + bool h264 = false; + bool hevc = false; + bool av1 = false; + bool vp8 = false; + bool vp9 = false; + }; + + struct GsrMonitor { + std::string name; + mgl::vec2i size; + }; + + struct SupportedCaptureOptions { + bool window = false; + bool focused = false; + bool screen = false; + bool portal = false; + std::vector<GsrMonitor> monitors; + }; + + enum class DisplayServer { + UNKNOWN, + X11, + WAYLAND + }; + + struct SystemInfo { + DisplayServer display_server = DisplayServer::UNKNOWN; + }; + + enum class GpuVendor { + UNKNOWN, + AMD, + INTEL, + NVIDIA + }; + + struct GpuInfo { + GpuVendor vendor = GpuVendor::UNKNOWN; + }; + + struct GsrInfo { + SystemInfo system_info; + GpuInfo gpu_info; + SupportedVideoCodecs supported_video_codecs; + SupportedCaptureOptions supported_capture_options; + }; + + enum class GsrInfoExitStatus { + OK, + FAILED_TO_RUN_COMMAND, + OPENGL_FAILED, + NO_DRM_CARD + }; + + GsrInfoExitStatus get_gpu_screen_recorder_info(GsrInfo *gsr_info); +}
\ No newline at end of file |