aboutsummaryrefslogtreecommitdiffstats
path: root/libgamma/AdjustmentMethodCapabilities.java
blob: 871813f72e90f92cd96e3290ede54b3eb9571f91 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/* 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}<br>
	 *               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 "<AdjustmentMethodCapabilities: " + 
		       "information = " + Integer.toString(this.crtc_information) + ", " +
		       "default_site_known = " + Boolean.toString(this.default_site_known) + ", " +
		       "multiple_sites = " + Boolean.toString(this.multiple_sites) + ", " +
		       "multiple_partitions = " + Boolean.toString(this.multiple_partitions) + ", " +
		       "multiple_crtcs = " + Boolean.toString(this.multiple_crtcs) + ", " +
		       "partitions_are_graphics_cards = " + Boolean.toString(this.partitions_are_graphics_cards) + ", " +
		       "site_restore = " + Boolean.toString(this.site_restore) + ", " +
		       "partition_restore = " + Boolean.toString(this.partition_restore) + ", " +
		       "crtc_restore = " + Boolean.toString(this.crtc_restore) + ", " +
		       "identical_gamma_sizes = " + Boolean.toString(this.identical_gamma_sizes) + ", " +
		       "fixed_gamma_size = " + Boolean.toString(this.fixed_gamma_size) + ", " +
		       "fixed_gamma_depth = " + Boolean.toString(this.fixed_gamma_depth) + ", " +
		       "real = " + Boolean.toString(this.real) + ", " +
		       "fake = " + Boolean.toString(this.fake) + ">";
	}
}