From 7a6c0c6bb02b8905b27739af1efc95bf8a76e67e Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Thu, 4 Sep 2014 06:35:32 +0200 Subject: add AdjustmentMethodCapabilities MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/libgamma/AdjustmentMethodCapabilities.java | 134 +++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 src/libgamma/AdjustmentMethodCapabilities.java diff --git a/src/libgamma/AdjustmentMethodCapabilities.java b/src/libgamma/AdjustmentMethodCapabilities.java new file mode 100644 index 0000000..167a081 --- /dev/null +++ b/src/libgamma/AdjustmentMethodCapabilities.java @@ -0,0 +1,134 @@ +/** + * jlibgamma — Display server abstraction layer for gamma ramp and Java + * Copyright © 2014 Mattias Andrée (maandree@member.fsf.org) + * + * This library is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this library. If not, see . + */ +package libgamma; + + +/** + * Capabilities of adjustment methods. + */ +public class AdjustmentMethodCapabilities +{ + /** + * Constructor. + * + * @param data Low half: the value of {@link #crtc_information}. + * High half: the values of the booleanic variables. + */ + AdjustmentMethodCapabilities(long data) + { + this.crtc_information = (int)data; + + this.default_site_known = (data & (1L << 33L)) != 0; + this.multiple_sites = (data & (1L << 34L)) != 0; + this.multiple_partitions = (data & (1L << 35L)) != 0; + this.multiple_crtcs = (data & (1L << 36L)) != 0; + this.partitions_are_graphics_cards = (data & (1L << 37L)) != 0; + this.site_restore = (data & (1L << 38L)) != 0; + this.partition_restore = (data & (1L << 39L)) != 0; + this.crtc_restore = (data & (1L << 40L)) != 0; + this.identical_gamma_sizes = (data & (1L << 41L)) != 0; + this.fixed_gamma_size = (data & (1L << 42L)) != 0; + this.fixed_gamma_depth = (data & (1L << 43L)) != 0; + this.real = (data & (1L << 44L)) != 0; + this.fake = (data & (1L << 45L)) != 0; + } + + + + /** + * OR of the CRTC information fields in {@link CRTCInformation} + * that may (but can fail) be read successfully. + */ + public int crtc_information; + + /** + * Whether the default site is known, if true the site is integrated + * to the system or can be determined using environment variables. + */ + public boolean default_site_known; + + /** + * Whether the adjustment method supports multiple sites rather + * than just the default site. + */ + public boolean multiple_sites; + + /** + * Whether the adjustment method supports multiple partitions + * per site. + */ + public boolean multiple_partitions; + + /** + * Whether the adjustment method supports multiple CRTC:s + * per partition per site. + */ + public boolean multiple_crtcs; + + /** + * Whether the partition to graphics card is a bijection. + */ + public boolean partitions_are_graphics_cards; + + /** + * Whether the adjustment method supports {@link Site#restore}. + */ + public boolean site_restore; + + /** + * Whether the adjustment method supports {@link Partition#restore}. + */ + public boolean partition_restore; + + /** + * Whether the adjustment method supports {@link CRTC#restore}. + */ + public boolean crtc_restore; + + /** + * Whether the {@link #red_gamma_size}, {@link #green_gamma_size} and + * {@link #blue_gamma_size} fields in {@link CRTCInformation} will + * always have the same values as each other for the adjustment method. + */ + public boolean identical_gamma_sizes; + + /** + * Whether the {@link #red_gamma_size}, {@link #green_gamma_size} and + * {@link #blue_gamma_size} fields in {@link CRTCInformation} will + * always be filled with the same value for the adjustment method. + */ + public boolean fixed_gamma_size; + + /** + * Whether the {@link #gamma_depth} field in {@link CRTCInformation} + * will always be filled with the same value for the adjustment method. + */ + public boolean fixed_gamma_depth; + + /** + * Whether the adjustment method will actually perform adjustments. + */ + public boolean real; + + /** + * Whether the adjustment method is implement using a translation layer. + */ + public boolean fake; + +} + -- cgit v1.2.3-70-g09d2