bashaus/gbtiles

View on GitHub
lib/gbtiles/gbt/export/asm/converter.rb

Summary

Maintainability
A
0 mins
Test Coverage
require "gbtiles/gbt/export/asm/channels/pulse"
require "gbtiles/gbt/export/asm/channels/wav"
require "gbtiles/gbt/export/asm/channels/noise"

require "erb"

module GBTiles
  module GBT
    module Export
      module ASM
        class Converter

          CHANNELS = {
            1 => GBTiles::GBT::Export::ASM::Channels::Pulse.new(1),
            2 => GBTiles::GBT::Export::ASM::Channels::Pulse.new(2),
            3 => GBTiles::GBT::Export::ASM::Channels::Wav.new,
            4 => GBTiles::GBT::Export::ASM::Channels::Noise.new
          }

          def convert data
            CHANNELS[1].data = data[0..3]
            CHANNELS[2].data = data[4..7]
            CHANNELS[3].data = data[8..11]
            CHANNELS[4].data = data[12..15]

            [
              CHANNELS[1].convert.map { |x| sprintf('0x%02X', x) }.join(', '),
              CHANNELS[2].convert.map { |x| sprintf('0x%02X', x) }.join(', '),
              CHANNELS[3].convert.map { |x| sprintf('0x%02X', x) }.join(', '),
              CHANNELS[4].convert.map { |x| sprintf('0x%02X', x) }.join(', ')
            ].join(', ')
          end
        end
      end
    end
  end
end