Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.tpvision.ambilightplushue.helpers;
- import java.util.concurrent.atomic.AtomicInteger;
- public class Algorithm
- {
- private static final float MAX_BRI_0 = 0.3F;
- private static final float MAX_BRI_SLIDER_DYN = 0.7F;
- private static final float MAX_SAT = 1.25F;
- private static final float MAX_SAT_SLIDER = 0.8F;
- private static final float MAX_TT = 10.0F;
- private static final float MAX_TT_DELTA = 8.0F;
- private static final float MAX_TT_SLIDER = 1.0F;
- private static final float MIN_BRI_IN = 0.2F;
- private static final float MIN_SAT = 0.85F;
- private static final float MIN_SAT_SLIDER = 0.2F;
- private static final float MIN_TT = 3.0F;
- private static final float MIN_TT_DELTA = 2.0F;
- private static final float MIN_TT_SLIDER = 0.2F;
- public static final int MODEL_DEFAULT = -1;
- public static final int MODEL_TYPE_HUE = 0;
- public static final int MODEL_TYPE_LIVING_COLOR = 1;
- private static final float XB_AL = 0.270844F;
- private static final float XG_AL = 0.301434F;
- private static final float XR_AL = 0.399454F;
- private static final float YB_AL = 0.130816F;
- private static final float YG_AL = 0.666385F;
- private static final float YR_AL = 0.202799F;
- private static final float ZB_AL = 1.440815F;
- private static final float ZG_AL = 0.108732F;
- private static final float ZR_AL = 0.012291F;
- private static float clip(float paramFloat1, float paramFloat2, float paramFloat3)
- {
- if (paramFloat1 > paramFloat3) {
- return paramFloat3;
- }
- if (paramFloat1 < paramFloat2) {
- return paramFloat2;
- }
- return paramFloat1;
- }
- public static float[] convertRGBtoXY_final(float paramFloat1, float paramFloat2, float paramFloat3, int paramInt1, int paramInt2, int paramInt3, AtomicInteger paramAtomicInteger1, AtomicInteger paramAtomicInteger2, int paramInt4, int paramInt5, String paramString)
- {
- float f1 = paramInt5 / 10.0F;
- float f2 = Math.max(0.0F, Math.min(1.0F, paramInt4 / 10.0F));
- float f3 = Math.max(0.0F, Math.min(1.0F, f1));
- float f4 = clip(fun_y(f2, 0.2F, 0.8F, 0.85F, 1.25F), 0.85F, 1.25F);
- float f5 = Math.max(f4 - 1.0F, 0.0F);
- float f6 = Math.max(Math.max(paramFloat1, paramFloat2), paramFloat3);
- if (f4 < 1.0F)
- {
- float f33 = 0.2126F * paramFloat1 + 0.7152F * paramFloat2 + 0.0722F * paramFloat3;
- paramFloat1 = f4 * paramFloat1 + f33 * (1.0F - f4);
- paramFloat2 = f4 * paramFloat2 + f33 * (1.0F - f4);
- paramFloat3 = f4 * paramFloat3 + f33 * (1.0F - f4);
- }
- float f7 = 0.399454F * paramFloat1 + 0.301434F * paramFloat2 + 0.270844F * paramFloat3;
- float f8 = 0.202799F * paramFloat1 + 0.666385F * paramFloat2 + 0.130816F * paramFloat3;
- float f9 = 0.012291F * paramFloat1 + 0.108732F * paramFloat2 + 1.440815F * paramFloat3 + (f7 + f8);
- float f10;
- float f11;
- float f12;
- float f26;
- float f27;
- float f28;
- float f29;
- label386:
- float f31;
- float f32;
- if (f9 > 1.0E-006F)
- {
- f10 = f7 / f9;
- f11 = f8 / f9;
- f12 = f10 + f5 * (f10 - 0.3127F);
- f13 = f11 + f5 * (f11 - 0.329F);
- float f14 = 1.0F - f12 - f13;
- if (getModelType(paramString) == 0)
- {
- float f23 = 3.5784F * f12 + -2.7387F * f13 + -0.6154F * f14;
- float f24 = -1.0029F * f12 + 2.1013F * f13 + 0.1052F * f14;
- float f25 = 0.1451F * f12 + -0.3176F * f13 + 1.4407F * f14;
- f26 = Math.max(0.0F, f23);
- f27 = Math.max(0.0F, f24);
- f28 = Math.max(0.0F, f25);
- f29 = f27;
- if ((f28 >= f27) || (f27 >= f26)) {
- break label719;
- }
- f29 = f27 - 0.5F * (f26 - f27) * (f27 - f28) / (f26 - f28);
- float f30 = 0.4407F * f26 + 0.5962F * f29 + 0.1447F * f28;
- f31 = 0.2102F * f26 + 0.7551F * f29 + 0.0347F * f28;
- f32 = 0.002F * f26 + 0.1064F * f29 + 0.6872F * f28 + (f30 + f31);
- if (f32 <= 1.0E-006F) {
- break label763;
- }
- f12 = f30 / f32;
- }
- }
- for (float f13 = f31 / f32;; f13 = 0.31F)
- {
- getModelType(paramString);
- float[] arrayOfFloat1 = desaturate(f12, f13, 0.33F, 0.31F, f6, 0.1F);
- float[] arrayOfFloat2 = ColorGamut.fixXYColor(arrayOfFloat1[0], arrayOfFloat1[1], paramString);
- float f15 = arrayOfFloat2[0];
- float f16 = arrayOfFloat2[1];
- float f17 = (float)Math.sqrt(f6);
- float f18 = f3 * Math.min(f2 / 0.7F, 1.0F);
- float f19 = Math.max(0.0F, f3 - f18);
- float f20 = f19 + Math.min(1.0F, f17 * f18);
- if (f17 < 0.2F)
- {
- float f22 = fun_y(f17, 0.0F, 0.2F, 0.3F, f19 + Math.min(1.0F, 0.2F * f18));
- f20 = Math.min(f20, f22);
- }
- float f21 = f20;
- paramAtomicInteger2.set((int)clip(fun_y(f2, 0.2F, 1.0F, 10.0F + 8.0F * (paramInt2 / 2), 3.0F + 2.0F * (paramInt2 / 2)), 3.0F + 2.0F * (paramInt2 / 2), 10.0F + 8.0F * (paramInt2 / 2)));
- paramAtomicInteger1.set((int)(255.0F * Math.min(Math.max(f21 + 0.0F, 0.0F), 1.0F)));
- return new float[] { f15, f16 };
- f10 = 0.33F;
- f11 = 0.31F;
- break;
- label719:
- if ((f26 >= f27) || (f27 >= f28)) {
- break label386;
- }
- f29 = f27 - 0.5F * (f28 - f27) * (f27 - f26) / (f28 - f26);
- break label386;
- label763:
- f12 = 0.33F;
- }
- }
- private static float[] desaturate(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4, float paramFloat5, float paramFloat6)
- {
- float f1 = paramFloat1;
- float f2 = paramFloat2;
- if (paramFloat5 < paramFloat6)
- {
- float f3 = paramFloat5 / paramFloat6;
- f1 = paramFloat1 * f3 + paramFloat3 * (1.0F - f3);
- f2 = paramFloat2 * f3 + paramFloat4 * (1.0F - f3);
- }
- return new float[] { f1, f2 };
- }
- private static float fun_y(float paramFloat1, float paramFloat2, float paramFloat3, float paramFloat4, float paramFloat5)
- {
- boolean bool = paramFloat3 - paramFloat2 < 0.0F;
- float f1 = 0.0F;
- if (bool)
- {
- float f2 = (paramFloat5 - paramFloat4) / (paramFloat3 - paramFloat2);
- f1 = paramFloat4 - f2 * paramFloat2 + f2 * paramFloat1;
- }
- return f1;
- }
- public static int getModelType(String paramString)
- {
- if ((paramString.equals("LCT001")) || (paramString.equals("LCT002")) || (paramString.equals("LCT003"))) {
- return 0;
- }
- if ((paramString.equals("LLC001")) || (paramString.equals("LLC005")) || (paramString.equals("LLC006")) || (paramString.equals("LLC007")) || (paramString.equals("LLC011")) || (paramString.equals("LLC012")) || (paramString.equals("LLC013")) || (paramString.equals("LLC014")) || (paramString.equals("LLS001")) || (paramString.equals("LST001"))) {
- return 1;
- }
- return -1;
- }
- }
- /* Location: D:\projects\ambihue\tpvision.jar
- * Qualified Name: com.tpvision.ambilightplushue.helpers.Algorithm
- * JD-Core Version: 0.7.0.1
- */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement