@ file : Opt In ( kotlin . experimental . Experimental Type Inference :: class ) Ċ package Ġcom . ch op shop 1 6 6 . ch op shop lib Ċ Ċ import Ġedu . wpi . first . cs core . Video Sink Ċ import Ġedu . wpi . first . cs core . Video Source Ċ import Ġedu . wpi . first . cam eras erver . Camera Server Ċ import Ġedu . wpi . first . util . send able . Send able Ċ import Ġedu . wpi . first . wp ilib j . shuffle board . Shuffle board Ċ import Ġedu . wpi . first . wp ilib j . shuffle board . Shuffle board Container Ċ import Ġedu . wpi . first . wp ilib j . smart dashboard . Send able Chooser Ċ import Ġedu . wpi . first . wp ilib j . smart dashboard . Smart Dashboard Ċ Ċ class ĠDashboard Wrapper Ġinternal Ġconstructor Ġ() Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠSend able ) Ġ= Ġ( name Ġdisplays Ġvalue ) ĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠBoolean ) Ġ= Ġ( name Ġdisplays Ġvalue ) ĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠString ) Ġ= Ġ( name Ġdisplays Ġvalue ) ĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠDouble ) Ġ= Ġ( name Ġdisplays Ġvalue ) ĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠInt ) Ġ= Ġ( name Ġdisplays Ġvalue ) ĊĊĠĠĠ Ġoperator Ġfun Ġget ( name : ĠString ) Ġ= ĠSmart Dashboard . getData ( name ) ĊĊĠĠĠ Ġoperator Ġfun Ġinvoke ( block : ĠDashboard Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= Ġapply ( block ) ĊĊĠĠĠ Ġin fix Ġfun ĠString . display s ( value : ĠSend able ) Ġ= ĠSmart Dashboard . put Data ( this , Ġvalue ) ĊĠĠĠ Ġin fix Ġfun ĠString . display s ( value : ĠBoolean ) Ġ= ĠSmart Dashboard . put Boolean ( this , Ġvalue ) ĊĠĠĠ Ġin fix Ġfun ĠString . display s ( value : ĠString ) Ġ= ĠSmart Dashboard . putString ( this , Ġvalue ) ĊĠĠĠ Ġin fix Ġfun ĠString . display s ( value : ĠDouble ) Ġ= ĠSmart Dashboard . put Number ( this , Ġvalue ) ĊĠĠĠ Ġin fix Ġfun ĠString . display s ( value : ĠInt ) Ġ= ĠSmart Dashboard . put Number ( this , Ġvalue . toDouble ()) ĊĊĠĠĠ Ġfun Ġentry ( name : ĠString ) Ġ= ĠSmart Dashboard . getEntry ( name ) Ċ } Ċ val Ġdashboard Ġ= ĠDashboard Wrapper () Ċ Ċ class ĠSh uffle board Container Wrapper Ġinternal Ġconstructor Ġ( val Ġcon Ġ: ĠSh uffle board Container ) Ġ{ ĊĊĠĠĠ Ġval Ġtitle Ġ: ĠString Ġget () Ġ{ Ġreturn Ġcon . getTitle () Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠSend able ) Ġ= Ġname ( value ) ĊĠĠĠ Ġ@ Over load Resolution By Lambda ReturnType ĊĠĠĠ Ġ@ Jvm Name (" set Boolean ") Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : Ġ() Ġ-> ĠBoolean ) Ġ= Ġname ( value ) ĊĠĠĠ Ġ@ Jvm Name (" setString ") Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : Ġ() Ġ-> ĠString ) Ġ= Ġname ( value ) ĊĠĠĠ Ġ@ Jvm Name (" set Number ") Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : Ġ() Ġ-> ĠDouble ) Ġ= Ġname ( value ) ĊĠĠĠ Ġ@ Jvm Name (" setInt ") Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : Ġ() Ġ-> ĠInt ) Ġ= Ġname ( value ) ĊĠĠĠĠĊĠĠĠ Ġoperator Ġfun Ġget ( name : ĠString ) Ġ= ĠSh uffle board Container Wrapper ( con . get Layout ( name )) ĊĠĠĠ Ġfun Ġlayout ( name Ġ: ĠString , Ġblock : ĠSh uffle board Container Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= Ġthis [ name ]. run ( block ) ĊĊĠĠĠ Ġoperator Ġfun ĠString . invoke ( value : ĠSend able ) Ġ= Ġcon . add ( this , Ġvalue ) ĊĠĠĠ Ġ@ Over load Resolution By Lambda ReturnType ĊĠĠĠ Ġ@ Jvm Name (" invoke Boolean ") Ġoperator Ġfun ĠString . invoke ( value : Ġ() Ġ-> ĠBoolean ) Ġ= Ġcon . add Boolean ( this , Ġvalue ) ĊĠĠĠ Ġ@ Jvm Name (" invoke String ") Ġoperator Ġfun ĠString . invoke ( value : Ġ() Ġ-> ĠString ) Ġ= Ġcon . add String ( this , Ġvalue ) ĊĠĠĠ Ġ@ Jvm Name (" invoke Number ") Ġoperator Ġfun ĠString . invoke ( value : Ġ() Ġ-> ĠDouble ) Ġ= Ġcon . add Number ( this , Ġvalue ) ĊĠĠĠ Ġ@ Jvm Name (" invoke Int ") Ġoperator Ġfun ĠString . invoke ( value : Ġ() Ġ-> ĠInt ) Ġ= Ġcon . add Number ( this ) Ġ{ Ġvalue (). toDouble () Ġ} Ċ } Ċ fun Ġshuffle board ( name Ġ: ĠString , Ġblock : ĠSh uffle board Container Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĠSh uffle board Container Wrapper ( Shuffle board . get Tab ( name )). apply ( block ) Ċ Ċ class ĠCho oser Wrapper < T >( val Ġcho oser : ĠSend able Chooser < T >) Ġ{ ĊĠĠĠ Ġin fix Ġfun ĠString . default ( value : ĠT ) Ġ{ Ġcho oser . setDefault Option ( this , Ġvalue ) Ġ} ĊĠĠĠ Ġin fix Ġfun ĠString . ch oo ses ( value : ĠT ) Ġ{ Ġcho oser . add Option ( this , Ġvalue ) Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > Ġcho oser ( block : ĠCho oser Wrapper < T >. () Ġ-> ĠUnit ) Ġ= ĠSend able Chooser < T >(). apply Ġ{ ĊĠĠĠ ĠCho oser Wrapper < T >( this ). block () Ċ } Ċ Ċ class ĠVideo Source Wrapper ( val Ġsource : ĠVideo Source ) Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġget ( name : ĠString ) Ġ= Ġsource . getProperty ( name ). get () ĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠInt ) Ġ= Ġsource . getProperty ( name ). set ( value ) Ċ } Ċ Ċ class ĠVideo Sink Wrapper ( val Ġsink : ĠVideo Sink ) Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġget ( name : ĠString ) Ġ= Ġsink . getProperty ( name ). get () ĊĠĠĠ Ġoperator Ġfun Ġset ( name : ĠString , Ġvalue : ĠInt ) Ġ= Ġsink . getProperty ( name ). set ( value ) Ċ } Ċ Ċ class ĠCamera Server Wrapper Ġ{ ĊĠĠĠ Ġfun Ġserver ( block : ĠVideo Sink Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠĠĠĠĠ ĠCamera Server . getServer (). apply Ġ{ ĠVideo Sink Wrapper ( this ). block () Ġ} ĊĠĠĠ Ġfun Ġserver ( name : ĠString , Ġblock : ĠVideo Sink Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠĠĠĠĠ ĠCamera Server . getServer ( name ). apply Ġ{ ĠVideo Sink Wrapper ( this ). block () Ġ} ĊĠĠĠ Ġfun Ġsource ( block : ĠVideo Source Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠĠĠĠĠ ĠCamera Server . start Automatic Capture (). apply Ġ{ ĠVideo Source Wrapper ( this ). block () Ġ} ĊĠĠĠ Ġfun Ġsource ( dev : ĠInt , Ġblock : ĠVideo Source Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠĠĠĠĠ ĠCamera Server . start Automatic Capture ( dev ). apply Ġ{ ĠVideo Source Wrapper ( this ). block () Ġ} ĊĠĠĠ Ġfun Ġsource ( camera : ĠVideo Source , Ġblock : ĠVideo Sink Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠĠĠĠĠ ĠCamera Server . start Automatic Capture ( camera ). apply Ġ{ ĠVideo Sink Wrapper ( this ). block () Ġ} ĊĠĠĠ Ġfun Ġsource ( name : ĠString , Ġdev : ĠInt , Ġblock : ĠVideo Source Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠĠĠĠĠ ĠCamera Server . start Automatic Capture ( name , Ġdev ). apply Ġ{ ĠVideo Source Wrapper ( this ). block () Ġ} ĊĠĠĠ Ġfun Ġsource ( name : ĠString , Ġpath : ĠString , Ġblock : ĠVideo Source Wrapper . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ= ĊĠĠĠĠĠĠĠ ĠCamera Server . start Automatic Capture ( name , Ġpath ). apply Ġ{ ĠVideo Source Wrapper ( this ). block () Ġ} Ċ } Ċ Ċ val Ġcamera Server Ġ= ĠCamera Server Wrapper () Ċ