module AudioStream::AudioObservable

Public Instance Methods

fx(effector, **kwargs) click to toggle source
# File lib/audio_stream/audio_observable.rb, line 18
def fx(effector, **kwargs)
  if Fx::MultiAudioInputtable===effector
    bus = AudioObservableFxBus.new(effector)
    bus.connect_observable(:main, self)
    kwargs.each {|key, observable|
      bus.connect_observable(key, observable)
    }
    bus
  else
    observer = AudioObservableFx.new(effector)
    add_observer(observer)
    observer
  end
end
mono() click to toggle source
# File lib/audio_stream/audio_observable.rb, line 41
def mono
  observer = AudioObservableLambda.new {|input|
    input.mono
  }
  add_observer(observer)
  observer
end
notify_complete() click to toggle source
# File lib/audio_stream/audio_observable.rb, line 13
def notify_complete
  changed
  notify_observers(AudioNotification.new(AudioNotification::STAT_COMPLETE, nil, self))
end
notify_next(input) click to toggle source
# File lib/audio_stream/audio_observable.rb, line 8
def notify_next(input)
  changed
  notify_observers(AudioNotification.new(AudioNotification::STAT_NEXT, input, self))
end
send_to(bus, gain: nil, pan: nil) click to toggle source
# File lib/audio_stream/audio_observable.rb, line 49
def send_to(bus, gain: nil, pan: nil)
  bus.add(self, gain: gain, pan: pan)
  self
end
stereo() click to toggle source
# File lib/audio_stream/audio_observable.rb, line 33
def stereo
  observer = AudioObservableLambda.new {|input|
    input.stereo
  }
  add_observer(observer)
  observer
end
subscribe(on_next:, on_complete: nil) click to toggle source
# File lib/audio_stream/audio_observable.rb, line 54
def subscribe(on_next:, on_complete: nil)
  observer = AudioObserverLambda.new(on_next: on_next, on_complete: on_complete)
  add_observer(observer)
  observer
end
subscribe_on_next(&block) click to toggle source
# File lib/audio_stream/audio_observable.rb, line 60
def subscribe_on_next(&block)
  subscribe(on_next: block)
end