package Ġspeech er . generator . bank Ċ Ċ import Ġprocessing . video . Movie Ċ import Ġspeech er . domain . Sentence Ċ import Ġspeech er . generator . movie . Movie Contract Ċ import Ġjava . io . File Ċ Ċ interface ĠMovie Bank Contract Ġ{ ĊĊĠĠĠ Ġdata Ġclass ĠConfig Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġval Ġwords : ĠSentence ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġlooping : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġval Ġvolume : ĠFloat Ġ= Ġ 1 f , ĊĠĠĠĠĠĠĠ Ġval Ġplay Event Latency : ĠFloat Ġ= Ġ 0 . 0 5 f , ĊĠĠĠĠĠĠĠ Ġval Ġplay One Word At AT ime : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġval Ġword Space Time : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠ Ġvar Ġplay Speed : ĠFloat Ġ= Ġ 1 f ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinterface ĠPres enter Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġlistener : ĠListener ? ĊĠĠĠĠĠĠĠ Ġval Ġsubtitle To Display : ĠString ĊĠĠĠĠĠĠĠ Ġfun Ġload Movie File ( movie : ĠFile ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠExternal Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsubtitle To Display : ĠString ĊĠĠĠĠĠĠĠ Ġvar Ġconfig : ĠConfig ĊĠĠĠĠĠĠĠ Ġval Ġplay State : ĠPlay State ĊĠĠĠĠĠĠĠ Ġfun Ġpause () ĊĠĠĠĠĠĠĠ Ġfun Ġload Movie File ( movie : ĠFile ) ĊĠĠĠĠĠĠĠ Ġfun Ġstart Playing () ĊĠĠĠĠĠĠĠ Ġfun Ġcontinue Playing () ĊĠĠĠĠĠĠĠ Ġfun Ġcleanup () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Play Finished () ĊĠĠĠĠĠĠĠ Ġfun Ġon StateChanged () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġactive : ĠInt ĊĠĠĠĠĠĠĠ Ġfun Ġrender () ĊĠĠĠĠĠĠĠ Ġfun Ġmovie Event ( m : ĠMovie ) ĊĠĠĠĠĠĠĠ Ġfun Ġadd Movie View ( view : ĠMovie Contract . View ) ĊĠĠĠĠĠĠĠ Ġfun Ġcleanup () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdata Ġclass ĠState ( ĊĠĠĠĠĠĠĠ Ġvar Ġwords : ĠSentence ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġvar Ġloading Word : ĠInt Ġ= Ġ- 1 , Ġ// Ġcurrently Ġloading Ġword ĊĠĠĠĠĠĠĠ Ġvar Ġactive Index : ĠInt Ġ= Ġ- 1 , Ġ// Ġcurrently Ġplaying Ġplayer ĊĠĠĠĠĠĠĠ Ġ// var Ġplaying Word : ĠInt Ġ= Ġ- 1 , Ġ// Ġcurrently Ġplaying Ġword ĊĠĠĠĠĠĠĠ Ġvar Ġmovie To Word Map : ĠMutable Map < Int , ĠSentence . Word ?> Ġ= Ġmutable Map Of (), ĊĠĠĠĠĠĠĠ Ġvar Ġplay After Loaded : ĠBoolean Ġ= Ġfalse ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġenum Ġclass ĠPlay State Ġ{ ĠNOT _ INIT , ĠINIT , ĠLO ADING , ĠLO ADED , ĠP LAY ING , ĠPA USED , ĠCOMP LETE Ġ} Ċ }