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