class Fest

Public Class Methods

new(params = {}) click to toggle source
# File lib/fest.rb, line 22
def initialize(params = {})
  params = YAML.load_file("#{GEM_ROOT}/config/default.yml").merge(params)
  params.each do |key, value|
    instance_variable_set(
      "@#{key}",
      value.is_a?(Array) ? eval(value.join('; ')) : value
    )
  end
end

Public Instance Methods

change_common_volume(volume) click to toggle source
# File lib/fest.rb, line 68
def change_common_volume(volume)
  system("amixer set Master '#{volume}%' \
    > /dev/null 2>&1") if @flat_volumes == 'no'
end
check_conditions() click to toggle source
# File lib/fest.rb, line 32
def check_conditions
  @conditions =
    YAML.load_file("#{GEM_ROOT}/config/conditions.yml") if @conditions == {}
  @conditions.values.each do |value|
    eval(value.join('; '))
  end
end
delete_wav() click to toggle source
# File lib/fest.rb, line 73
def delete_wav
  if File.exist?("#{@path}/say_#{@index}.wav")
    File.delete("#{@path}/say_#{@index}.wav")
  end
end
expect_if_paplay_now() click to toggle source
# File lib/fest.rb, line 45
def expect_if_paplay_now
  loop do
    break if `pgrep -lfc 'paplay'`.to_i == 0
    sleep 1
  end
end
make_wav(string) click to toggle source
# File lib/fest.rb, line 40
def make_wav(string)
  system("echo '#{string}' | text2wave -o #{@path}/say_#{@index}.wav \
    -eval '(#{@language})' > /dev/null 2>&1")
end
paplay_wav() click to toggle source
# File lib/fest.rb, line 61
def paplay_wav
  change_common_volume(optimize_common_volume)
  system("paplay #{@path}/say_#{@index}.wav \
    --volume='#{optimize_volume * 655}' > /dev/null 2>&1")
  change_common_volume(@common_volume)
end
play_wav() click to toggle source
# File lib/fest.rb, line 52
def play_wav
  expect_if_paplay_now
  current_volumes_on_inputs
  volumes_for_inputs
  change_volumes(@current_volumes, @volumes, @step)
  paplay_wav
  change_volumes(@volumes, @current_volumes, @step)
end
say(string) click to toggle source
# File lib/fest.rb, line 13
def say(string)
  unless string.nil? || string.empty?
    check_conditions
    make_wav(string)
    play_wav
    delete_wav
  end
end