/* See LICENSE file for copyright and license details. */ package libgamma; /** * Capabilities of adjustment methods */ public class AdjustmentMethodCapabilities { /** * Type initialiser */ static { Libgamma.initialise(); } /** * 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; /** * {@inheritDoc} */ public String toString() { return ""; } }