Class: WSK::Actions::ConstantCompare

Inherits:
Object
  • Object
show all
Includes:
Common
Defined in:
lib/WSK/Actions/ConstantCompare.rb

Instance Method Summary collapse

Methods included from Common

#accessInputWaveFile, #accessOutputWaveFile, #getWaveFileAccesses, #parsePlugins, #readDuration, #readFFTProfile, #readThresholds, #val2db

Instance Method Details

#execute(iInputData, oOutputData) ⇒ Object

Execute

Parameters
  • iInputData (WSK::Model::InputData): The input data

  • oOutputData (Object): The output data to fill

Return
  • Exception: An error, or nil if success



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/WSK/Actions/ConstantCompare.rb', line 33

def execute(iInputData, oOutputData)
  if (iInputData.NbrSamples != @NbrSamples)
    log_err "Input data has #{iInputData.NbrSamples} samples. It should be #{@NbrSamples}"
  end
  lRawSample = iInputData.Header.getEncodedString([@Value]*iInputData.Header.NbrChannels)
  lCompareBuffer = nil
  lNbrSamplesProcessed = 0
  iInputData.each_raw_buffer do |iRawBuffer, iNbrSamples, iNbrChannels|
    if ((lCompareBuffer == nil) or
        (lCompareBuffer.size != iRawBuffer.size))
      # Create the comparison buffer
      lCompareBuffer = lRawSample*iNbrSamples
    end
    if (lCompareBuffer != iRawBuffer)
      log_err "Differences found between samples #{lNbrSamplesProcessed} and #{lNbrSamplesProcessed+iNbrSamples-1}"
    end
    lNbrSamplesProcessed += iNbrSamples
    $stdout.write("#{(lNbrSamplesProcessed*100)/iInputData.NbrSamples} %\015")
    $stdout.flush
  end

  return nil
end

#get_nbr_samples(iInputData) ⇒ Object

Get the number of samples that will be written. This is called before execute, as it is needed to write the output file. It is possible to give a majoration: it will be padded with silence.

Parameters
  • iInputData (WSK::Model::InputData): The input data

Return
  • Integer: The number of samples to be written



22
23
24
# File 'lib/WSK/Actions/ConstantCompare.rb', line 22

def get_nbr_samples(iInputData)
  return 0
end