Class: Deftones::Source::Players
- Inherits:
-
Object
- Object
- Deftones::Source::Players
- Includes:
- Enumerable
- Defined in:
- lib/deftones/source/players.rb
Defined Under Namespace
Classes: VolumeProxy
Instance Attribute Summary collapse
-
#volume ⇒ Object
Returns the value of attribute volume.
Instance Method Summary collapse
- #[](name) ⇒ Object
- #add(name, buffer) ⇒ Object
- #apply_controls! ⇒ Object private
- #dispose ⇒ Object
- #disposed? ⇒ Boolean
- #each(&block) ⇒ Object
- #get(name) ⇒ Object
- #has?(name) ⇒ Boolean
-
#initialize(buffers = {}, context: Deftones.context) ⇒ Players
constructor
A new instance of Players.
- #loaded ⇒ Object
- #loaded? ⇒ Boolean
- #mute ⇒ Object
- #mute=(value) ⇒ Object
- #mute? ⇒ Boolean
- #names ⇒ Object
- #player(name) ⇒ Object
- #state(name = nil, time: @context.current_time) ⇒ Object
- #stop_all(time = nil, dispose: false) ⇒ Object (also: #stopAll)
- #stop_all_and_dispose(time = nil) ⇒ Object (also: #stopAllAndDispose)
- #stopped?(time = @context.current_time) ⇒ Boolean
Constructor Details
#initialize(buffers = {}, context: Deftones.context) ⇒ Players
Returns a new instance of Players.
49 50 51 52 53 54 55 56 57 |
# File 'lib/deftones/source/players.rb', line 49 def initialize(buffers = {}, context: Deftones.context) @context = context @players = {} @mute = false @volume = VolumeProxy.new(self) @disposed = false source_buffers = buffers.is_a?(IO::Buffers) ? buffers : IO::Buffers.new(buffers) source_buffers.each { |name, buffer| add(name, buffer) } end |
Instance Attribute Details
#volume ⇒ Object
Returns the value of attribute volume.
47 48 49 |
# File 'lib/deftones/source/players.rb', line 47 def volume @volume end |
Instance Method Details
#[](name) ⇒ Object
69 70 71 |
# File 'lib/deftones/source/players.rb', line 69 def [](name) get(name) end |
#add(name, buffer) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/deftones/source/players.rb', line 59 def add(name, buffer) raise Deftones::Error, "cannot add player to disposed Players" if @disposed player = Player.new(buffer: buffer, context: @context) player.volume.value = @volume.value player.mute = @mute @players[name.to_sym] = player player end |
#apply_controls! ⇒ Object (private)
157 158 159 160 161 162 163 |
# File 'lib/deftones/source/players.rb', line 157 def apply_controls! @players.each_value do |player| player.volume.value = @volume.value player.mute = @mute end self end |
#dispose ⇒ Object
139 140 141 142 143 144 |
# File 'lib/deftones/source/players.rb', line 139 def dispose @players.each_value(&:dispose) @players.clear @disposed = true self end |
#disposed? ⇒ Boolean
129 130 131 |
# File 'lib/deftones/source/players.rb', line 129 def disposed? @disposed end |
#each(&block) ⇒ Object
146 147 148 149 150 |
# File 'lib/deftones/source/players.rb', line 146 def each(&block) return enum_for(:each) unless block @players.each_value(&block) end |
#get(name) ⇒ Object
73 74 75 |
# File 'lib/deftones/source/players.rb', line 73 def get(name) @players[name.to_sym] end |
#has?(name) ⇒ Boolean
81 82 83 |
# File 'lib/deftones/source/players.rb', line 81 def has?(name) @players.key?(name.to_sym) end |
#loaded ⇒ Object
93 94 95 |
# File 'lib/deftones/source/players.rb', line 93 def loaded loaded? end |
#loaded? ⇒ Boolean
89 90 91 |
# File 'lib/deftones/source/players.rb', line 89 def loaded? !@disposed end |
#mute ⇒ Object
97 98 99 |
# File 'lib/deftones/source/players.rb', line 97 def mute @mute end |
#mute=(value) ⇒ Object
101 102 103 104 |
# File 'lib/deftones/source/players.rb', line 101 def mute=(value) @mute = !!value apply_controls! end |
#mute? ⇒ Boolean
106 107 108 |
# File 'lib/deftones/source/players.rb', line 106 def mute? @mute end |
#names ⇒ Object
85 86 87 |
# File 'lib/deftones/source/players.rb', line 85 def names @players.keys end |
#player(name) ⇒ Object
77 78 79 |
# File 'lib/deftones/source/players.rb', line 77 def player(name) get(name) end |
#state(name = nil, time: @context.current_time) ⇒ Object
133 134 135 136 137 |
# File 'lib/deftones/source/players.rb', line 133 def state(name = nil, time: @context.current_time) return get(name)&.state(time) if name @players.transform_values { |player| player.state(time) } end |
#stop_all(time = nil, dispose: false) ⇒ Object Also known as: stopAll
114 115 116 117 118 |
# File 'lib/deftones/source/players.rb', line 114 def stop_all(time = nil, dispose: false) @players.each_value { |player| player.stop(time) } self.dispose if dispose self end |
#stop_all_and_dispose(time = nil) ⇒ Object Also known as: stopAllAndDispose
120 121 122 123 |
# File 'lib/deftones/source/players.rb', line 120 def stop_all_and_dispose(time = nil) stop_all(time) dispose end |
#stopped?(time = @context.current_time) ⇒ Boolean
125 126 127 |
# File 'lib/deftones/source/players.rb', line 125 def stopped?(time = @context.current_time) state(time: time).values.all? { |entry| entry == :stopped } end |