class NuWav::Chunk
Attributes
id[RW]
pad_byte[RW]
raw[RW]
size[RW]
Public Class Methods
new(id=nil, size=nil, raw=nil)
click to toggle source
# File lib/nu_wav/chunk.rb, line 12 def initialize(id=nil, size=nil, raw=nil) @id, @size, @raw = id, size, raw end
parse(id, size, file)
click to toggle source
# File lib/nu_wav/chunk.rb, line 5 def self.parse(id, size, file) raw = file.read(size) chunk = self.new(id, size, raw) chunk.parse return chunk end
Public Instance Methods
parse()
click to toggle source
# File lib/nu_wav/chunk.rb, line 16 def parse end
read_char(start, length=(@raw.length-start))
click to toggle source
# File lib/nu_wav/chunk.rb, line 27 def read_char(start, length=(@raw.length-start)) (@raw[start..(start+length-1)] || '').strip end
read_dword(start)
click to toggle source
# File lib/nu_wav/chunk.rb, line 19 def read_dword(start) @raw[start..(start+3)].unpack('V').first end
read_word(start)
click to toggle source
# File lib/nu_wav/chunk.rb, line 23 def read_word(start) @raw[start..(start+1)].unpack('v').first end
to_binary(options={})
click to toggle source
# File lib/nu_wav/chunk.rb, line 52 def to_binary(options={}) end
write_char(val, length=nil)
click to toggle source
# File lib/nu_wav/chunk.rb, line 41 def write_char(val, length=nil) val ||= '' val = val.to_s length ||= val.length # NuWav::WaveFile.log "length:#{length} val.length:#{val.length} val:#{val}" padding = "\0" * [(length - val.length), 0].max out = val[0,length] + padding # NuWav::WaveFile.log out out end
write_dword(val)
click to toggle source
# File lib/nu_wav/chunk.rb, line 31 def write_dword(val) val ||= 0 [val].pack('V') end
write_word(val)
click to toggle source
# File lib/nu_wav/chunk.rb, line 36 def write_word(val) val ||= 0 [val].pack('v') end