class Gst::Loader
Constants
- NAMESPACE
- RENAME_MAP
- UNLOCK_GVL_METHODS
Public Class Methods
new(base_module, init_arguments)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 95 def initialize(base_module, init_arguments) super(base_module) @init_arguments = init_arguments end
Public Instance Methods
load()
click to toggle source
Calls superclass method
# File lib/gst.rb, line 100 def load super(NAMESPACE) end
Private Instance Methods
call_init_function(repository, namespace)
click to toggle source
# File lib/gst.rb, line 110 def call_init_function(repository, namespace) init_check = repository.find(namespace, "init_check") arguments = [ [$0] + @init_arguments, ] succeeded, argv, error = init_check.invoke(:arguments => arguments) @init_arguments.replace(argv[1..-1]) raise error unless succeeded end
define_value_modules()
click to toggle source
# File lib/gst.rb, line 120 def define_value_modules @value_functions_module = Module.new @value_methods_module = Module.new @base_module.const_set("ValueFunctions", @value_functions_module) @base_module.const_set("ValueMethods", @value_methods_module) end
initialize_post(object)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 141 def initialize_post(object) super return unless object.is_a?(GLib::Object) self.class.reference_gobject(object, :sink => true) end
load_function_info(info)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 147 def load_function_info(info) case info.name when "init" # ignore when /\Avalue_/ method_name = $POSTMATCH load_value_function_info(info, method_name) else super end end
load_value_function_info(info, method_name)
click to toggle source
# File lib/gst.rb, line 159 def load_value_function_info(info, method_name) value_functions_module = @value_functions_module define_module_function(value_functions_module, method_name, info) @value_methods_module.module_eval do define_method(method_name) do |*arguments, &block| value_functions_module.send(method_name, self, *arguments, &block) end end end
post_load(repository, namespace)
click to toggle source
# File lib/gst.rb, line 127 def post_load(repository, namespace) require_extension self.class.start_callback_dispatch_thread end
pre_load(repository, namespace)
click to toggle source
# File lib/gst.rb, line 105 def pre_load(repository, namespace) call_init_function(repository, namespace) define_value_modules end
require_extension()
click to toggle source
# File lib/gst.rb, line 132 def require_extension begin major, minor, _ = RUBY_VERSION.split(/\./) require "#{major}.#{minor}/gstreamer.so" rescue LoadError require "gstreamer.so" end end
rubyish_method_name(function_info)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 175 def rubyish_method_name(function_info) RENAME_MAP[function_info.name] || super end
should_unlock_gvl?(function_info, klass)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 185 def should_unlock_gvl?(function_info, klass) UNLOCK_GVL_METHODS["#{klass}\##{function_info.name}"] || super end