/** Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 - 2 0 1 8 ĠBer tr and ĠMart el Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġfr . bm art el . fade c andy . led control Ċ Ċ import Ġandroid . graphics . Color Ċ Ċ import Ġfr . bm art el . fade c andy . Fade c andy Singleton Ċ import Ġfr . bm art el . fade c andy . constant . App Constants Ċ import Ġfr . bm art el . opc . Opc Client Ċ import Ġfr . bm art el . opc . Opc Device Ċ import Ġfr . bm art el . opc . Pixel Strip Ċ Ċ /** Ċ Ġ* Ġopen Ġpixel Ġcontrol Ġfunctions . Ċ Ġ* Ċ Ġ* Ġ@ author ĠBer tr and ĠMart el Ċ Ġ*/ Ċ object ĠColor Utils Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSet Ġfull Ġcolor Ġfor Ġall Ġled ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Full Color ( singleton : ĠF ade c andy Singleton ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġsingleton . led Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton . pixel Strip ?. set Pixel Color ( i , Ġsingleton . color ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsingleton . opc Client ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġset Ġbrightness Ġ( color Ġcorrection ) Ġ: Ġwill Ġset Ġthe Ġsame Ġcorrection Ġfor ĠR , ĠG Ġ& ĠB ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġset Brightness ( singleton : ĠF ade c andy Singleton ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsingleton . opc Device ?. setColor Correction ( App Constants . DEFAULT _ G AM MA _ COR RECTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton . currentColor Correction Ġ/ Ġ 1 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton . currentColor Correction Ġ/ Ġ 1 0 0 f , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton . currentColor Correction Ġ/ Ġ 1 0 0 f ) ĊĠĠĠĠĠĠĠ Ġreturn Ġsingleton . opc Client ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġclear Ġall Ġled ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġclear ( singleton : ĠF ade c andy Singleton ): ĠInt ? Ġ{ ĊĠĠĠĠĠĠĠ Ġsingleton . pixel Strip ?. clear () ĊĠĠĠĠĠĠĠ Ġreturn Ġsingleton . opc Client ?. show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġchange Ġcolors Ġfor Ġmixing Ġeffect Ġdepending Ġon Ġwhich Ġcolor Ġwill Ġbe Ġchanged Ġwhile Ġother Ġwill Ġremain Ġconstants ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdescending ĠĠĠ Ġdefine Ġif Ġwe Ġwant Ġto Ġincrease / decrease Ġthe Ġ@ selected Color ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip Count ĠĠĠ Ġled Ġcount ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip ĠĠĠĠĠĠĠĠ Ġpixel Ġstrip Ġobject ĊĠĠĠĠ Ġ* Ġ@ param Ġr ĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Ġvalue Ġfor Ġred ĊĠĠĠĠ Ġ* Ġ@ param Ġg ĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Ġvalue Ġfor Ġgreen ĊĠĠĠĠ Ġ* Ġ@ param Ġb ĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Ġvalue Ġfor Ġblue ĊĠĠĠĠ Ġ* Ġ@ param Ġselected Color Ġcolor Ġthat Ġwill Ġbe Ġincreased / decrease d Ġwhile Ġthe Ġ 2 Ġothers Ġwill Ġremain Ġconstants Ġ( 0 Ġ: Ġr Ġ| Ġ 1 Ġ: Ġg Ġ| Ġ 2 Ġ: Ġb ) ĊĠĠĠĠ Ġ* Ġ@ param Ġsingleton ĠĠĠĠ Ġsingleton Ġfor Ġvars ĊĠĠĠĠ Ġ* Ġ@ param Ġserver ĠĠĠĠĠĠĠ Ġopen Ġpixel Ġcontrol Ġserver ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmix ( desc ending : ĠBoolean , Ġstrip Count : ĠInt , Ġstrip : ĠPixel Strip ?, Ġr : ĠInt , Ġg : ĠInt , Ġb : ĠInt , Ġselected Color : ĠByte , Ġsingleton : ĠF ade c andy Singleton , Ġserver : ĠO pc Client ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcolor : ĠInt Ġ= Ġif Ġ( desc ending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 2 5 5 ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( j Ġin Ġ 0 .. 2 5 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġstrip Count ) Ġwhen Ġ( selected Color . toInt ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġstrip ?. set Pixel Color ( i , ĠColor . rgb ( color , Ġg , Ġb ) Ġand Ġ 0 x 0 0 FFFFFF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġstrip ?. set Pixel Color ( i , ĠColor . rgb ( r , Ġcolor , Ġb ) Ġand Ġ 0 x 0 0 FFFFFF ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġstrip ?. set Pixel Color ( i , ĠColor . rgb ( r , Ġg , Ġcolor ) Ġand Ġ 0 x 0 0 FFFFFF ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġserver ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( desc ending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor -- ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcolor ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( singleton . is Anim ating ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( singleton . mixer Delay . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġincrease / decrease Ġgreen Ġwhile Ġred Ġ& Ġblue Ġremain Ġconstant ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdescending Ġdefine Ġif Ġwe Ġwant Ġto Ġincrease / decrease Ġgreen ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip Count Ġled Ġcount ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip ĠĠĠĠĠ Ġpixel Ġstrip Ġobject ĊĠĠĠĠ Ġ* Ġ@ param Ġinit Red ĠĠĠ Ġred Ġcolor Ġconstant ĊĠĠĠĠ Ġ* Ġ@ param Ġinit Blue ĠĠ Ġblue Ġcolor Ġconstant ĊĠĠĠĠ Ġ* Ġ@ param Ġsingleton Ġ Ġsingleton Ġobject Ġ Ġfor Ġvars ĊĠĠĠĠ Ġ* Ġ@ param Ġserver ĠĠĠĠ Ġopen Ġpixel Ġcontrol Ġserver Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmix Green ( desc ending : ĠBoolean , Ġstrip Count : ĠInt , Ġstrip : ĠPixel Strip ?, Ġinit Red : ĠInt , Ġinit Blue : ĠInt , Ġsingleton : ĠF ade c andy Singleton , Ġserver : ĠO pc Client ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmix ( desc ending Ġ= Ġdescending , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġstrip Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġstrip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ= Ġinit Red , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ= Ġinit Blue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Color Ġ= Ġ 0 x 0 1 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġserver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġincrease / decrease Ġblue Ġwhile Ġred Ġ& Ġgreen Ġremain Ġconstant ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdescending Ġdefine Ġif Ġwe Ġwant Ġto Ġincrease / decrease Ġblue ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip Count Ġled Ġcount ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip ĠĠĠĠĠ Ġpixel Ġstrip Ġobject ĊĠĠĠĠ Ġ* Ġ@ param Ġinit Red ĠĠĠ Ġred Ġcolor Ġconstant ĊĠĠĠĠ Ġ* Ġ@ param Ġinit Green Ġ Ġgreen Ġcolor Ġconstant ĊĠĠĠĠ Ġ* Ġ@ param Ġsingleton Ġ Ġsingleton Ġobject Ġ Ġfor Ġvars ĊĠĠĠĠ Ġ* Ġ@ param Ġserver ĠĠĠĠ Ġopen Ġpixel Ġcontrol Ġserver Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmix Blue ( desc ending : ĠBoolean , Ġstrip Count : ĠInt , Ġstrip : ĠPixel Strip ?, Ġinit Red : ĠInt , Ġinit Green : ĠInt , Ġsingleton : ĠF ade c andy Singleton , Ġserver : ĠO pc Client ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmix ( desc ending Ġ= Ġdescending , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġstrip Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġstrip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ= Ġinit Red , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg Ġ= Ġinit Green , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Color Ġ= Ġ 0 x 0 2 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġserver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġincrease / decrease Ġred Ġwhile Ġgreen Ġ& Ġblue Ġremain Ġconstant ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġdescending Ġdefine Ġif Ġwe Ġwant Ġto Ġincrease / decrease Ġred ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip Count Ġled Ġcount ĊĠĠĠĠ Ġ* Ġ@ param Ġstrip ĠĠĠĠĠ Ġpixel Ġstrip Ġobject ĊĠĠĠĠ Ġ* Ġ@ param Ġinit Green Ġ Ġgreen Ġcolor Ġconstant ĊĠĠĠĠ Ġ* Ġ@ param Ġinit Blue ĠĠ Ġblue Ġcolor Ġconstant ĊĠĠĠĠ Ġ* Ġ@ param Ġsingleton Ġ Ġsingleton Ġobject Ġ Ġfor Ġvars ĊĠĠĠĠ Ġ* Ġ@ param Ġserver ĠĠĠĠ Ġopen Ġpixel Ġcontrol Ġserver Ġobject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġmix Red ( desc ending : ĠBoolean , Ġstrip Count : ĠInt , Ġstrip : ĠPixel Strip ?, Ġinit Green : ĠInt , Ġinit Blue : ĠInt , Ġsingleton : ĠF ade c andy Singleton , Ġserver : ĠO pc Client ?): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmix ( desc ending Ġ= Ġdescending , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġstrip Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġstrip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġg Ġ= Ġinit Green , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb Ġ= Ġinit Blue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Color Ġ= Ġ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġserver ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreate Ġa Ġmix er Ġeffect . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġsingleton Ġsingleton Ġfor Ġvars ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġmix er ( singleton : ĠF ade c andy Singleton ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstatus : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġled Count Ġ= Ġsingleton . led Count ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( singleton . is Anim ating ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmix Green ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġled Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġsingleton . pixel Strip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Red Ġ= Ġ 2 5 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Blue Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġsingleton . opc Client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmix Blue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescending Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġled Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġsingleton . pixel Strip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Red Ġ= Ġ 2 5 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Green Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġsingleton . opc Client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmix Red ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġled Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġsingleton . pixel Strip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Green Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Blue Ġ= Ġ 2 5 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġsingleton . opc Client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmix Green ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescending Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġled Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġsingleton . pixel Strip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Red Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Blue Ġ= Ġ 2 5 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġsingleton . opc Client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmix Blue ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescending Ġ= Ġtrue , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġled Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġsingleton . pixel Strip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Red Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Green Ġ= Ġ 2 5 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġsingleton . opc Client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġmix Red ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescending Ġ= Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Count Ġ= Ġled Count , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstrip Ġ= Ġsingleton . pixel Strip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Green Ġ= Ġ 2 5 5 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinit Blue Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton Ġ= Ġsingleton , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Ġ= Ġsingleton . opc Client ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġcreate Ġa Ġpulse Ġeffect ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġpulse ( singleton : ĠF ade c andy Singleton ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstatus : ĠInt ? ĊĠĠĠĠĠĠĠ Ġval Ġled Count Ġ= Ġsingleton . led Count ĊĠĠĠĠĠĠĠ Ġif Ġ( singleton . is Anim ating ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton . opc Device ?. setColor Correction ( App Constants . DEFAULT _ G AM MA _ COR RECTION , Ġ 0 . 0 f , Ġ 0 . 0 f , Ġ 0 . 0 f ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġsingleton . opc Client ?. show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhile Ġ( singleton . is Anim ating ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġled Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton . pixel Strip ?. set Pixel Color ( i , Ġsingleton . color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġgrad uate Color Correction ( ascending Ġ= Ġtrue , Ġserver Ġ= Ġsingleton . opc Client , Ġfade c andy Ġ= Ġsingleton . opc Device , Ġsingleton Ġ= Ġsingleton ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġgrad uate Color Correction ( ascending Ġ= Ġfalse , Ġserver Ġ= Ġsingleton . opc Client , Ġfade c andy Ġ= Ġsingleton . opc Device , Ġsingleton Ġ= Ġsingleton ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( status Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( singleton . is Anim ating ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( singleton . pulse Pause . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġincrease / decrease Ġcolor Ġcorrection Ġfor Ġa Ġpulse Ġeffect . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġascending Ġincrease Ġif Ġtrue Ġ/ Ġdecrease Ġif Ġfalse ĊĠĠĠĠ Ġ* Ġ@ param Ġserver ĠĠĠ Ġopen Ġpixel Ġcontrol Ġserver ĊĠĠĠĠ Ġ* Ġ@ param Ġfade c andy Ġfade c andy Ġdevice ĊĠĠĠĠ Ġ* Ġ@ param Ġsingleton Ġsingleton Ġto Ġget Ġvars ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġcontinue Ġ/ Ġfalse Ġto Ġstop ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġgrad uate Color Correction ( ascending : ĠBoolean , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver : ĠO pc Client ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfade c andy : ĠO pc Device ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingleton : ĠF ade c andy Singleton ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbright Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġif Ġ(! ascending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbright Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. 9 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfade c andy ?. setColor Correction ( App Constants . DEFAULT _ G AM MA _ COR RECTION , Ġbright , Ġbright , Ġbright ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus Ġ= Ġserver ?. show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ascending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbright Ġ+= Ġ 0 . 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbright Ġ-= Ġ 0 . 1 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( singleton . is Anim ating ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( singleton . pulse Delay . to Long ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( ascending ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfade c andy ?. setColor Correction ( App Constants . DEFAULT _ G AM MA _ COR RECTION , Ġ 1 f , Ġ 1 f , Ġ 1 f ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfade c andy ?. setColor Correction ( App Constants . DEFAULT _ G AM MA _ COR RECTION , Ġ 0 f , Ġ 0 f , Ġ 0 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġserver ?. show () ĊĠĠĠĠĠĠĠ Ġreturn Ġ 0 ĊĠĠĠ Ġ} Ċ } Ċ