|
48 | 48 |
|
49 | 49 | import cyanogenmod.hardware.CMHardwareManager; |
50 | 50 | import cyanogenmod.providers.CMSettings; |
| 51 | +import cyanogenmod.util.ColorUtils; |
51 | 52 |
|
52 | 53 | import java.io.PrintWriter; |
53 | 54 |
|
@@ -293,7 +294,7 @@ public void onAnimationUpdate(ValueAnimator animation) { |
293 | 294 | private synchronized void setDisplayTemperature(int temperature) { |
294 | 295 | mColorTemperature = temperature; |
295 | 296 |
|
296 | | - final float[] rgb = temperatureToRGB(temperature); |
| 297 | + final float[] rgb = ColorUtils.temperatureToRGB(temperature); |
297 | 298 |
|
298 | 299 | if (!mLowPerformance) { |
299 | 300 | rgb[0] *= mColorAdjustment[0]; |
@@ -430,25 +431,6 @@ private synchronized void updateLowPowerMode() { |
430 | 431 | mLowPower = enabled; |
431 | 432 | } |
432 | 433 |
|
433 | | - /** |
434 | | - * Convert a color temperature value (in Kelvin) to a RGB units as floats. |
435 | | - * This can be used in a transform matrix or hardware gamma control. |
436 | | - * |
437 | | - * @param tempK |
438 | | - * @return |
439 | | - */ |
440 | | - private static float[] temperatureToRGB(int degreesK) { |
441 | | - int k = MathUtils.constrain(degreesK, 1000, 20000); |
442 | | - float a = (k % 100) / 100.0f; |
443 | | - int i = ((k - 1000)/ 100) * 3; |
444 | | - |
445 | | - return new float[] { interp(i, a), interp(i+1, a), interp(i+2, a) }; |
446 | | - } |
447 | | - |
448 | | - private static float interp(int i, float a) { |
449 | | - return MathUtils.lerp((float)sColorTable[i], (float)sColorTable[i+3], a); |
450 | | - } |
451 | | - |
452 | 434 | /** |
453 | 435 | * Where is the sun anyway? This calculation determines day or night, and scales |
454 | 436 | * the value around sunset/sunrise for a smooth transition. |
@@ -631,205 +613,4 @@ public void dump(PrintWriter pw) { |
631 | 613 | pw.println(" mColorEnhancement=" + (mUseColorEnhancement ? mColorEnhancement : "N/A")); |
632 | 614 | pw.println(" mLowPower=" + (mUseLowPower ? mLowPower : "N/A")); |
633 | 615 | } |
634 | | - |
635 | | - /** |
636 | | - * This table is a modified version of the original blackbody chart, found here: |
637 | | - * http://www.vendian.org/mncharity/dir3/blackbody/UnstableURLs/bbr_color.html |
638 | | - * |
639 | | - * Created by Ingo Thiel. |
640 | | - */ |
641 | | - private static final double[] sColorTable = new double[] { |
642 | | - 1.00000000, 0.18172716, 0.00000000, |
643 | | - 1.00000000, 0.25503671, 0.00000000, |
644 | | - 1.00000000, 0.30942099, 0.00000000, |
645 | | - 1.00000000, 0.35357379, 0.00000000, |
646 | | - 1.00000000, 0.39091524, 0.00000000, |
647 | | - 1.00000000, 0.42322816, 0.00000000, |
648 | | - 1.00000000, 0.45159884, 0.00000000, |
649 | | - 1.00000000, 0.47675916, 0.00000000, |
650 | | - 1.00000000, 0.49923747, 0.00000000, |
651 | | - 1.00000000, 0.51943421, 0.00000000, |
652 | | - 1.00000000, 0.54360078, 0.08679949, |
653 | | - 1.00000000, 0.56618736, 0.14065513, |
654 | | - 1.00000000, 0.58734976, 0.18362641, |
655 | | - 1.00000000, 0.60724493, 0.22137978, |
656 | | - 1.00000000, 0.62600248, 0.25591950, |
657 | | - 1.00000000, 0.64373109, 0.28819679, |
658 | | - 1.00000000, 0.66052319, 0.31873863, |
659 | | - 1.00000000, 0.67645822, 0.34786758, |
660 | | - 1.00000000, 0.69160518, 0.37579588, |
661 | | - 1.00000000, 0.70602449, 0.40267128, |
662 | | - 1.00000000, 0.71976951, 0.42860152, |
663 | | - 1.00000000, 0.73288760, 0.45366838, |
664 | | - 1.00000000, 0.74542112, 0.47793608, |
665 | | - 1.00000000, 0.75740814, 0.50145662, |
666 | | - 1.00000000, 0.76888303, 0.52427322, |
667 | | - 1.00000000, 0.77987699, 0.54642268, |
668 | | - 1.00000000, 0.79041843, 0.56793692, |
669 | | - 1.00000000, 0.80053332, 0.58884417, |
670 | | - 1.00000000, 0.81024551, 0.60916971, |
671 | | - 1.00000000, 0.81957693, 0.62893653, |
672 | | - 1.00000000, 0.82854786, 0.64816570, |
673 | | - 1.00000000, 0.83717703, 0.66687674, |
674 | | - 1.00000000, 0.84548188, 0.68508786, |
675 | | - 1.00000000, 0.85347859, 0.70281616, |
676 | | - 1.00000000, 0.86118227, 0.72007777, |
677 | | - 1.00000000, 0.86860704, 0.73688797, |
678 | | - 1.00000000, 0.87576611, 0.75326132, |
679 | | - 1.00000000, 0.88267187, 0.76921169, |
680 | | - 1.00000000, 0.88933596, 0.78475236, |
681 | | - 1.00000000, 0.89576933, 0.79989606, |
682 | | - 1.00000000, 0.90198230, 0.81465502, |
683 | | - 1.00000000, 0.90963069, 0.82838210, |
684 | | - 1.00000000, 0.91710889, 0.84190889, |
685 | | - 1.00000000, 0.92441842, 0.85523742, |
686 | | - 1.00000000, 0.93156127, 0.86836903, |
687 | | - 1.00000000, 0.93853986, 0.88130458, |
688 | | - 1.00000000, 0.94535695, 0.89404470, |
689 | | - 1.00000000, 0.95201559, 0.90658983, |
690 | | - 1.00000000, 0.95851906, 0.91894041, |
691 | | - 1.00000000, 0.96487079, 0.93109690, |
692 | | - 1.00000000, 0.97107439, 0.94305985, |
693 | | - 1.00000000, 0.97713351, 0.95482993, |
694 | | - 1.00000000, 0.98305189, 0.96640795, |
695 | | - 1.00000000, 0.98883326, 0.97779486, |
696 | | - 1.00000000, 0.99448139, 0.98899179, |
697 | | - 1.00000000, 1.00000000, 1.00000000, |
698 | | - 0.98947904, 0.99348723, 1.00000000, |
699 | | - 0.97940448, 0.98722715, 1.00000000, |
700 | | - 0.96975025, 0.98120637, 1.00000000, |
701 | | - 0.96049223, 0.97541240, 1.00000000, |
702 | | - 0.95160805, 0.96983355, 1.00000000, |
703 | | - 0.94303638, 0.96443333, 1.00000000, |
704 | | - 0.93480451, 0.95923080, 1.00000000, |
705 | | - 0.92689056, 0.95421394, 1.00000000, |
706 | | - 0.91927697, 0.94937330, 1.00000000, |
707 | | - 0.91194747, 0.94470005, 1.00000000, |
708 | | - 0.90488690, 0.94018594, 1.00000000, |
709 | | - 0.89808115, 0.93582323, 1.00000000, |
710 | | - 0.89151710, 0.93160469, 1.00000000, |
711 | | - 0.88518247, 0.92752354, 1.00000000, |
712 | | - 0.87906581, 0.92357340, 1.00000000, |
713 | | - 0.87315640, 0.91974827, 1.00000000, |
714 | | - 0.86744421, 0.91604254, 1.00000000, |
715 | | - 0.86191983, 0.91245088, 1.00000000, |
716 | | - 0.85657444, 0.90896831, 1.00000000, |
717 | | - 0.85139976, 0.90559011, 1.00000000, |
718 | | - 0.84638799, 0.90231183, 1.00000000, |
719 | | - 0.84153180, 0.89912926, 1.00000000, |
720 | | - 0.83682430, 0.89603843, 1.00000000, |
721 | | - 0.83225897, 0.89303558, 1.00000000, |
722 | | - 0.82782969, 0.89011714, 1.00000000, |
723 | | - 0.82353066, 0.88727974, 1.00000000, |
724 | | - 0.81935641, 0.88452017, 1.00000000, |
725 | | - 0.81530175, 0.88183541, 1.00000000, |
726 | | - 0.81136180, 0.87922257, 1.00000000, |
727 | | - 0.80753191, 0.87667891, 1.00000000, |
728 | | - 0.80380769, 0.87420182, 1.00000000, |
729 | | - 0.80018497, 0.87178882, 1.00000000, |
730 | | - 0.79665980, 0.86943756, 1.00000000, |
731 | | - 0.79322843, 0.86714579, 1.00000000, |
732 | | - 0.78988728, 0.86491137, 1.00000000, |
733 | | - 0.78663296, 0.86273225, 1.00000000, |
734 | | - 0.78346225, 0.86060650, 1.00000000, |
735 | | - 0.78037207, 0.85853224, 1.00000000, |
736 | | - 0.77735950, 0.85650771, 1.00000000, |
737 | | - 0.77442176, 0.85453121, 1.00000000, |
738 | | - 0.77155617, 0.85260112, 1.00000000, |
739 | | - 0.76876022, 0.85071588, 1.00000000, |
740 | | - 0.76603147, 0.84887402, 1.00000000, |
741 | | - 0.76336762, 0.84707411, 1.00000000, |
742 | | - 0.76076645, 0.84531479, 1.00000000, |
743 | | - 0.75822586, 0.84359476, 1.00000000, |
744 | | - 0.75574383, 0.84191277, 1.00000000, |
745 | | - 0.75331843, 0.84026762, 1.00000000, |
746 | | - 0.75094780, 0.83865816, 1.00000000, |
747 | | - 0.74863017, 0.83708329, 1.00000000, |
748 | | - 0.74636386, 0.83554194, 1.00000000, |
749 | | - 0.74414722, 0.83403311, 1.00000000, |
750 | | - 0.74197871, 0.83255582, 1.00000000, |
751 | | - 0.73985682, 0.83110912, 1.00000000, |
752 | | - 0.73778012, 0.82969211, 1.00000000, |
753 | | - 0.73574723, 0.82830393, 1.00000000, |
754 | | - 0.73375683, 0.82694373, 1.00000000, |
755 | | - 0.73180765, 0.82561071, 1.00000000, |
756 | | - 0.72989845, 0.82430410, 1.00000000, |
757 | | - 0.72802807, 0.82302316, 1.00000000, |
758 | | - 0.72619537, 0.82176715, 1.00000000, |
759 | | - 0.72439927, 0.82053539, 1.00000000, |
760 | | - 0.72263872, 0.81932722, 1.00000000, |
761 | | - 0.72091270, 0.81814197, 1.00000000, |
762 | | - 0.71922025, 0.81697905, 1.00000000, |
763 | | - 0.71756043, 0.81583783, 1.00000000, |
764 | | - 0.71593234, 0.81471775, 1.00000000, |
765 | | - 0.71433510, 0.81361825, 1.00000000, |
766 | | - 0.71276788, 0.81253878, 1.00000000, |
767 | | - 0.71122987, 0.81147883, 1.00000000, |
768 | | - 0.70972029, 0.81043789, 1.00000000, |
769 | | - 0.70823838, 0.80941546, 1.00000000, |
770 | | - 0.70678342, 0.80841109, 1.00000000, |
771 | | - 0.70535469, 0.80742432, 1.00000000, |
772 | | - 0.70395153, 0.80645469, 1.00000000, |
773 | | - 0.70257327, 0.80550180, 1.00000000, |
774 | | - 0.70121928, 0.80456522, 1.00000000, |
775 | | - 0.69988894, 0.80364455, 1.00000000, |
776 | | - 0.69858167, 0.80273941, 1.00000000, |
777 | | - 0.69729688, 0.80184943, 1.00000000, |
778 | | - 0.69603402, 0.80097423, 1.00000000, |
779 | | - 0.69479255, 0.80011347, 1.00000000, |
780 | | - 0.69357196, 0.79926681, 1.00000000, |
781 | | - 0.69237173, 0.79843391, 1.00000000, |
782 | | - 0.69119138, 0.79761446, 1.00000000, |
783 | | - 0.69003044, 0.79680814, 1.00000000, |
784 | | - 0.68888844, 0.79601466, 1.00000000, |
785 | | - 0.68776494, 0.79523371, 1.00000000, |
786 | | - 0.68665951, 0.79446502, 1.00000000, |
787 | | - 0.68557173, 0.79370830, 1.00000000, |
788 | | - 0.68450119, 0.79296330, 1.00000000, |
789 | | - 0.68344751, 0.79222975, 1.00000000, |
790 | | - 0.68241029, 0.79150740, 1.00000000, |
791 | | - 0.68138918, 0.79079600, 1.00000000, |
792 | | - 0.68038380, 0.79009531, 1.00000000, |
793 | | - 0.67939381, 0.78940511, 1.00000000, |
794 | | - 0.67841888, 0.78872517, 1.00000000, |
795 | | - 0.67745866, 0.78805526, 1.00000000, |
796 | | - 0.67651284, 0.78739518, 1.00000000, |
797 | | - 0.67558112, 0.78674472, 1.00000000, |
798 | | - 0.67466317, 0.78610368, 1.00000000, |
799 | | - 0.67375872, 0.78547186, 1.00000000, |
800 | | - 0.67286748, 0.78484907, 1.00000000, |
801 | | - 0.67198916, 0.78423512, 1.00000000, |
802 | | - 0.67112350, 0.78362984, 1.00000000, |
803 | | - 0.67027024, 0.78303305, 1.00000000, |
804 | | - 0.66942911, 0.78244457, 1.00000000, |
805 | | - 0.66859988, 0.78186425, 1.00000000, |
806 | | - 0.66778228, 0.78129191, 1.00000000, |
807 | | - 0.66697610, 0.78072740, 1.00000000, |
808 | | - 0.66618110, 0.78017057, 1.00000000, |
809 | | - 0.66539706, 0.77962127, 1.00000000, |
810 | | - 0.66462376, 0.77907934, 1.00000000, |
811 | | - 0.66386098, 0.77854465, 1.00000000, |
812 | | - 0.66310852, 0.77801705, 1.00000000, |
813 | | - 0.66236618, 0.77749642, 1.00000000, |
814 | | - 0.66163375, 0.77698261, 1.00000000, |
815 | | - 0.66091106, 0.77647551, 1.00000000, |
816 | | - 0.66019791, 0.77597498, 1.00000000, |
817 | | - 0.65949412, 0.77548090, 1.00000000, |
818 | | - 0.65879952, 0.77499315, 1.00000000, |
819 | | - 0.65811392, 0.77451161, 1.00000000, |
820 | | - 0.65743716, 0.77403618, 1.00000000, |
821 | | - 0.65676908, 0.77356673, 1.00000000, |
822 | | - 0.65610952, 0.77310316, 1.00000000, |
823 | | - 0.65545831, 0.77264537, 1.00000000, |
824 | | - 0.65481530, 0.77219324, 1.00000000, |
825 | | - 0.65418036, 0.77174669, 1.00000000, |
826 | | - 0.65355332, 0.77130560, 1.00000000, |
827 | | - 0.65293404, 0.77086988, 1.00000000, |
828 | | - 0.65232240, 0.77043944, 1.00000000, |
829 | | - 0.65171824, 0.77001419, 1.00000000, |
830 | | - 0.65112144, 0.76959404, 1.00000000, |
831 | | - 0.65053187, 0.76917889, 1.00000000, |
832 | | - 0.64994941, 0.76876866, 1.00000000, |
833 | | - 0.64937392, 0.76836326, 1.00000000 |
834 | | - }; |
835 | 616 | } |
0 commit comments