Class: MIDIWinMM::Input

Inherits:
Object
  • Object
show all
Defined in:
lib/midinous/extensions.rb

Overview

References MIDIWinMMinput.rb

Instance Method Summary collapse

Instance Method Details

#enable(options = {}, &block) ⇒ Object Also known as: start, open



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
# File 'lib/midinous/extensions.rb', line 37

def enable(options = {}, &block)
  init_input_buffer
  handle_ptr = FFI::MemoryPointer.new(FFI.type_size(:int))
  initialize_local_buffer
  @event_callback = get_event_callback
  Map.winmm_func(:midiInOpen, handle_ptr, @id, @event_callback, 0, Device::WinmmCallbackFlag)
  
  @handle = handle_ptr.read_int
  
  #Map.winmm_func(:midiInPrepareHeader, @handle, @header.pointer, @header.size)      

  #Map.winmm_func(:midiInAddBuffer, @handle, @header.pointer, @header.size)

  Map.winmm_func(:midiInStart, @handle)

  @enabled = true
  
  unless block.nil?
    begin
      yield(self)
    ensure
      close
    end
  else
    self
  end
end