/**
* 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 .
*/
import libgamma.*;
/**
* jlibgamma test class.
*/
public class Test
{
public static void p(boolean text) { System.out.println(text); }
public static void p(byte text) { System.out.println(text); }
public static void p(short text) { System.out.println(text); }
public static void p(int text) { System.out.println(text); }
public static void p(long text) { System.out.println(text); }
public static void p(char text) { System.out.println(text); }
public static void p(String text) { System.out.println(text); }
public static void p(Object text) { System.out.println(text); }
public static void p() { System.out.println(); }
public static void P(boolean text) { System.out.print(text + " "); }
public static void P(byte text) { System.out.print(text + " "); }
public static void P(short text) { System.out.print(text + " "); }
public static void P(int text) { System.out.print(text + " "); }
public static void P(long text) { System.out.print(text + " "); }
public static void P(char text) { System.out.print(text + " "); }
public static void P(String text) { System.out.print(text + " "); }
public static void P(Object text) { System.out.print(text + " "); }
/**
* Main test function.
*
* @param args Command line arguments, excluding $0.
*/
public static void main(String[] args) throws LibgammaException
{
p(LibgammaException.name_of_error(-3));
p(LibgammaException.value_of_error("LIBGAMMA_NO_SUCH_SITE"));
p();
LibgammaException err = new LibgammaException(LibgammaException.LIBGAMMA_DEVICE_REQUIRE_GROUP);
p(err.error_code);
p(err.group_gid);
p(err.group_name);
p(err.string);
err = new LibgammaException(5);
p(err.string);
p(err);
p();
for (AdjustmentMethod method : AdjustmentMethod.list_methods(0)) P(method.value); p();
for (AdjustmentMethod method : AdjustmentMethod.list_methods(1)) P(method.value); p();
for (AdjustmentMethod method : AdjustmentMethod.list_methods(2)) P(method.value); p();
for (AdjustmentMethod method : AdjustmentMethod.list_methods(3)) P(method.value); p();
for (AdjustmentMethod method : AdjustmentMethod.list_methods(4)) P(method.value); p();
p();
AdjustmentMethod method = AdjustmentMethod.list_methods(0)[0];
p(method);
p(SubpixelOrder.HORIZONTAL_RGB);
p(ConnectorType.VGA);
p();
p(AdjustmentMethod.X_RANDR.is_available());
p(AdjustmentMethod.X_RANDR.get_default_site());
p(AdjustmentMethod.X_RANDR.get_default_site_variable());
p();
for (byte b : CRTCInformation.unhex("0123456789abcdef")) P(b & 255); p();
p(CRTCInformation.behex(CRTCInformation.unhex("0123456789abcdef")));
p();
Site site = new Site(method, ":0");
p(site.partitions_available);
p(site);
Partition partition = new Partition(site, 0);
p(partition.crtcs_available);
p(partition);
CRTC crtc = new CRTC(partition, 0);
p(crtc);
p();
CRTCInformation info = crtc.get_information(~0);
p(info);
p();
AdjustmentMethodCapabilities caps = method.get_capabilities();
p(caps);
p();
GammaRamps ramps = new GammaRamps(info.red_gamma_size, info.green_gamma_size,
info.blue_gamma_size, 16);
int[] saved_red = new int[ramps.red.size];
int[] saved_green = new int[ramps.green.size];
int[] saved_blue = new int[ramps.blue.size];
crtc.get_gamma(ramps);
for (int i = 0; i < ramps.red.size; i++)
{ P(ramps.red.get(i));
ramps.red.set(i, (saved_red[i] = ramps.red.get(i)) / 2);
}
p();
p();
for (int i = 0; i < ramps.green.size; i++)
{ P(ramps.green.get(i));
ramps.green.set(i, (saved_green[i] = ramps.green.get(i)) / 2);
}
p();
p();
for (int i = 0; i < ramps.blue.size; i++)
{ P(ramps.blue.get(i));
ramps.blue.set(i, (saved_blue[i] = ramps.blue.get(i)) / 2);
}
p();
p();
crtc.set_gamma(ramps);
try
{ Thread.sleep(1000);
}
catch (InterruptedException _error)
{ /* ignore. */
}
for (int i = 0; i < ramps.red. size; i++) ramps.red. set(i, saved_red[i]);
for (int i = 0; i < ramps.green.size; i++) ramps.green.set(i, saved_green[i]);
for (int i = 0; i < ramps.blue. size; i++) ramps.blue. set(i, saved_blue[i]);
crtc.set_gamma(ramps);
ramps.close();
crtc.close();
partition.close();
site.close();
try
{ throw new LibgammaException(0);
}
catch (LibgammaException error)
{ p(error);
}
}
}