package Ġc ubes . osc Ċ Ċ import Ġnet . rob mun ro . processing . util . decode ARGB Ċ import Ġprocessing . core . P Vector Ċ import Ġspeech er . util . wrapper . Log Wrapper Ċ import Ġjava . awt . Color Ċ import Ġjava . awt . Font Ċ Ċ class ĠO sc Event Mapper ( ĊĠĠĠ Ġprivate Ġval Ġlog : ĠLog Wrapper Ċ ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . tag ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Color ( event : ĠO sc Contract . Osc Event , Ġdefault : ĠColor ? Ġ= ĠColor . BLACK ): ĠColor ? Ġ= Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( event . args . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . args [ 0 ]. type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s " Ġ-> Ġ( event . args [ 0 ]. value Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġif Ġ( it . length Ġ== Ġ 9 ) Ġit . decode ARGB () Ġelse ĠColor . decode ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrey Ġ= Ġevent . args [ 0 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( grey , Ġgrey , Ġgrey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgrey Ġ= Ġevent . args [ 0 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( grey , Ġgrey , Ġgrey ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġcolor Ġosc Ġ= Ġ${ event . args }"); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . args [ 0 ]. type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġevent . args [ 0 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġevent . args [ 1 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġevent . args [ 2 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( r , Ġg , Ġb ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġevent . args [ 0 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġevent . args [ 1 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġevent . args [ 2 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( r , Ġg , Ġb ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġcolor Ġosc Ġ= Ġ${ event . args }"); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 4 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( event . args [ 0 ]. type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġevent . args [ 0 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġevent . args [ 1 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġevent . args [ 2 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġevent . args [ 3 ]. value Ġas ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( r , Ġg , Ġb , Ġa ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġevent . args [ 0 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġg Ġ= Ġevent . args [ 1 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġevent . args [ 2 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġa Ġ= Ġevent . args [ 3 ]. value Ġas ĠFloat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor ( r , Ġg , Ġb , Ġa ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġcolor Ġosc Ġ= Ġ${ event . args }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġcolor Ġosc Ġ= Ġ${ event . args }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. getOrElse Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġcolor Ġosc Ġ= Ġ${ event . args }") ĊĠĠĠĠĠĠĠ Ġdefault ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetString ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt ): ĠString Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( event . args [ arg ]. type Ġ== Ġ" s ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . args [ arg ]. value Ġas ĠString ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( event . args [ arg ]. type Ġ== Ġ" i ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . args [ arg ]. value Ġas ĠInt ). toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( event . args [ arg ]. type Ġ== Ġ" f ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . args [ arg ]. value Ġas ĠFloat ). toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġarg :$ arg Ġnot Ġa Ġstring Ġ= Ġ${ event . args [ arg ]} "); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetString OrNull ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt ): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( event . args [ arg ]. type Ġ== Ġ" s ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . args [ arg ]. value Ġas ĠString ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( event . args [ arg ]. type Ġ== Ġ" i ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . args [ arg ]. value Ġas ĠInt ). toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( event . args [ arg ]. type Ġ== Ġ" f ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( event . args [ arg ]. value Ġas ĠFloat ). toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< E Ġ: ĠEnum < E >> Ġget Enum ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt , Ġdef : ĠE ): ĠE Ġ= Ġif Ġ( event . args [ arg ]. type Ġ== Ġ" s ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdef :: class . java . enum Constants . find Ġ{ Ġit . name Ġ== Ġevent . args [ arg ]. value Ġas ĠString Ġ} Ġ?: Ġdef ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġarg :$ arg Ġnot Ġa Ġenum Ġvalue Ġof Ġ${ def :: class . java . simple Name }= Ġ${ event . args [ arg ]} "); ĊĠĠĠĠĠĠĠ Ġdef ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Boolean ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt ): ĠBoolean Ġ= Ġwhen Ġ( event . args [ arg ]. type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠInt ) Ġ== Ġ 1 ĊĠĠĠĠĠĠĠ Ġ" s " Ġ-> Ġevent . args [ arg ]. value Ġ== Ġ" true " ĊĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠFloat ) Ġ== Ġ 1 f ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġarg :$ arg Ġnot Ġa Ġboolean Ġ= Ġ${ event . args [ arg ]} "); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Int ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt ): ĠInt Ġ= Ġwhen Ġ( event . args [ arg ]. type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠInt ) ĊĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠFloat ). toInt () ĊĠĠĠĠĠĠĠ Ġ" s " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠString ). toInt () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġarg :$ arg Ġnot Ġa Ġint Ġ= Ġ${ event . args [ arg ]} "); ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Int 0 To 2 5 5 ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt ): ĠInt Ġ= Ġwhen Ġ( event . args [ arg ]. type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠInt ) ĊĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠFloat ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġif Ġ( it Ġ> Ġ 0 Ġ&& Ġit Ġ<= Ġ 1 ) Ġ( it Ġ* Ġ 2 5 5 ). toInt () Ġelse Ġit . toInt () Ġ} ĊĠĠĠĠĠĠĠ Ġ" s " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠString ). toInt () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġarg :$ arg Ġnot Ġa Ġint Ġ= Ġ${ event . args [ arg ]} "); ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Float ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt ): ĠFloat Ġ= Ġwhen Ġ( event . args [ arg ]. type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠInt ). toFloat () ĊĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠFloat ) ĊĠĠĠĠĠĠĠ Ġ" s " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠString ). toFloat () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġarg :$ arg Ġnot Ġa Ġfloat Ġ= Ġ${ event . args [ arg ]} "); ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Float 0 To 1 ( event : ĠO sc Contract . Osc Event , Ġarg : ĠInt ): ĠFloat Ġ= Ġwhen Ġ( event . args [ arg ]. type ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" i " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠInt Ġ/ Ġ 2 5 5 f ). toFloat () ĊĠĠĠĠĠĠĠ Ġ" f " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠFloat ) ĊĠĠĠĠĠĠĠ Ġ" s " Ġ-> Ġ( event . args [ arg ]. value Ġas ĠString ). toFloat () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . e ("${ event . message }: Ġarg :$ arg Ġnot Ġa Ġfloat Ġ= Ġ${ event . args [ arg ]} "); ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Font ( e : ĠO sc Contract . Osc Event ): ĠFont ? Ġ= ĊĠĠĠĠĠĠĠ Ġ( e . args . get ( 0 ). value Ġas ? ĠString )?. let Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( e . args . size Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( e . args . get ( 1 ). type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s " Ġ-> ĠFont ( name , ĠFont . PLAIN , Ġget Int ( e , Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" f " Ġ-> ĠFont ( name , ĠFont . PLAIN , Ġget Int ( e , Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" i " Ġ-> ĠFont ( name , ĠFont . PLAIN , Ġget Int ( e , Ġ 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠFont ( name , ĠFont . PLAIN , Ġ 6 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFont ( name , ĠFont . PLAIN , Ġ 6 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget P Vector ( e : ĠO sc Contract . Osc Event ): ĠP Vector Ġ= ĊĠĠĠĠĠĠĠ ĠP Vector ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Float ( e , Ġ 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Float ( e , Ġ 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Float ( e , Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ) Ċ }