class RbSDL2::Audio::AudioBuffer::AudioBufferPointer

Attributes

length[R]
size[R]
spec[R]

Public Class Methods

initialize(ptr, size, spec) click to toggle source
# File lib/rb_sdl2/audio/audio_buffer.rb, line 26
def initialize(ptr, size, spec)
  @ptr = ptr
  @size = size
  @spec = spec
end
load(file) click to toggle source
# File lib/rb_sdl2/audio/audio_buffer.rb, line 11
  def load(file) = RWOps.new(file, "rb") { |rw| load_rw(rw) }

  require_relative 'audio_spec'

  # load_rw は与えられたオブジェクトをオートクローズしません。
  def load_rw(rw)
    spec = AudioSpec.new
    buf = ::FFI::MemoryPointer.new(:pointer)
    len = ::FFI::MemoryPointer.new(:uint32)
    err = ::SDL2::SDL_LoadWAV_RW(rw, 0, spec, buf, len)
    raise RbSDL2Error if err.null?
    new(AudioBufferPointer.new(buf.read_pointer), len.read_uint32, spec)
  end
end
load_rw(rw) click to toggle source

load_rw は与えられたオブジェクトをオートクローズしません。

# File lib/rb_sdl2/audio/audio_buffer.rb, line 16
def load_rw(rw)
  spec = AudioSpec.new
  buf = ::FFI::MemoryPointer.new(:pointer)
  len = ::FFI::MemoryPointer.new(:uint32)
  err = ::SDL2::SDL_LoadWAV_RW(rw, 0, spec, buf, len)
  raise RbSDL2Error if err.null?
  new(AudioBufferPointer.new(buf.read_pointer), len.read_uint32, spec)
end
release(ptr) click to toggle source
# File lib/rb_sdl2/audio/audio_buffer.rb, line 5
  def self.release(ptr) = ::SDL2::SDL_FreeWAV(ptr)
end
to_ptr(= @ptr) click to toggle source
# File lib/rb_sdl2/audio/audio_buffer.rb, line 44
    def to_ptr = @ptr

    def to_str = @ptr.read_bytes(size)
  end
end
to_str(= @ptr.read_bytes(size)) click to toggle source
# File lib/rb_sdl2/audio/audio_buffer.rb, line 46
  def to_str = @ptr.read_bytes(size)
end