aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/libgamma-method.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libgamma-method.h')
-rw-r--r--src/lib/libgamma-method.h40
1 files changed, 37 insertions, 3 deletions
diff --git a/src/lib/libgamma-method.h b/src/lib/libgamma-method.h
index 58598a4..76a8f40 100644
--- a/src/lib/libgamma-method.h
+++ b/src/lib/libgamma-method.h
@@ -163,7 +163,7 @@ typedef struct libgamma_method_capabilities
* Whether the adjustment method supports `libgamma_crtc_restore`.
*/
unsigned crtc_restore : 1;
-
+
/**
* Whether the `red_gamma_size`, `green_gamma_size` and `blue_gamma_size`
* fields in `libgamma_crtc_information_t` will always have the same
@@ -194,6 +194,12 @@ typedef struct libgamma_method_capabilities
*/
unsigned fake : 1;
+ /**
+ * Whether adjustments are undone when the process disconnects from
+ * the display server.
+ */
+ unsigned auto_restore : 1;
+
} libgamma_method_capabilities_t;
@@ -474,6 +480,29 @@ typedef enum libgamma_subpixel_order
/**
+ * Answer enum to a decision problem.
+ */
+typedef enum libgamma_decision
+ {
+ /**
+ * The answer is negative.
+ */
+ LIBGAMMA_NO = 0,
+
+ /**
+ * The answer is unknown.
+ */
+ LIBGAMMA_MAYBE = 1,
+
+ /**
+ * The answer is positive.
+ */
+ LIBGAMMA_YES = 2
+
+ } libgamma_decision_t;
+
+
+/**
* For a `libgamma_crtc_information_t` fill in the
* values for `edid` and `edid_length` and report errors to `edid_error`.
*/
@@ -756,9 +785,14 @@ typedef struct libgamma_crtc_information
/**
- * Non-zero gamma ramp adjustments are supported.
+ * `LIBGAMMA_NO` indicates that the CRTC does not support
+ * gamma ramp adjustments. `LIBGAMMA_MAYBE` indicates that
+ * the CRTC may or may not support gamma ramp adjustments,
+ * meaning that the display server really does not know, but
+ * the protocol is available. `LIBGAMMA_NO` indicates that
+ * the CRTC does support gamma ramp adjustments.
*/
- int gamma_support;
+ libgamma_decision_t gamma_support;
/**
* Zero on success, positive it holds the value `errno` had