Bitwig Studio Control Surface API  4.0.1
HardwareLightVisualState.java
1 package com.bitwig.extension.controller.api;
2 
4 
15 {
16  private static Color defaultLabelColorForLightColor(final Color lightColor)
17  {
18  final double total = lightColor.getRed() + lightColor.getGreen() + lightColor.getBlue();
19 
20  return total >= 1.5 ? Color.blackColor() : Color.whiteColor();
21  }
22 
23  public static HardwareLightVisualState createForColor(final Color color)
24  {
25  return createForColor(color, defaultLabelColorForLightColor(color));
26  }
27 
28  public static HardwareLightVisualState createForColor(final Color color, final Color labelColor)
29  {
30  return new HardwareLightVisualState(color, null, labelColor, null, 0, 0);
31  }
32 
33  public static HardwareLightVisualState createBlinking(
34  final Color onColor,
35  final Color offColor,
36  final double onBlinkTimeInSec,
37  final double offBlinkTimeInSec)
38  {
39  return new HardwareLightVisualState(onColor, offColor, defaultLabelColorForLightColor(onColor),
40  defaultLabelColorForLightColor(offColor), onBlinkTimeInSec, offBlinkTimeInSec);
41  }
42 
43  public static HardwareLightVisualState createBlinking(
44  final Color onColor,
45  final Color offColor,
46  final Color labelOnColor,
47  final Color labelOffColor,
48  final double onBlinkTimeInSec,
49  final double offBlinkTimeInSec)
50  {
51  return new HardwareLightVisualState(onColor, offColor, labelOnColor, labelOffColor, onBlinkTimeInSec,
52  offBlinkTimeInSec);
53  }
54 
56  final Color color,
57  final Color offColor,
58  final Color labelColor,
59  final Color labelBlinkOffColor,
60  final double onBlinkTime,
61  final double offBlinkTime)
62  {
63  super();
64  mColor = color;
65  mBlinkOffColor = offColor;
66  mLabelColor = labelColor;
67  mLabelBlinkOffColor = labelBlinkOffColor;
68  mOnBlinkTime = onBlinkTime;
69  mOffBlinkTime = offBlinkTime;
70  }
71 
72  public boolean isBlinking()
73  {
74  return mBlinkOffColor != null;
75  }
76 
77  public Color getColor()
78  {
79  return mColor;
80  }
81 
82  public Color getBlinkOffColor()
83  {
84  return mBlinkOffColor;
85  }
86 
87  public double getOffBlinkTime()
88  {
89  return mOffBlinkTime;
90  }
91 
92  public double getOnBlinkTime()
93  {
94  return mOnBlinkTime;
95  }
96 
97  public Color getLabelColor()
98  {
99  return mLabelColor;
100  }
101 
102  public Color getLabelBlinkOffColor()
103  {
104  return mLabelBlinkOffColor;
105  }
106 
107  private final Color mColor, mBlinkOffColor, mLabelColor, mLabelBlinkOffColor;
108 
109  private final double mOnBlinkTime, mOffBlinkTime;
110 }