Module: Volume
- Included in:
- Fest
- Defined in:
- lib/fest/volume.rb
Instance Method Summary collapse
- #change_volume(volume, break_volume, step) ⇒ Object
- #check_optimal_volume ⇒ Object
- #optimize_volume ⇒ Object
- #sink_inputs ⇒ Object
Instance Method Details
#change_volume(volume, break_volume, step) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/fest/volume.rb', line 24 def change_volume(volume, break_volume, step) change = volume > break_volume ? 'down' : 'up' @inputs.each do |input| loop do system("pactl set-sink-input-volume #{input} '#{volume * 655}'") change == 'up' ? volume += step : volume -= step break if change == 'up' ? volume > break_volume : volume < break_volume end end end |
#check_optimal_volume ⇒ Object
4 5 6 |
# File 'lib/fest/volume.rb', line 4 def check_optimal_volume @volume = @current_volume - @current_volume / 10 * @step end |
#optimize_volume ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/fest/volume.rb', line 8 def optimize_volume @optimize_volume = ( if @current_volume > @max_volume @max_volume elsif @current_volume < @min_volume @min_volume else @current_volume end ) end |
#sink_inputs ⇒ Object
20 21 22 |
# File 'lib/fest/volume.rb', line 20 def sink_inputs @inputs = `pactl list sink-inputs | grep '№' | grep -o '[0-9]*'`.split("\n") end |