package Ġb aa ah s . dm x Ċ Ċ interface ĠD mx Ġ{ ĊĠĠĠ Ġinterface ĠDriver Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġfind D mx Devices (): ĠList < Device > ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠNo Op D mx Driver Ġ= Ġobject Ġ: ĠDriver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġfind D mx Devices (): ĠList < Device > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠDevice Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġfun Ġas Un iverse (): ĠUn iverse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġclass ĠUn iverse Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** Ġ@ param Ġbase Channel ĠZero - based . Ġ*/ ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġwriter ( base Channel : ĠInt , Ġchannel Count : ĠInt ): ĠBuffer ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġsend Frame () ĊĠĠĠĠĠĠĠ Ġabstract Ġfun Ġall Off () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuffer ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġchannels : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbase Channel : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġchannel Count : ĠInt Ġ= Ġchannels . size ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġget ( channel : ĠChannel ): ĠByte Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget ( channel . offset ) ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġget ( index : ĠInt ): ĠByte Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Check ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġchannels [ base Channel Ġ+ Ġindex ] ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġset ( channel : ĠChannel , Ġvalue : ĠByte ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( channel . offset , Ġvalue ) ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġset ( index : ĠInt , Ġvalue : ĠByte ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbounds Check ( index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchannels [ base Channel Ġ+ Ġindex ] Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġbounds Check ( index : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ< Ġ 0 Ġ|| Ġindex Ġ>= Ġchannel Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" index Ġout Ġof Ġbounds : Ġ$ index Ġ>= Ġ$ channel Count ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠChannel Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġoffset : ĠInt ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval Ġchannels Per Un iverse Ġ= Ġ 5 1 2 ĊĠĠĠ Ġ} Ċ } Ċ