Method: WinDSP#flush

Defined in:
lib/windsp.rb

#flushObject



72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/windsp.rb', line 72

def flush
  hdr = [@buffer, @buffer.bytesize, 0, 0, 0, 0, nil, 0].pack("pVV#{WinMM::PACK}VVp#{WinMM::PACK}")
  @buffer = ""
  ret = WinMM.waveOutPrepareHeader(@handle, hdr, hdr.bytesize)
  raise "error in waveOutPrepareHeader: #{ret}" if ret != 0
  if @hdr
    wait(@hdr)
    WinMM.waveOutUnprepareHeader(@handle, @hdr, @hdr.bytesize)
    @hdr = nil
  end
  ret = WinMM.waveOutWrite(@handle, hdr, hdr.bytesize)
  raise "error in waveOutWrite: #{ret}" if ret != 0
  @hdr = hdr

  self
end