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 ->
(progstateT -> In -> (progstateT, [Out])) ->
EventloopSetupConfiguration progstateT
allModulesEventloopSetupConfiguration beginProgstate eventloop
= ( EventloopSetupConfiguration
beginProgstate
eventloop
[ setupFileModuleConfiguration
, setupTimerModuleConfiguration
, setupKeyboardModuleConfiguration
, setupMouseModuleConfiguration
, setupStdInModuleConfiguration
, setupStdOutModuleConfiguration
]
)
setupSharedIOConstants :: IO SharedIOConstants
setupSharedIOConstants
= do
safePrintToken <- createSafePrintToken
return (SharedIOConstants safePrintToken undefined)
setupSharedIOState :: IO SharedIOState
setupSharedIOState
= return SharedIOState