1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
# frozen_string_literal: true
# Ensure GLib is defined by GirFFI itself
raise "The module GLib was already defined elsewhere" if Kernel.const_defined? :GLib
require "gir_ffi/core"
# Set up the GLib module, bypassing the check for existing modules. This also
# creates GLib::Lib.
GirFFI::Builders::ModuleBuilder.new("GLib").generate
require "ffi-glib/array"
require "ffi-glib/byte_array"
require "ffi-glib/bytes"
require "ffi-glib/destroy_notify"
require "ffi-glib/error"
require "ffi-glib/hash_table"
require "ffi-glib/list"
require "ffi-glib/main_loop"
require "ffi-glib/ptr_array"
require "ffi-glib/s_list"
require "ffi-glib/strv"
require "ffi-glib/variant"
# Module representing GLib's GLib namespace.
module GLib
load_class :HFunc
load_class :HashFunc
load_class :EqualFunc
load_class :Func
# Module for attaching functions from the glib library. This module is
# defined by the call to ModuleBuilder#generate above.
module Lib
attach_function :g_slist_append, [:pointer, :pointer], :pointer
attach_function :g_slist_prepend, [:pointer, :pointer], :pointer
attach_function :g_slist_reverse, [:pointer], :pointer
attach_function :g_list_append, [:pointer, :pointer], :pointer
attach_function :g_list_prepend, [:pointer, :pointer], :pointer
attach_function :g_list_reverse, [:pointer], :pointer
attach_function :g_hash_table_foreach, [:pointer, HFunc, :pointer], :void
attach_function :g_hash_table_new, [HashFunc, EqualFunc], :pointer
attach_function :g_hash_table_insert, [:pointer, :pointer, :pointer], :void
attach_function :g_byte_array_new, [], :pointer
attach_function :g_byte_array_append, [:pointer, :pointer, :uint], :pointer
attach_function :g_bytes_get_data, [:pointer, :pointer], :pointer
attach_function :g_bytes_new, [:pointer, :size_t], :pointer
attach_function :g_array_new, [:int, :int, :uint], :pointer
attach_function :g_array_append_vals, [:pointer, :pointer, :uint], :pointer
attach_function :g_array_get_element_size, [:pointer], :uint
attach_function :g_ptr_array_new, [], :pointer
attach_function :g_ptr_array_add, [:pointer, :pointer], :void
attach_function :g_ptr_array_foreach, [:pointer, Func, :pointer], :pointer
attach_function :g_iconv_open, [:pointer, :pointer], :pointer
attach_function :g_variant_ref_sink, [:pointer], :pointer
end
end
|