Module: GrubY::NTgCalls::Native

Extended by:
FFI::Library
Defined in:
lib/gruubY/ntgcalls/native.rb

Defined Under Namespace

Classes: LibraryNotFoundError, NtgAsyncStruct, NtgAudioDescriptionStruct, NtgMediaDescriptionStruct

Class Method Summary collapse

Class Method Details

.load!(path = nil) ⇒ Object



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/gruubY/ntgcalls/native.rb', line 35

def load!(path = nil)
  return if @loaded

  ffi_lib(resolve_library_path(path))
  attach_function :ntg_init, [], :uintptr_t
  attach_function :ntg_destroy, [:uintptr_t], :int
  attach_function :ntg_get_version, [:pointer], :int
  attach_function :ntg_create, [:uintptr_t, :int64, :pointer, NtgAsyncStruct.by_value], :int
  attach_function :ntg_connect, [:uintptr_t, :int64, :string, :bool, NtgAsyncStruct.by_value], :int
  attach_function :ntg_set_stream_sources, [:uintptr_t, :int64, :int, NtgMediaDescriptionStruct.by_value, NtgAsyncStruct.by_value], :int
  attach_function :ntg_pause, [:uintptr_t, :int64, NtgAsyncStruct.by_value], :int
  attach_function :ntg_resume, [:uintptr_t, :int64, NtgAsyncStruct.by_value], :int
  attach_function :ntg_mute, [:uintptr_t, :int64, NtgAsyncStruct.by_value], :int
  attach_function :ntg_unmute, [:uintptr_t, :int64, NtgAsyncStruct.by_value], :int
  attach_function :ntg_stop, [:uintptr_t, :int64, NtgAsyncStruct.by_value], :int
  attach_function :ntg_time, [:uintptr_t, :int64, :int, :pointer, NtgAsyncStruct.by_value], :int
  attach_function :ntg_cpu_usage, [:uintptr_t, :pointer, NtgAsyncStruct.by_value], :int
  @loaded = true
end