Sha256: 36440013b3d2050b13e3d990a83f24cabe13ac5ff751d81bdb81a51905b2765a

Contents?: true

Size: 676 Bytes

Versions: 1

Compression:

Stored size: 676 Bytes

Contents

# frozen_string_literal: true

module Foxtracker
  module Parser
    module Support
      module ExtendedModule
        module_function

        # returns the sample looping type (:none, :forward, or :pingpong)
        def sample_looping_type(sample_type_byte)
          case sample_type_byte & 0b11
          when 0 then :none
          when 1 then :forward
          when 2 then :pingpong
          else
            raise "this should never happen(tm)"
          end
        end

        # returns the sample type (8 bit or 16 bit)
        def sample_type(sample_type_byte)
          ((sample_type_byte & 0b1000) >> 3).zero? ? 8 : 16
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
foxtracker-0.1.0.pre1337 lib/foxtracker/parser/support/extended_module.rb