require 'rprogram/task'
require 'rdvd-slideshow/slideshow_input'
module RDvdSlideshow
#
# ==dvd-slideshow options:
#
# -n:: mencoder.name
# -o:: mencoder.output_dir
# -b:: mencoder.background
# -a:: mencoder.audio_file
# -p:: mencoder.pal
# -mp2:: mencoder.mp2
# -L:: mencoder.low_quality
# -H:: mencoder.high_quality
# -theme:: mencoder.theme
# -border:: mencoder.border
# -sharpen:: mencoder.sharpen
# -r:: mencoder.auto_crop
# -w:: mencoder.widescreen
# -smp:: mencoder.smp
# -mpeg2enc:: mencoder.mpeg2enc
# -vcd:: mencoder.vcd
# -flv:: mencoder.flv
# -s:: mencoder.output_size
# -f:: mencoder.input_file
#
# Instead of providing an input file it is possible to programatically define the input with the write_input method
#
class SlideshowTask < RProgram::Task
long_option :flag => '-n', :name => :name
long_option :flag => '-o', :name => :output_dir
long_option :flag => '-b', :name => :background
long_option :flag => '-a', :name => :audio_file
long_option :flag => '-p', :name => :pal
long_option :flag => '-mp2', :name => :mp2
long_option :flag => '-L', :name => :low_quality
long_option :flag => '-H', :name => :high_quality
long_option :flag => '-theme'
long_option :flag => '-border'
long_option :flag => '-sharpen'
long_option :flag => '-r', :name => :auto_crop
long_option :flag => '-w', :name => :widescreen
long_option :flag => '-smp'
long_option :flag => '-mpeg2enc'
long_option :flag => '-vcd'
long_option :flag => '-flv'
long_option :flag => '-s', :name => :output_size
long_option :flag => '-f', :name => :input_file
#
# Configures the input configuration of the slideshow
# and generates automatically the corresponding input file.
# The provided block is used to configure the SlideshowInput object
#
def write_input(&block)
@input = SlideshowInput.new do |input|
block.call(input) if block
end
@options[:input_file] = @input.file_path
end
end
end