class Sonos::Device::Speaker
Used for PLAY:3, PLAY:5, PLAYBAR, SUB, CONNECT and CONNECT:AMP
Constants
- MODELS
Public Class Methods
models()
click to toggle source
# File lib/sonos/device/speaker.rb, line 29 def self.models MODELS end
Public Instance Methods
crossfade_off()
click to toggle source
# File lib/sonos/device/speaker.rb, line 57 def crossfade_off set_crossfade(false) end
crossfade_on()
click to toggle source
# File lib/sonos/device/speaker.rb, line 53 def crossfade_on set_crossfade(true) end
get_playmode()
click to toggle source
# File lib/sonos/device/speaker.rb, line 88 def get_playmode doc = Nokogiri::XML(open("http://#{self.group_master.ip}:#{Sonos::PORT}/status/playmode")) playmode = {} playmode[:shuffle] = doc.xpath('//Shuffle').inner_text == "On" playmode[:repeat] = doc.xpath('//Repeat').inner_text == "On" playmode[:crossfade] = doc.xpath('//Crossfade').inner_text == "On" playmode end
repeat_off()
click to toggle source
# File lib/sonos/device/speaker.rb, line 49 def repeat_off shuffle_repeat_change("repeat_off") end
repeat_on()
click to toggle source
# File lib/sonos/device/speaker.rb, line 45 def repeat_on shuffle_repeat_change("repeat_on") end
set_crossfade(crossfade)
click to toggle source
# File lib/sonos/device/speaker.rb, line 83 def set_crossfade(crossfade) crossfade_value = crossfade ? 1 : 0 send_transport_message('SetCrossfadeMode', "<InstanceID>0</InstanceID><CrossfadeMode>#{crossfade_value}</CrossfadeMode>") end
set_playmode(status = {:shuffle => false, :repeat => false})
click to toggle source
# File lib/sonos/device/speaker.rb, line 76 def set_playmode(status = {:shuffle => false, :repeat => false}) send_transport_message('SetPlayMode', "<NewPlayMode>SHUFFLE</NewPlayMode>") if (status[:shuffle] && status[:repeat] ) send_transport_message('SetPlayMode', "<NewPlayMode>SHUFFLE_NOREPEAT</NewPlayMode>") if (status[:shuffle] && !status[:repeat]) send_transport_message('SetPlayMode', "<NewPlayMode>REPEAT_ALL</NewPlayMode>") if (!status[:shuffle] && status[:repeat] ) send_transport_message('SetPlayMode', "<NewPlayMode>NORMAL</NewPlayMode>") if (!status[:shuffle] && !status[:repeat]) end
shuffle_off()
click to toggle source
# File lib/sonos/device/speaker.rb, line 41 def shuffle_off shuffle_repeat_change("shuffle_off") end
shuffle_on()
click to toggle source
# File lib/sonos/device/speaker.rb, line 37 def shuffle_on shuffle_repeat_change("shuffle_on") end
shuffle_repeat_change(command)
click to toggle source
# File lib/sonos/device/speaker.rb, line 61 def shuffle_repeat_change(command) status = get_playmode case command when "shuffle_on" status[:shuffle] = true; when "shuffle_off" status[:shuffle] = false; when "repeat_on" status[:repeat] = true; when "repeat_off" status[:repeat] = false; end set_playmode(status) end
speaker?()
click to toggle source
# File lib/sonos/device/speaker.rb, line 33 def speaker? services.include?('urn:upnp-org:serviceId:MusicServices') end