Class: Sonos::Group

Inherits:
Object
  • Object
show all
Defined in:
lib/sonos/group.rb

Overview

Represents a Sonos group. A group can contain one or more speakers. All speakers in a group play the same music in sync.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(master_speaker, slave_speakers) ⇒ Group

Returns a new instance of Group.



11
12
13
14
# File 'lib/sonos/group.rb', line 11

def initialize(master_speaker, slave_speakers)
  @master_speaker = master_speaker
  @slave_speakers = (slave_speakers or [])
end

Instance Attribute Details

#master_speakerObject

The master speaker in the group



6
7
8
# File 'lib/sonos/group.rb', line 6

def master_speaker
  @master_speaker
end

#slave_speakersObject (readonly)

All other speakers in the group



9
10
11
# File 'lib/sonos/group.rb', line 9

def slave_speakers
  @slave_speakers
end

Instance Method Details

#disbandObject

Remove all speakers from the group



22
23
24
25
26
# File 'lib/sonos/group.rb', line 22

def disband
  self.slave_speakers.each do |speaker|
    speaker.ungroup
  end
end

#nameObject

Full group name



29
30
31
# File 'lib/sonos/group.rb', line 29

def name
  self.speakers.collect(&:name).uniq.join(', ')
end

#play(uri = nil) ⇒ Object



40
41
42
# File 'lib/sonos/group.rb', line 40

def play(uri = nil)
  self.master_speaker.play(uri)
end

#save_queue(name) ⇒ Object



44
45
46
# File 'lib/sonos/group.rb', line 44

def save_queue(name)
  self.master_speaker.save_queue(name)
end

#speakersObject

All of the speakers in the group



17
18
19
# File 'lib/sonos/group.rb', line 17

def speakers
  [self.master_speaker] + self.slave_speakers
end