class Signalwire::Relay::Calling::Play

Public Class Methods

new(call:, play:, volume: nil) click to toggle source
Calls superclass method
# File lib/signalwire/relay/calling/component/play.rb, line 5
def initialize(call:, play:, volume: nil)
  super(call: call)
  @play = play
  @volume = volume
end

Public Instance Methods

broadcast_event(event) click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 45
def broadcast_event(event)
  @call.broadcast "play_#{@state}".to_sym, event
  @call.broadcast :play_state_change, event
end
event_type() click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 15
def event_type
  Relay::CallNotification::PLAY
end
inner_params() click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 19
def inner_params
  prm = {
    node_id: @call.node_id,
    call_id: @call.id,
    control_id: control_id,
    play: @play
  }

  prm[:volume] = @volume unless @volume.nil?
  prm
end
method() click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 11
def method
  Relay::ComponentMethod::PLAY
end
notification_handler(event) click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 31
def notification_handler(event)
  @state = event.call_params[:state]

  @completed = @state != Relay::CallPlayState::PLAYING

  if @completed
    @successful = true if @state == Relay::CallPlayState::FINISHED
    @event = event
  end

  broadcast_event(event)
  check_for_waiting_events
end
pause() click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 50
def pause
  execute_subcommand '.pause', Signalwire::Relay::Calling::PlayPauseResult
end
resume() click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 54
def resume
  execute_subcommand '.resume', Signalwire::Relay::Calling::PlayResumeResult
end
volume(setting) click to toggle source
# File lib/signalwire/relay/calling/component/play.rb, line 58
def volume(setting)
  execute_subcommand '.volume', Signalwire::Relay::Calling::PlayVolumeResult, { volume: setting }
end