package Ġcom . the j hol mes . rus sound Ċ Ċ /** ĠUnder stand s Ġthe Ġstatus Ġmessage Ġcoming Ġback Ġfrom Ġthe ĠR us sound ĠMatrix . Ġ*/ Ċ class ĠReceived Status Action Handler Ġ: ĠR us sound Action Handler Ġ{ ĊĠ Ġoverride Ġfun Ġcreate Action ( input : ĠByteArray ): ĠR us sound Action Ġ{ ĊĠĠĠ Ġreturn ĠReceived Status Action ( input ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġval Ġinfo Offsets : ĠSet < Int > ĊĠĠĠĠĠ Ġ= Ġset Of ( 1 2 ). plus (( 2 0 .. 3 0 ). toSet ()) ĊĊĠ Ġoverride Ġval Ġcommand : ĠByteArray Ġ= Ġbyte ArrayOf ( ĊĠĠĠĠĠĠ 0 xf 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 7 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 7 f . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 4 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 2 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 7 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 1 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 c . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 x 0 0 . to Byte (), ĊĠĠĠĠĠĠ 0 xf 7 . to Byte () ĊĠ Ġ) Ċ } Ċ Ċ class ĠReceived Status Action ( override Ġval Ġinput : ĠByteArray ) Ġ: ĠR us sound Action Ġ{ ĊĠ Ġoverride Ġval Ġzone Offset Ġ= Ġ 1 2 ĊĊĠ Ġval Ġzone Info : ĠZone Info ĊĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠ Ġval Ġzone Ġ= Ġinput [ 1 2 ]. toInt () ĊĠĠĠĠĠ Ġval Ġsource Ġ= Ġinput [ 2 1 ]. toInt () ĊĊĠĠĠĠĠ Ġ// ĠConvert Ġfrom ĠR us sound Ġcode Ġto Ġsomething Ġhuman Ġreadable . ĊĠĠĠĠĠ Ġval Ġpower Ġ= Ġinput [ 2 0 ] Ġ== Ġ 1 . to Byte () ĊĠĠĠĠĠ Ġval Ġvolume Ġ= Ġinput [ 2 2 ]. toInt () Ġ* Ġ 2 ĊĠĠĠĠĠ Ġval Ġb ass Ġ= Ġinput [ 2 3 ]. toInt () Ġ- Ġ 1 0 ĊĠĠĠĠĠ Ġval Ġtre ble Ġ= Ġinput [ 2 4 ]. toInt () Ġ- Ġ 1 0 ĊĠĠĠĠĠ Ġval Ġlo ud ness Ġ= Ġinput [ 2 5 ] Ġ== Ġ 1 . to Byte () ĊĠĠĠĠĠ Ġval Ġbalance Ġ= Ġinput [ 2 6 ]. toInt () Ġ- Ġ 1 0 ĊĊĠĠĠĠĠ Ġreturn ĠZone Info ( zone , Ġsource , Ġpower , Ġvolume , Ġb ass , Ġtre ble , Ġbalance , Ġlo ud ness ) ĊĠĠĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġapply To ( current Zone Info : ĠZone Info ): ĠZone Info Ġ= Ġzone Info ĊĊĠ Ġoverride Ġfun Ġgenerate Response ( updated Zone Info : ĠZone Info ): ĠByteArray Ġ{ ĊĠĠĠ Ġreturn ĠR us sound Matrix To App Commands . return Status ( updated Zone Info ) ĊĠ Ġ} Ċ } Ċ