/YamahaAvMusicCastControl

Ruby code to subscribe to MusicCast push events (volume control etc) in a non-blocking way

Primary LanguageRubyGNU General Public License v3.0GPL-3.0

YamahaAvMusicCastControl

Ruby code to subscribe to MusicCast push events (volume control etc) in a non-blocking way

Uses event-loop. Example:

  yamaha = YamahaAv.new("192.168.1.207", "44FE3B601F52", debug: false)
  
  yamaha.on_new_status('main', "input") { |x|
    pp [:input, x]
  }

  yamaha.on_new_status('main', "volume") { |x|
    pp [:volume, x]
  }

  yamaha.on_new_status('func', "hdmi_out_1") { |x|
    pp [:hdmi, x]
  }

->

  # ruby yamaha_av.rb
  Yamaha new status: Setting volume: 60
  [:volume, 60]
  Yamaha new status: Setting input: "tuner"
  [:input, "tuner"]
  Yamaha new status: Setting hdmi_out_1: true
  [:hdmi, true]
  Yamaha new status: Setting volume: 61
  [:volume, 61]
  Yamaha new status: Setting volume: 60
  [:volume, 60]
  Yamaha new status: Setting input: "alexa"
  [:input, "alexa"]
  Yamaha new status: Setting input: "tuner"
  [:input, "tuner"]
  Yamaha new status: Setting hdmi_out_1: false
  [:hdmi, false]
  Yamaha new status: Setting hdmi_out_1: true
  [:hdmi, true]