From 6624db873c91087bc1805b9d018c92c455b85190 Mon Sep 17 00:00:00 2001 From: dec05eba Date: Thu, 1 Aug 2024 18:38:06 +0200 Subject: Move dropdown button text and icon code to dropdown button class --- include/GsrInfo.hpp | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 include/GsrInfo.hpp (limited to 'include/GsrInfo.hpp') 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 +#include + +#include + +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 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 -- cgit v1.2.3