module Bindings.GLib.CoreApplicationSupport.MainEventLoop where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word
import Bindings.GLib.Fundamentals
import Bindings.GLib.Utilities.DateAndTimeFunctions
import Bindings.GLib.DataTypes.Datasets
import Bindings.GLib.CoreApplicationSupport.Threads
data C'GMainLoop = C'GMainLoop
foreign import ccall "g_main_loop_new" c'g_main_loop_new
:: Ptr C'GMainContext -> C'gboolean -> IO (Ptr C'GMainLoop)
foreign import ccall "&g_main_loop_new" p'g_main_loop_new
:: FunPtr (Ptr C'GMainContext -> C'gboolean -> IO (Ptr C'GMainLoop))
foreign import ccall "g_main_loop_ref" c'g_main_loop_ref
:: Ptr C'GMainLoop -> IO (Ptr C'GMainLoop)
foreign import ccall "&g_main_loop_ref" p'g_main_loop_ref
:: FunPtr (Ptr C'GMainLoop -> IO (Ptr C'GMainLoop))
foreign import ccall "g_main_loop_unref" c'g_main_loop_unref
:: Ptr C'GMainLoop -> IO ()
foreign import ccall "&g_main_loop_unref" p'g_main_loop_unref
:: FunPtr (Ptr C'GMainLoop -> IO ())
foreign import ccall "g_main_loop_run" c'g_main_loop_run
:: Ptr C'GMainLoop -> IO ()
foreign import ccall "&g_main_loop_run" p'g_main_loop_run
:: FunPtr (Ptr C'GMainLoop -> IO ())
foreign import ccall "g_main_loop_quit" c'g_main_loop_quit
:: Ptr C'GMainLoop -> IO ()
foreign import ccall "&g_main_loop_quit" p'g_main_loop_quit
:: FunPtr (Ptr C'GMainLoop -> IO ())
foreign import ccall "g_main_loop_is_running" c'g_main_loop_is_running
:: Ptr C'GMainLoop -> IO C'gboolean
foreign import ccall "&g_main_loop_is_running" p'g_main_loop_is_running
:: FunPtr (Ptr C'GMainLoop -> IO C'gboolean)
foreign import ccall "g_main_loop_get_context" c'g_main_loop_get_context
:: Ptr C'GMainLoop -> IO (Ptr C'GMainContext)
foreign import ccall "&g_main_loop_get_context" p'g_main_loop_get_context
:: FunPtr (Ptr C'GMainLoop -> IO (Ptr C'GMainContext))
c'G_PRIORITY_HIGH = 100
c'G_PRIORITY_HIGH :: (Num a) => a
c'G_PRIORITY_DEFAULT = 0
c'G_PRIORITY_DEFAULT :: (Num a) => a
c'G_PRIORITY_HIGH_IDLE = 100
c'G_PRIORITY_HIGH_IDLE :: (Num a) => a
c'G_PRIORITY_DEFAULT_IDLE = 200
c'G_PRIORITY_DEFAULT_IDLE :: (Num a) => a
c'G_PRIORITY_LOW = 300
c'G_PRIORITY_LOW :: (Num a) => a
data C'GMainContext = C'GMainContext
foreign import ccall "g_main_context_new" c'g_main_context_new
:: IO (Ptr C'GMainContext)
foreign import ccall "&g_main_context_new" p'g_main_context_new
:: FunPtr (IO (Ptr C'GMainContext))
foreign import ccall "g_main_context_ref" c'g_main_context_ref
:: Ptr C'GMainContext -> IO (Ptr C'GMainContext)
foreign import ccall "&g_main_context_ref" p'g_main_context_ref
:: FunPtr (Ptr C'GMainContext -> IO (Ptr C'GMainContext))
foreign import ccall "g_main_context_unref" c'g_main_context_unref
:: Ptr C'GMainContext -> IO ()
foreign import ccall "&g_main_context_unref" p'g_main_context_unref
:: FunPtr (Ptr C'GMainContext -> IO ())
foreign import ccall "g_main_context_default" c'g_main_context_default
:: IO (Ptr C'GMainContext)
foreign import ccall "&g_main_context_default" p'g_main_context_default
:: FunPtr (IO (Ptr C'GMainContext))
foreign import ccall "g_main_context_iteration" c'g_main_context_iteration
:: Ptr C'GMainContext -> C'gboolean -> IO C'gboolean
foreign import ccall "&g_main_context_iteration" p'g_main_context_iteration
:: FunPtr (Ptr C'GMainContext -> C'gboolean -> IO C'gboolean)
foreign import ccall "g_main_context_pending" c'g_main_context_pending
:: Ptr C'GMainContext -> IO C'gboolean
foreign import ccall "&g_main_context_pending" p'g_main_context_pending
:: FunPtr (Ptr C'GMainContext -> IO C'gboolean)
foreign import ccall "g_main_context_find_source_by_id" c'g_main_context_find_source_by_id
:: Ptr C'GMainContext -> C'guint -> IO (Ptr C'GSource)
foreign import ccall "&g_main_context_find_source_by_id" p'g_main_context_find_source_by_id
:: FunPtr (Ptr C'GMainContext -> C'guint -> IO (Ptr C'GSource))
foreign import ccall "g_main_context_find_source_by_user_data" c'g_main_context_find_source_by_user_data
:: Ptr C'GMainContext -> C'gpointer -> IO (Ptr C'GSource)
foreign import ccall "&g_main_context_find_source_by_user_data" p'g_main_context_find_source_by_user_data
:: FunPtr (Ptr C'GMainContext -> C'gpointer -> IO (Ptr C'GSource))
foreign import ccall "g_main_context_find_source_by_funcs_user_data" c'g_main_context_find_source_by_funcs_user_data
:: Ptr C'GMainContext -> Ptr C'GSourceFuncs -> C'gpointer -> IO (Ptr C'GSource)
foreign import ccall "&g_main_context_find_source_by_funcs_user_data" p'g_main_context_find_source_by_funcs_user_data
:: FunPtr (Ptr C'GMainContext -> Ptr C'GSourceFuncs -> C'gpointer -> IO (Ptr C'GSource))
foreign import ccall "g_main_context_wakeup" c'g_main_context_wakeup
:: Ptr C'GMainContext -> IO ()
foreign import ccall "&g_main_context_wakeup" p'g_main_context_wakeup
:: FunPtr (Ptr C'GMainContext -> IO ())
foreign import ccall "g_main_context_acquire" c'g_main_context_acquire
:: Ptr C'GMainContext -> IO C'gboolean
foreign import ccall "&g_main_context_acquire" p'g_main_context_acquire
:: FunPtr (Ptr C'GMainContext -> IO C'gboolean)
foreign import ccall "g_main_context_release" c'g_main_context_release
:: Ptr C'GMainContext -> IO ()
foreign import ccall "&g_main_context_release" p'g_main_context_release
:: FunPtr (Ptr C'GMainContext -> IO ())
foreign import ccall "g_main_context_is_owner" c'g_main_context_is_owner
:: Ptr C'GMainContext -> IO C'gboolean
foreign import ccall "&g_main_context_is_owner" p'g_main_context_is_owner
:: FunPtr (Ptr C'GMainContext -> IO C'gboolean)
foreign import ccall "g_main_context_wait" c'g_main_context_wait
:: Ptr C'GMainContext -> Ptr C'GCond -> Ptr C'GMutex -> IO C'gboolean
foreign import ccall "&g_main_context_wait" p'g_main_context_wait
:: FunPtr (Ptr C'GMainContext -> Ptr C'GCond -> Ptr C'GMutex -> IO C'gboolean)
foreign import ccall "g_main_context_prepare" c'g_main_context_prepare
:: Ptr C'GMainContext -> Ptr C'gint -> IO C'gboolean
foreign import ccall "&g_main_context_prepare" p'g_main_context_prepare
:: FunPtr (Ptr C'GMainContext -> Ptr C'gint -> IO C'gboolean)
foreign import ccall "g_main_context_query" c'g_main_context_query
:: Ptr C'GMainContext -> C'gint -> Ptr C'gint -> Ptr C'GPollFD -> C'gint -> IO C'gint
foreign import ccall "&g_main_context_query" p'g_main_context_query
:: FunPtr (Ptr C'GMainContext -> C'gint -> Ptr C'gint -> Ptr C'GPollFD -> C'gint -> IO C'gint)
foreign import ccall "g_main_context_check" c'g_main_context_check
:: Ptr C'GMainContext -> C'gint -> Ptr C'GPollFD -> C'gint -> IO C'gint
foreign import ccall "&g_main_context_check" p'g_main_context_check
:: FunPtr (Ptr C'GMainContext -> C'gint -> Ptr C'GPollFD -> C'gint -> IO C'gint)
foreign import ccall "g_main_context_dispatch" c'g_main_context_dispatch
:: Ptr C'GMainContext -> IO ()
foreign import ccall "&g_main_context_dispatch" p'g_main_context_dispatch
:: FunPtr (Ptr C'GMainContext -> IO ())
foreign import ccall "g_main_context_set_poll_func" c'g_main_context_set_poll_func
:: Ptr C'GMainContext -> C'GPollFunc -> IO ()
foreign import ccall "&g_main_context_set_poll_func" p'g_main_context_set_poll_func
:: FunPtr (Ptr C'GMainContext -> C'GPollFunc -> IO ())
foreign import ccall "g_main_context_get_poll_func" c'g_main_context_get_poll_func
:: Ptr C'GMainContext -> IO C'GPollFunc
foreign import ccall "&g_main_context_get_poll_func" p'g_main_context_get_poll_func
:: FunPtr (Ptr C'GMainContext -> IO C'GPollFunc)
type C'GPollFunc = FunPtr (Ptr C'GPollFD -> C'guint -> C'gint -> IO C'gint)
foreign import ccall "wrapper" mk'GPollFunc
:: (Ptr C'GPollFD -> C'guint -> C'gint -> IO C'gint) -> IO C'GPollFunc
foreign import ccall "dynamic" mK'GPollFunc
:: C'GPollFunc -> (Ptr C'GPollFD -> C'guint -> C'gint -> IO C'gint)
foreign import ccall "g_main_context_add_poll" c'g_main_context_add_poll
:: Ptr C'GMainContext -> Ptr C'GPollFD -> C'gint -> IO ()
foreign import ccall "&g_main_context_add_poll" p'g_main_context_add_poll
:: FunPtr (Ptr C'GMainContext -> Ptr C'GPollFD -> C'gint -> IO ())
foreign import ccall "g_main_context_remove_poll" c'g_main_context_remove_poll
:: Ptr C'GMainContext -> Ptr C'GPollFD -> IO ()
foreign import ccall "&g_main_context_remove_poll" p'g_main_context_remove_poll
:: FunPtr (Ptr C'GMainContext -> Ptr C'GPollFD -> IO ())
foreign import ccall "g_main_depth" c'g_main_depth
:: IO C'gint
foreign import ccall "&g_main_depth" p'g_main_depth
:: FunPtr (IO C'gint)
foreign import ccall "g_main_current_source" c'g_main_current_source
:: IO (Ptr C'GSource)
foreign import ccall "&g_main_current_source" p'g_main_current_source
:: FunPtr (IO (Ptr C'GSource))
foreign import ccall "g_main_context_get_thread_default" c'g_main_context_get_thread_default
:: IO (Ptr C'GMainContext)
foreign import ccall "&g_main_context_get_thread_default" p'g_main_context_get_thread_default
:: FunPtr (IO (Ptr C'GMainContext))
foreign import ccall "g_main_context_push_thread_default" c'g_main_context_push_thread_default
:: Ptr C'GMainContext -> IO ()
foreign import ccall "&g_main_context_push_thread_default" p'g_main_context_push_thread_default
:: FunPtr (Ptr C'GMainContext -> IO ())
foreign import ccall "g_main_context_pop_thread_default" c'g_main_context_pop_thread_default
:: Ptr C'GMainContext -> IO ()
foreign import ccall "&g_main_context_pop_thread_default" p'g_main_context_pop_thread_default
:: FunPtr (Ptr C'GMainContext -> IO ())
foreign import ccall "g_timeout_source_new" c'g_timeout_source_new
:: C'guint -> IO (Ptr C'GSource)
foreign import ccall "&g_timeout_source_new" p'g_timeout_source_new
:: FunPtr (C'guint -> IO (Ptr C'GSource))
foreign import ccall "g_timeout_source_new_seconds" c'g_timeout_source_new_seconds
:: C'guint -> IO (Ptr C'GSource)
foreign import ccall "&g_timeout_source_new_seconds" p'g_timeout_source_new_seconds
:: FunPtr (C'guint -> IO (Ptr C'GSource))
foreign import ccall "g_timeout_add" c'g_timeout_add
:: C'guint -> C'GSourceFunc -> C'gpointer -> IO C'guint
foreign import ccall "&g_timeout_add" p'g_timeout_add
:: FunPtr (C'guint -> C'GSourceFunc -> C'gpointer -> IO C'guint)
foreign import ccall "g_timeout_add_full" c'g_timeout_add_full
:: C'gint -> C'guint -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint
foreign import ccall "&g_timeout_add_full" p'g_timeout_add_full
:: FunPtr (C'gint -> C'guint -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint)
foreign import ccall "g_timeout_add_seconds" c'g_timeout_add_seconds
:: C'guint -> C'GSourceFunc -> C'gpointer -> IO C'guint
foreign import ccall "&g_timeout_add_seconds" p'g_timeout_add_seconds
:: FunPtr (C'guint -> C'GSourceFunc -> C'gpointer -> IO C'guint)
foreign import ccall "g_timeout_add_seconds_full" c'g_timeout_add_seconds_full
:: C'gint -> C'guint -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint
foreign import ccall "&g_timeout_add_seconds_full" p'g_timeout_add_seconds_full
:: FunPtr (C'gint -> C'guint -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint)
foreign import ccall "g_idle_source_new" c'g_idle_source_new
:: IO (Ptr C'GSource)
foreign import ccall "&g_idle_source_new" p'g_idle_source_new
:: FunPtr (IO (Ptr C'GSource))
foreign import ccall "g_idle_add" c'g_idle_add
:: C'GSourceFunc -> C'gpointer -> IO C'guint
foreign import ccall "&g_idle_add" p'g_idle_add
:: FunPtr (C'GSourceFunc -> C'gpointer -> IO C'guint)
foreign import ccall "g_idle_add_full" c'g_idle_add_full
:: C'gint -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint
foreign import ccall "&g_idle_add_full" p'g_idle_add_full
:: FunPtr (C'gint -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint)
foreign import ccall "g_idle_remove_by_data" c'g_idle_remove_by_data
:: C'gpointer -> IO C'gboolean
foreign import ccall "&g_idle_remove_by_data" p'g_idle_remove_by_data
:: FunPtr (C'gpointer -> IO C'gboolean)
type C'GPid = CInt
type C'GChildWatchFunc = FunPtr (C'GPid -> C'gint -> C'gpointer -> IO ())
foreign import ccall "wrapper" mk'GChildWatchFunc
:: (C'GPid -> C'gint -> C'gpointer -> IO ()) -> IO C'GChildWatchFunc
foreign import ccall "dynamic" mK'GChildWatchFunc
:: C'GChildWatchFunc -> (C'GPid -> C'gint -> C'gpointer -> IO ())
foreign import ccall "g_child_watch_source_new" c'g_child_watch_source_new
:: C'GPid -> IO (Ptr C'GSource)
foreign import ccall "&g_child_watch_source_new" p'g_child_watch_source_new
:: FunPtr (C'GPid -> IO (Ptr C'GSource))
foreign import ccall "g_child_watch_add" c'g_child_watch_add
:: C'GPid -> C'GChildWatchFunc -> C'gpointer -> IO C'guint
foreign import ccall "&g_child_watch_add" p'g_child_watch_add
:: FunPtr (C'GPid -> C'GChildWatchFunc -> C'gpointer -> IO C'guint)
foreign import ccall "g_child_watch_add_full" c'g_child_watch_add_full
:: C'gint -> C'GPid -> C'GChildWatchFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint
foreign import ccall "&g_child_watch_add_full" p'g_child_watch_add_full
:: FunPtr (C'gint -> C'GPid -> C'GChildWatchFunc -> C'gpointer -> C'GDestroyNotify -> IO C'guint)
data C'GPollFD = C'GPollFD{
c'GPollFD'events :: C'gushort
,
c'GPollFD'revents :: C'gushort
} deriving (Eq,Show)
instance Storable C'GPollFD where
sizeOf _ = 8
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 4
v1 <- peekByteOff p 6
return $ C'GPollFD v0 v1
poke p (C'GPollFD v0 v1) = do
pokeByteOff p 4 v0
pokeByteOff p 6 v1
return ()
foreign import ccall "g_poll" c'g_poll
:: Ptr C'GPollFD -> C'guint -> C'gint -> IO C'gint
foreign import ccall "&g_poll" p'g_poll
:: FunPtr (Ptr C'GPollFD -> C'guint -> C'gint -> IO C'gint)
data C'GSource = C'GSource
type C'GSourceDummyMarshal = FunPtr (IO ())
foreign import ccall "wrapper" mk'GSourceDummyMarshal
:: (IO ()) -> IO C'GSourceDummyMarshal
foreign import ccall "dynamic" mK'GSourceDummyMarshal
:: C'GSourceDummyMarshal -> (IO ())
data C'GSourceFuncs = C'GSourceFuncs{
c'GSourceFuncs'prepare :: FunPtr (Ptr C'GSource -> Ptr C'gint -> IO C'gboolean)
,
c'GSourceFuncs'check :: FunPtr (Ptr C'GSource -> IO C'gboolean)
,
c'GSourceFuncs'dispatch :: FunPtr (Ptr C'GSource -> C'GSourceFunc -> C'gpointer -> IO C'gboolean)
,
c'GSourceFuncs'finalize :: FunPtr (Ptr C'GSource -> IO ())
,
c'GSourceFuncs'closure_callback :: C'GSourceFunc
,
c'GSourceFuncs'closure_marshal :: C'GSourceDummyMarshal
} deriving (Eq,Show)
instance Storable C'GSourceFuncs where
sizeOf _ = 24
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
v3 <- peekByteOff p 12
v4 <- peekByteOff p 16
v5 <- peekByteOff p 20
return $ C'GSourceFuncs v0 v1 v2 v3 v4 v5
poke p (C'GSourceFuncs v0 v1 v2 v3 v4 v5) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
pokeByteOff p 12 v3
pokeByteOff p 16 v4
pokeByteOff p 20 v5
return ()
data C'GSourceCallbackFuncs = C'GSourceCallbackFuncs{
c'GSourceCallbackFuncs'ref :: FunPtr (C'gpointer -> IO ())
,
c'GSourceCallbackFuncs'unref :: FunPtr (C'gpointer -> IO ())
,
c'GSourceCallbackFuncs'get :: FunPtr (C'gpointer -> Ptr C'GSource -> Ptr C'GSourceFunc -> Ptr C'gpointer -> IO ())
} deriving (Eq,Show)
instance Storable C'GSourceCallbackFuncs where
sizeOf _ = 12
alignment = sizeOf
peek p = do
v0 <- peekByteOff p 0
v1 <- peekByteOff p 4
v2 <- peekByteOff p 8
return $ C'GSourceCallbackFuncs v0 v1 v2
poke p (C'GSourceCallbackFuncs v0 v1 v2) = do
pokeByteOff p 0 v0
pokeByteOff p 4 v1
pokeByteOff p 8 v2
return ()
foreign import ccall "g_source_new" c'g_source_new
:: Ptr C'GSourceFuncs -> C'guint -> IO (Ptr C'GSource)
foreign import ccall "&g_source_new" p'g_source_new
:: FunPtr (Ptr C'GSourceFuncs -> C'guint -> IO (Ptr C'GSource))
foreign import ccall "g_source_ref" c'g_source_ref
:: Ptr C'GSource -> IO (Ptr C'GSource)
foreign import ccall "&g_source_ref" p'g_source_ref
:: FunPtr (Ptr C'GSource -> IO (Ptr C'GSource))
foreign import ccall "g_source_unref" c'g_source_unref
:: Ptr C'GSource -> IO ()
foreign import ccall "&g_source_unref" p'g_source_unref
:: FunPtr (Ptr C'GSource -> IO ())
foreign import ccall "g_source_set_funcs" c'g_source_set_funcs
:: Ptr C'GSource -> Ptr C'GSourceFuncs -> IO ()
foreign import ccall "&g_source_set_funcs" p'g_source_set_funcs
:: FunPtr (Ptr C'GSource -> Ptr C'GSourceFuncs -> IO ())
foreign import ccall "g_source_attach" c'g_source_attach
:: Ptr C'GSource -> Ptr C'GMainContext -> IO C'guint
foreign import ccall "&g_source_attach" p'g_source_attach
:: FunPtr (Ptr C'GSource -> Ptr C'GMainContext -> IO C'guint)
foreign import ccall "g_source_destroy" c'g_source_destroy
:: Ptr C'GSource -> IO ()
foreign import ccall "&g_source_destroy" p'g_source_destroy
:: FunPtr (Ptr C'GSource -> IO ())
foreign import ccall "g_source_is_destroyed" c'g_source_is_destroyed
:: Ptr C'GSource -> IO C'gboolean
foreign import ccall "&g_source_is_destroyed" p'g_source_is_destroyed
:: FunPtr (Ptr C'GSource -> IO C'gboolean)
foreign import ccall "g_source_set_priority" c'g_source_set_priority
:: Ptr C'GSource -> C'gint -> IO ()
foreign import ccall "&g_source_set_priority" p'g_source_set_priority
:: FunPtr (Ptr C'GSource -> C'gint -> IO ())
foreign import ccall "g_source_get_priority" c'g_source_get_priority
:: Ptr C'GSource -> IO C'gint
foreign import ccall "&g_source_get_priority" p'g_source_get_priority
:: FunPtr (Ptr C'GSource -> IO C'gint)
foreign import ccall "g_source_set_can_recurse" c'g_source_set_can_recurse
:: Ptr C'GSource -> C'gboolean -> IO ()
foreign import ccall "&g_source_set_can_recurse" p'g_source_set_can_recurse
:: FunPtr (Ptr C'GSource -> C'gboolean -> IO ())
foreign import ccall "g_source_get_can_recurse" c'g_source_get_can_recurse
:: Ptr C'GSource -> IO C'gboolean
foreign import ccall "&g_source_get_can_recurse" p'g_source_get_can_recurse
:: FunPtr (Ptr C'GSource -> IO C'gboolean)
foreign import ccall "g_source_get_id" c'g_source_get_id
:: Ptr C'GSource -> IO C'guint
foreign import ccall "&g_source_get_id" p'g_source_get_id
:: FunPtr (Ptr C'GSource -> IO C'guint)
foreign import ccall "g_source_get_context" c'g_source_get_context
:: Ptr C'GSource -> IO (Ptr C'GMainContext)
foreign import ccall "&g_source_get_context" p'g_source_get_context
:: FunPtr (Ptr C'GSource -> IO (Ptr C'GMainContext))
foreign import ccall "g_source_set_callback" c'g_source_set_callback
:: Ptr C'GSource -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO ()
foreign import ccall "&g_source_set_callback" p'g_source_set_callback
:: FunPtr (Ptr C'GSource -> C'GSourceFunc -> C'gpointer -> C'GDestroyNotify -> IO ())
type C'GSourceFunc = FunPtr (C'gpointer -> IO C'gboolean)
foreign import ccall "wrapper" mk'GSourceFunc
:: (C'gpointer -> IO C'gboolean) -> IO C'GSourceFunc
foreign import ccall "dynamic" mK'GSourceFunc
:: C'GSourceFunc -> (C'gpointer -> IO C'gboolean)
foreign import ccall "g_source_set_callback_indirect" c'g_source_set_callback_indirect
:: Ptr C'GSource -> C'gpointer -> Ptr C'GSourceCallbackFuncs -> IO ()
foreign import ccall "&g_source_set_callback_indirect" p'g_source_set_callback_indirect
:: FunPtr (Ptr C'GSource -> C'gpointer -> Ptr C'GSourceCallbackFuncs -> IO ())
foreign import ccall "g_source_add_poll" c'g_source_add_poll
:: Ptr C'GSource -> Ptr C'GPollFD -> IO ()
foreign import ccall "&g_source_add_poll" p'g_source_add_poll
:: FunPtr (Ptr C'GSource -> Ptr C'GPollFD -> IO ())
foreign import ccall "g_source_remove_poll" c'g_source_remove_poll
:: Ptr C'GSource -> Ptr C'GPollFD -> IO ()
foreign import ccall "&g_source_remove_poll" p'g_source_remove_poll
:: FunPtr (Ptr C'GSource -> Ptr C'GPollFD -> IO ())
foreign import ccall "g_source_get_current_time" c'g_source_get_current_time
:: Ptr C'GSource -> Ptr C'GTimeVal -> IO ()
foreign import ccall "&g_source_get_current_time" p'g_source_get_current_time
:: FunPtr (Ptr C'GSource -> Ptr C'GTimeVal -> IO ())
foreign import ccall "g_source_remove" c'g_source_remove
:: C'guint -> IO C'gboolean
foreign import ccall "&g_source_remove" p'g_source_remove
:: FunPtr (C'guint -> IO C'gboolean)
foreign import ccall "g_source_remove_by_funcs_user_data" c'g_source_remove_by_funcs_user_data
:: Ptr C'GSourceFuncs -> C'gpointer -> IO C'gboolean
foreign import ccall "&g_source_remove_by_funcs_user_data" p'g_source_remove_by_funcs_user_data
:: FunPtr (Ptr C'GSourceFuncs -> C'gpointer -> IO C'gboolean)
foreign import ccall "g_source_remove_by_user_data" c'g_source_remove_by_user_data
:: C'gpointer -> IO C'gboolean
foreign import ccall "&g_source_remove_by_user_data" p'g_source_remove_by_user_data
:: FunPtr (C'gpointer -> IO C'gboolean)