package Ġcom . ha ish ink it . view Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Matrix Ċ import Ġandroid . graphics . Rect F Ċ import Ġandroid . graphics . Surface Texture Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Size Ċ import Ġandroid . view . Surface Ċ import Ġandroid . view . Texture View Ċ import Ġcom . ha ish ink it . event . Event Ċ import Ġcom . ha ish ink it . event . Event Utils Ċ import Ġcom . ha ish ink it . event . I EventDispatcher Ċ import Ġcom . ha ish ink it . event . I EventListener Ċ import Ġcom . ha ish ink it . net . Net Stream Ċ import Ġcom . ha ish ink it . rt mp . R tmp Stream Ċ import Ġcom . ha ish ink it . util . Media Format Util Ċ import Ġcom . ha ish ink it . util . Video Gravity Ċ import Ġorg . apache . commons . lang 3 . builder . ToString Builder Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ Ċ class ĠH k Texture View ( context : ĠContext , Ġattributes : ĠAttributeSet ) Ġ: ĠTexture View ( context , Ġattributes ), ĠNet Stream View , ĠI EventListener , ĠTexture View . Surface Texture Listener Ġ{ ĊĠĠĠ Ġoverride Ġval Ġis Running : ĠAtomic Boolean Ġ= ĠAtomic Boolean ( false ) ĊĠĠĠ Ġoverride Ġvar Ġvideo Gravity : ĠInt Ġ= ĠVideo Gravity . RE SIZE _ AS PECT _ FILL ĊĠĠĠ Ġoverride Ġvar Ġstream : ĠNet Stream ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( field Ġas ? ĠI EventDispatcher )?. removeEventListener ( Event . RT MP _ STATUS , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( value Ġas ? ĠI EventDispatcher )?. addEventListener ( Event . RT MP _ STATUS , Ġthis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġvar Ġresolution Ġ= ĠSize ( 0 , Ġ 0 ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġsurface Texture Listener Ġ= Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġattach Stream ( stream : ĠNet Stream ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . stream Ġ= Ġstream ĊĠĠĠĠĠĠĠ Ġif Ġ( stream Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Running () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstop Running () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Running () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( isRunning . get ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġsurface Texture ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstream ?. surface Ġ= ĠSurface ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġis Running . set ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Running () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! isRunning . get ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġis Running . set ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Event ( event : ĠEvent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= ĠEvent Utils . toMap ( event ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( data [" code "]. toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR tmp Stream . Code . VIDEO _ DIMENSION _ CHANGE . raw Value Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstream ?. video Codec ?. output Format ?. let Ġ{ Ġformat Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠMedia Format Util . getWidth ( format ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠMedia Format Util . getHeight ( format ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolution Ġ= ĠSize ( width , Ġheight ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Texture ?. let Ġ{ Ġsurface Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Surface Texture Size Changed ( surface , Ġthis . width , Ġthis . height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Surface Texture Available ( surface : ĠSurface Texture , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstream ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . surface Ġ= ĠSurface ( surface ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Surface Texture Size Changed ( surface : ĠSurface Texture , Ġwidth : ĠInt , Ġheight : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdegrees Ġ= Ġif Ġ( resolution . width Ġ< Ġresolution . height ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġpor trait ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( width Ġ< Ġheight ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġlandscape ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( width Ġ< Ġheight ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 9 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠ Ġval Ġsrc Ġ= ĠRect F ( 0 f , Ġ 0 f , Ġresolution . width . toFloat (), Ġresolution . height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġval Ġdst Ġ= ĠRect F ( 0 f , Ġ 0 f , Ġthis . width . toFloat (), Ġthis . height . toFloat ()) ĊĠĠĠĠĠĠĠ Ġval Ġscreen Ġ= ĠRect F ( dst ) ĊĠĠĠĠĠĠĠ Ġmatrix . post Rotate ( degrees , Ġscreen . center X (), Ġscreen . center Y ()) ĊĠĠĠĠĠĠĠ Ġmatrix . map Rect ( dst ) ĊĠĠĠĠĠĠĠ Ġmatrix . set Rect To Rect ( src , Ġdst , ĠMatrix . Scale To Fit . CENTER ) ĊĠĠĠĠĠĠĠ Ġmatrix . map Rect ( src ) ĊĠĠĠĠĠĠĠ Ġmatrix . set Rect To Rect ( screen , Ġsrc , ĠMatrix . Scale To Fit . FILL ) ĊĠĠĠĠĠĠĠ Ġmatrix . post Rotate ( degrees , Ġscreen . center X (), Ġscreen . center Y ()) ĊĠĠĠĠĠĠĠ Ġset Transform ( matrix ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Surface Texture Destroyed ( surface : ĠSurface Texture ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Surface Texture Updated ( surface : ĠSurface Texture ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠTo StringBuilder . reflection ToString ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠH k Texture View :: class . java . simple Name ĊĠĠĠ Ġ} Ċ } Ċ