class PRbed::BytesParser

Public Class Methods

new(nsamples) click to toggle source
# File lib/PRbed.rb, line 15
def initialize(nsamples)
  @nsamples = nsamples
  @bufsize = (@nsamples + 3) & ~3
end

Public Instance Methods

parse(bs) click to toggle source
# File lib/PRbed.rb, line 20
def parse(bs)
  a = Array.new(@bufsize, MISSING)
  i = 0
  bs.each_byte do |c|
    a[i    ] =  c & 0b00000011
    a[i + 1] = (c & 0b00001100) >> 2
    a[i + 2] = (c & 0b00110000) >> 4
    a[i + 3] = (c & 0b11000000) >> 6
    i += SAMPLES_PER_BYTE
  end
  a.pop(@bufsize - @nsamples)
  a
end