private List<Map.Entry<String, String>> settings = new ArrayList<>();
public VideoConfiguration video;
public LedConfiguration leds;
+ public double gamma;
private Configuration(Properties prop) {
video = new VideoConfiguration(prop);
leds = new LedConfiguration(prop);
+ gamma = Double.parseDouble(get(prop,"gamma", "1"));
}
public static Configuration from(String propertiesFile) {
bpp = Integer.parseInt(get(prop, "video.bpp", "2"));
switch (get(prop, "video.format", "").toUpperCase()) {
case "YUYV":
- format = Imgproc.COLOR_YUV2RGB_YUYV;
+ format = Imgproc.COLOR_YUV2BGR_YUYV;
break;
case "YVYU":
- format = Imgproc.COLOR_YUV2RGB_YVYU;
+ format = Imgproc.COLOR_YUV2BGR_YVYU;
break;
default:
- format = Imgproc.COLOR_YUV2RGB_UYVY;
+ format = Imgproc.COLOR_YUV2BGR_UYVY;
}
crop = new CropConfiguration(prop);
}
public class LedConfiguration {
public int cols;
public int rows;
+ public int brightness;
+ public LedType type;
private LedConfiguration(Properties prop) {
cols = Integer.parseInt(get(prop, "leds.cols"));
rows = Integer.parseInt(get(prop, "leds.rows"));
+ brightness = Math.max(1, Math.min(31, Integer.parseInt(get(prop, "leds.brightness", "31"))));
+ switch (get(prop, "leds.type", "").toUpperCase()) {
+ case "WS2801":
+ type = LedType.WS2801;
+ break;
+ case "APA102":
+ default:
+ type = LedType.APA102;
+ }
}
+
+ public int getCount() {
+ return cols * 2 + rows * 2;
+ }
+ }
+
+ public enum LedType {
+ WS2801, APA102
}
}