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 73 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 78 def load super(NAMESPACE) end
Private Instance Methods
call_init_function(repository, namespace)
click to toggle source
# File lib/gst.rb, line 88 def call_init_function(repository, namespace) init_check = repository.find(namespace, "init_check") arguments = [ [$0] + @init_arguments, ] succeeded, argv, error = init_check.invoke(arguments) @init_arguments.replace(argv[1..-1]) raise error unless succeeded end
define_value_modules()
click to toggle source
# File lib/gst.rb, line 98 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
load_function_info(info)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 128 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_method_info(info, klass, method_name)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 150 def load_method_info(info, klass, method_name) case method_name when "ref", "unref" # Ignore else super end end
load_value_function_info(info, method_name)
click to toggle source
# File lib/gst.rb, line 140 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 105 def post_load(repository, namespace) require_extension require_libraries self.class.start_callback_dispatch_thread end
pre_load(repository, namespace)
click to toggle source
# File lib/gst.rb, line 83 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 111 def require_extension require "gstreamer.so" end
require_libraries()
click to toggle source
# File lib/gst.rb, line 115 def require_libraries require "gst/bin" require "gst/bus" require "gst/caps" require "gst/element" require "gst/element-factory" require "gst/plugin-feature" require "gst/registry" require "gst/structure" require "gst/type-find-factory" require "gst/version" end
rubyish_method_name(function_info)
click to toggle source
Calls superclass method
# File lib/gst.rb, line 165 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 175 def should_unlock_gvl?(function_info, klass) UNLOCK_GVL_METHODS["#{klass}\##{function_info.name}"] || super end