Class: Interfacets::Client::Channels::Audio
- Inherits:
-
Object
- Object
- Interfacets::Client::Channels::Audio
show all
- Includes:
- Base
- Defined in:
- lib/interfacets/client/channels/audio.rb
Defined Under Namespace
Classes: Builder
Instance Attribute Summary
Attributes included from Base
#id
Instance Method Summary
collapse
Methods included from Base
#initialize, #type
#append_features, #class_methods, extended, #included, #prepend_features, #prepended
Instance Method Details
#builder(stream = "default") ⇒ Object
74
75
76
|
# File 'lib/interfacets/client/channels/audio.rb', line 74
def builder(stream = "default")
@builder
end
|
#handle(event:, entity:) ⇒ Object
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
# File 'lib/interfacets/client/channels/audio.rb', line 78
def handle(event:, entity:, **)
return unless [
"loaded",
"mic-ready",
"recording-started",
"recording-stopped",
].include?(event.fetch("type"))
callback_id = event.dig("payload", "id")
callback = builder.callbacks.delete(callback_id)
if event["payload"].nil? || event["payload"].empty?
entity.instance_exec(&callback) if callback
elsif callback
entity.instance_exec(event.fetch("payload"), &callback)
end
end
|
#prepare(entity) ⇒ Object
70
71
72
|
# File 'lib/interfacets/client/channels/audio.rb', line 70
def prepare(entity)
@builder ||= Builder.new
end
|
#result ⇒ Object
95
96
97
|
# File 'lib/interfacets/client/channels/audio.rb', line 95
def result
{ streams: { default: @builder.flush_event } }
end
|