module Volumerb::MacVolume

Public Class Methods

down(value = 3) click to toggle source
# File lib/volumerb/mac_volume.rb, line 9
def self.down(value = 3)
  osa 'set currentVolume to output volume of (get volume settings)
       set volume output volume (currentVolume - #{value})'
  vol
end
mute() click to toggle source
# File lib/volumerb/mac_volume.rb, line 15
def self.mute
  state = osa 'output muted of (get volume settings)'
  setmute = !eval(state)
  osa "set volume output muted #{setmute}"
  vol
end
up(value = 3) click to toggle source
# File lib/volumerb/mac_volume.rb, line 3
def self.up(value = 3)
  osa 'set currentVolume to output volume of (get volume settings)
       set volume output volume (currentVolume + #{value})'
  vol
end
value=(value) click to toggle source
# File lib/volumerb/mac_volume.rb, line 22
def self.value=(value)
  osa 'set volume output volume (#{value})'
  vol
end
vol() click to toggle source
# File lib/volumerb/mac_volume.rb, line 27
def self.vol
  # Mac OS X output:
  # output volume:100, input volume:missing value, alert
  # volume:98, output muted:false
  vol = osa 'get volume settings'
  number = vol.match(/output\ volume\:([0-9]+)/)[1]
  state = vol.match(/muted:([t|f])/)[1]
  { number: number.to_s, state: state.to_s }
end

Private Class Methods

osa(script) click to toggle source
# File lib/volumerb/mac_volume.rb, line 39
def self.osa(script)
  `osascript -e '#{script}'`
end