class Airplay::Group::Players
Attributes
players[R]
Public Class Methods
new(players)
click to toggle source
# File lib/airplay/group/players.rb, line 6 def initialize(players) @players = players end
Public Instance Methods
progress(callback)
click to toggle source
# File lib/airplay/group/players.rb, line 10 def progress(callback) players.each do |player| player.progress -> info { callback.call(player.device, info) if player.playing? } end end
wait()
click to toggle source
# File lib/airplay/group/players.rb, line 18 def wait sleep 0.1 while still_playing? players.map(&:cleanup) end
Private Instance Methods
still_playing?()
click to toggle source
# File lib/airplay/group/players.rb, line 25 def still_playing? states = players.map { |player| !player.played? || player.stopped? } states.uniq == [true] end