module Eventloop.DefaultConfiguration where import Control.Concurrent.SafePrint import Eventloop.Module.Websocket.Keyboard import Eventloop.Module.Websocket.Mouse import Eventloop.Module.File import Eventloop.Module.StdOut import Eventloop.Module.StdIn import Eventloop.Module.Timer import Eventloop.Types.Events import Eventloop.Types.System allModulesEventloopSetupConfiguration :: progstateT -> {- Begin program state -} (progstateT -> In -> (progstateT, [Out])) -> {- Eventloop function -} EventloopSetupConfiguration progstateT allModulesEventloopSetupConfiguration beginProgstate eventloop = ( EventloopSetupConfiguration -- Begin program state beginProgstate -- Eventloop function eventloop -- All module setupconfigurations [ setupFileModuleConfiguration , setupTimerModuleConfiguration , setupKeyboardModuleConfiguration , setupMouseModuleConfiguration , setupStdInModuleConfiguration , setupStdOutModuleConfiguration ] ) setupSharedIOConstants :: IO SharedIOConstants setupSharedIOConstants = do safePrintToken <- createSafePrintToken return (SharedIOConstants safePrintToken undefined) setupSharedIOState :: IO SharedIOState setupSharedIOState = return SharedIOState