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