;; -*- scheme -*-
; object definitions ...
;; Enumerations and flags ...

(define-flags Flags
  (in-module "GModule")
  (c-name "GModuleFlags")
  (gtype-id "G_TYPE_MODULE_FLAGS")
  (values
    '("lazy" "G_MODULE_BIND_LAZY")
    '("local" "G_MODULE_BIND_LOCAL")
    '("mask" "G_MODULE_BIND_MASK")
  )
)


;; From gmoduleconf.h



;; From gmodule.h

(define-function g_module_supported
  (c-name "g_module_supported")
  (return-type "gboolean")
)

(define-function g_module_open
  (c-name "g_module_open")
  (return-type "GModule*")
  (parameters
    '("const-gchar*" "file_name")
    '("GModuleFlags" "flags")
  )
)

(define-method close
  (of-object "GModule")
  (c-name "g_module_close")
  (return-type "gboolean")
)

(define-method make_resident
  (of-object "GModule")
  (c-name "g_module_make_resident")
  (return-type "none")
)

(define-function g_module_error
  (c-name "g_module_error")
  (return-type "const-gchar*")
)

(define-method symbol
  (of-object "GModule")
  (c-name "g_module_symbol")
  (return-type "gboolean")
  (parameters
    '("const-gchar*" "symbol_name")
    '("gpointer*" "symbol")
  )
)

(define-method name
  (of-object "GModule")
  (c-name "g_module_name")
  (return-type "const-gchar*")
)

(define-function g_module_build_path
  (c-name "g_module_build_path")
  (return-type "gchar*")
  (parameters
    '("const-gchar*" "directory")
    '("const-gchar*" "module_name")
  )
)


