# Supported types: apa102, ws2801
leds.type=apa102
+leds.level=31
leds.cols=32
leds.rows=17
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.min(0, Math.max(31, Integer.parseInt(get(prop, "leds.level", "31"))));
switch (get(prop, "leds.type", "").toUpperCase()) {
case "WS2801":
type = LedType.WS2801;
frame.goff = 2 + 4;
frame.boff = 1 + 4;
frame.bytes = new byte[4 + config.leds.getCount() * frame.stride + 4];
- Arrays.fill(frame.bytes, 4, frame.bytes.length - 1, (byte)0xff); // Initiate the first byte of each LED + the end frame with ones
+ Arrays.fill(frame.bytes, 4, frame.bytes.length - 5, (byte)(0b11100000 | config.leds.level)); // Initiate the first byte of each LED
+ Arrays.fill(frame.bytes, frame.bytes.length - 5, frame.bytes.length - 1, (byte)0xff); // Initiate the end frame with ones
break;
}
return frame;