Class: Sox::Combiner::ProcessSubstitutionStrategy

Inherits:
BaseStrategy
  • Object
show all
Defined in:
lib/sox/combiner/process_substitution_strategy.rb

Overview

Combines files using process substitution to build and use mediate files. Process substitution is not supported by the standard shell, so we need to pass the final command to bash via shell.

Read more about process substitution: en.wikipedia.org/wiki/Process_substitution

Constant Summary collapse

MEDIATE_TYPE =

Type of mediate files:

:sox
MEDIATE_BITS =

Number of bits for mediate files:

32
MEDIATE_ENCODING =

Encoding of mediate files:

:signed
SOX_PIPE =

Pseudo file which makes the ‘sox` command write to output to stdout:

'-p'

Constants included from Shell

Shell::BASH_PATH

Instance Method Summary collapse

Methods inherited from BaseStrategy

#initialize, #output_effects, #output_options

Methods included from Shell

#bash, #sh

Constructor Details

This class inherits a constructor from Sox::Combiner::BaseStrategy

Instance Method Details

#write(output_file) ⇒ Object

:nodoc:



22
23
24
25
26
27
28
# File 'lib/sox/combiner/process_substitution_strategy.rb', line 22

def write(output_file)
  inputs = @input_files.map { |file| build_input_file(file) }
  output = Sox::File.new(output_file)

  cmd = CommandBuilder.new(inputs, output, output_options, output_effects).build
  bash(cmd)
end