Bugfix - switched min/max
[kaka/cakelight.git] / src / kaka / cakelight / Configuration.java
index 94c5ddd..286da18 100644 (file)
@@ -12,10 +12,12 @@ public class Configuration {
     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) {
@@ -70,13 +72,13 @@ public class Configuration {
             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);
         }
@@ -96,10 +98,29 @@ public class Configuration {
     public class LedConfiguration {
         public int cols;
         public int rows;
+        public int level;
+        public LedType type;
 
         private LedConfiguration(Properties prop) {
             cols = Integer.parseInt(get(prop, "leds.cols"));
             rows = Integer.parseInt(get(prop, "leds.rows"));
+            level = Math.max(1, Math.min(31, Integer.parseInt(get(prop, "leds.level", "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
     }
 }