aboutsummaryrefslogtreecommitdiff
path: root/include/GsrInfo.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/GsrInfo.hpp')
-rw-r--r--include/GsrInfo.hpp27
1 files changed, 25 insertions, 2 deletions
diff --git a/include/GsrInfo.hpp b/include/GsrInfo.hpp
index cd6292c..b027cc5 100644
--- a/include/GsrInfo.hpp
+++ b/include/GsrInfo.hpp
@@ -2,6 +2,7 @@
#include <string>
#include <vector>
+#include <stdint.h>
#include <mglpp/system/vec.hpp>
@@ -19,15 +20,34 @@ namespace gsr {
bool vp9 = false;
};
+ struct SupportedImageFormats {
+ bool jpeg = false;
+ bool png = false;
+ };
+
struct GsrMonitor {
std::string name;
mgl::vec2i size;
};
+ struct GsrVersion {
+ uint8_t major = 0;
+ uint8_t minor = 0;
+ uint8_t patch = 0;
+
+ bool operator>(const GsrVersion &other) const;
+ bool operator>=(const GsrVersion &other) const;
+ bool operator<(const GsrVersion &other) const;
+ bool operator<=(const GsrVersion &other) const;
+ bool operator==(const GsrVersion &other) const;
+ bool operator!=(const GsrVersion &other) const;
+
+ std::string to_string() const;
+ };
+
struct SupportedCaptureOptions {
bool window = false;
bool focused = false;
- bool screen = false;
bool portal = false;
std::vector<GsrMonitor> monitors;
};
@@ -41,6 +61,7 @@ namespace gsr {
struct SystemInfo {
DisplayServer display_server = DisplayServer::UNKNOWN;
bool supports_app_audio = false;
+ GsrVersion gsr_version;
};
enum class GpuVendor {
@@ -52,13 +73,14 @@ namespace gsr {
struct GpuInfo {
GpuVendor vendor = GpuVendor::UNKNOWN;
+ std::string card_path;
};
struct GsrInfo {
SystemInfo system_info;
GpuInfo gpu_info;
SupportedVideoCodecs supported_video_codecs;
- SupportedCaptureOptions supported_capture_options;
+ SupportedImageFormats supported_image_formats;
};
enum class GsrInfoExitStatus {
@@ -78,4 +100,5 @@ namespace gsr {
std::vector<AudioDevice> get_audio_devices();
std::vector<std::string> get_application_audio();
+ SupportedCaptureOptions get_supported_capture_options(const GsrInfo &gsr_info);
} \ No newline at end of file