eventloop-0.5.0.0: src/Eventloop/DefaultConfiguration.hs
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
]
)
setupSharedIOState :: IO SharedIOState
setupSharedIOState
= do
safePrintToken <- createSafePrintToken
return (SharedIOState safePrintToken undefined)