Method: Ray::SoundBuffer#initialize

Defined in:
ext/sound_buffer.c

#initialize(io_or_string) ⇒ Object

Loads the sound buffer out of an IO object or a string.



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'ext/sound_buffer.c', line 27

static
VALUE ray_sound_buffer_init(VALUE self, VALUE arg) {
  say_sound_buffer *buf = ray_rb2sound_buffer(self);

  if (rb_respond_to(arg, RAY_METH("read"))) {
    arg = rb_funcall(arg, RAY_METH("read"), 0);

    if (!say_sound_buffer_load_from_memory(buf, RSTRING_LEN(arg),
                                           StringValuePtr(arg))) {
      rb_raise(rb_eRangeError, "%s", say_error_get_last());
    }
  }
  else {
    if (!say_sound_buffer_load_from_file(buf, StringValuePtr(arg))) {
      rb_raise(rb_eRangeError, "%s", say_error_get_last());
    }
  }

  return self;
}