module Graphics.UI.SDL.Basic (
init,
initSubSystem,
quit,
quitSubSystem,
setMainReady,
wasInit,
addHintCallback,
clearHints,
delHintCallback,
getHint,
setHint,
setHintWithPriority,
clearError,
getError,
setError,
log,
logCritical,
logDebug,
logError,
logGetOutputFunction,
logGetPriority,
logInfo,
logMessage,
logResetPriorities,
logSetAllPriority,
logSetOutputFunction,
logSetPriority,
logVerbose,
logWarn,
getRevision,
getRevisionNumber,
getVersion
) where
import Control.Monad.IO.Class
import Foreign.C.String
import Foreign.C.Types
import Foreign.Ptr
import Graphics.UI.SDL.Enum
import Graphics.UI.SDL.Types
import Prelude hiding (init, log)
foreign import ccall "SDL.h SDL_Init" init' :: InitFlag -> IO CInt
foreign import ccall "SDL.h SDL_InitSubSystem" initSubSystem' :: InitFlag -> IO CInt
foreign import ccall "SDL.h SDL_Quit" quit' :: IO ()
foreign import ccall "SDL.h SDL_QuitSubSystem" quitSubSystem' :: InitFlag -> IO ()
foreign import ccall "SDL.h SDL_SetMainReady" setMainReady' :: IO ()
foreign import ccall "SDL.h SDL_WasInit" wasInit' :: InitFlag -> IO InitFlag
foreign import ccall "SDL.h SDL_AddHintCallback" addHintCallback' :: CString -> HintCallback -> Ptr () -> IO ()
foreign import ccall "SDL.h SDL_ClearHints" clearHints' :: IO ()
foreign import ccall "SDL.h SDL_DelHintCallback" delHintCallback' :: CString -> HintCallback -> Ptr () -> IO ()
foreign import ccall "SDL.h SDL_GetHint" getHint' :: CString -> IO CString
foreign import ccall "SDL.h SDL_SetHint" setHint' :: CString -> CString -> IO Bool
foreign import ccall "SDL.h SDL_SetHintWithPriority" setHintWithPriority' :: CString -> CString -> HintPriority -> IO Bool
foreign import ccall "SDL.h SDL_ClearError" clearError' :: IO ()
foreign import ccall "SDL.h SDL_GetError" getError' :: IO CString
foreign import ccall "sdlhelper.c SDLHelper_SetError" setError' :: CString -> IO CInt
foreign import ccall "SDL.h SDL_LogGetOutputFunction" logGetOutputFunction' :: Ptr LogOutputFunction -> Ptr (Ptr ()) -> IO ()
foreign import ccall "SDL.h SDL_LogGetPriority" logGetPriority' :: CInt -> IO LogPriority
foreign import ccall "sdlhelper.c SDLHelper_LogMessage" logMessage' :: CInt -> LogPriority -> CString -> IO ()
foreign import ccall "SDL.h SDL_LogResetPriorities" logResetPriorities' :: IO ()
foreign import ccall "SDL.h SDL_LogSetAllPriority" logSetAllPriority' :: LogPriority -> IO ()
foreign import ccall "SDL.h SDL_LogSetOutputFunction" logSetOutputFunction' :: LogOutputFunction -> Ptr () -> IO ()
foreign import ccall "SDL.h SDL_LogSetPriority" logSetPriority' :: CInt -> LogPriority -> IO ()
foreign import ccall "SDL.h SDL_GetRevision" getRevision' :: IO CString
foreign import ccall "SDL.h SDL_GetRevisionNumber" getRevisionNumber' :: IO CInt
foreign import ccall "SDL.h SDL_GetVersion" getVersion' :: Ptr Version -> IO ()
init :: MonadIO m => InitFlag -> m CInt
init v1 = liftIO $ init' v1
initSubSystem :: MonadIO m => InitFlag -> m CInt
initSubSystem v1 = liftIO $ initSubSystem' v1
quit :: MonadIO m => m ()
quit = liftIO quit'
quitSubSystem :: MonadIO m => InitFlag -> m ()
quitSubSystem v1 = liftIO $ quitSubSystem' v1
setMainReady :: MonadIO m => m ()
setMainReady = liftIO setMainReady'
wasInit :: MonadIO m => InitFlag -> m InitFlag
wasInit v1 = liftIO $ wasInit' v1
addHintCallback :: MonadIO m => CString -> HintCallback -> Ptr () -> m ()
addHintCallback v1 v2 v3 = liftIO $ addHintCallback' v1 v2 v3
clearHints :: MonadIO m => m ()
clearHints = liftIO clearHints'
delHintCallback :: MonadIO m => CString -> HintCallback -> Ptr () -> m ()
delHintCallback v1 v2 v3 = liftIO $ delHintCallback' v1 v2 v3
getHint :: MonadIO m => CString -> m CString
getHint v1 = liftIO $ getHint' v1
setHint :: MonadIO m => CString -> CString -> m Bool
setHint v1 v2 = liftIO $ setHint' v1 v2
setHintWithPriority :: MonadIO m => CString -> CString -> HintPriority -> m Bool
setHintWithPriority v1 v2 v3 = liftIO $ setHintWithPriority' v1 v2 v3
clearError :: MonadIO m => m ()
clearError = liftIO clearError'
getError :: MonadIO m => m CString
getError = liftIO getError'
setError :: MonadIO m => CString -> m CInt
setError v1 = liftIO $ setError' v1
log :: CString -> IO ()
log = logMessage SDL_LOG_CATEGORY_APPLICATION SDL_LOG_PRIORITY_INFO
logCritical :: CInt -> CString -> IO ()
logCritical category = logMessage category SDL_LOG_PRIORITY_CRITICAL
logDebug :: CInt -> CString -> IO ()
logDebug category = logMessage category SDL_LOG_PRIORITY_DEBUG
logError :: CInt -> CString -> IO ()
logError category = logMessage category SDL_LOG_PRIORITY_ERROR
logGetOutputFunction :: MonadIO m => Ptr LogOutputFunction -> Ptr (Ptr ()) -> m ()
logGetOutputFunction v1 v2 = liftIO $ logGetOutputFunction' v1 v2
logGetPriority :: MonadIO m => CInt -> m LogPriority
logGetPriority v1 = liftIO $ logGetPriority' v1
logInfo :: CInt -> CString -> IO ()
logInfo category = logMessage category SDL_LOG_PRIORITY_INFO
logMessage :: MonadIO m => CInt -> LogPriority -> CString -> m ()
logMessage v1 v2 v3 = liftIO $ logMessage' v1 v2 v3
logResetPriorities :: MonadIO m => m ()
logResetPriorities = liftIO logResetPriorities'
logSetAllPriority :: MonadIO m => LogPriority -> m ()
logSetAllPriority v1 = liftIO $ logSetAllPriority' v1
logSetOutputFunction :: MonadIO m => LogOutputFunction -> Ptr () -> m ()
logSetOutputFunction v1 v2 = liftIO $ logSetOutputFunction' v1 v2
logSetPriority :: MonadIO m => CInt -> LogPriority -> m ()
logSetPriority v1 v2 = liftIO $ logSetPriority' v1 v2
logVerbose :: CInt -> CString -> IO ()
logVerbose category = logMessage category SDL_LOG_PRIORITY_VERBOSE
logWarn :: CInt -> CString -> IO ()
logWarn category = logMessage category SDL_LOG_PRIORITY_WARN
getRevision :: MonadIO m => m CString
getRevision = liftIO getRevision'
getRevisionNumber :: MonadIO m => m CInt
getRevisionNumber = liftIO getRevisionNumber'
getVersion :: MonadIO m => Ptr Version -> m ()
getVersion v1 = liftIO $ getVersion' v1