Class: Ruflet::UI::Controls::RufletComponents::AudioControl

Inherits:
Control
  • Object
show all
Defined in:
lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb

Constant Summary collapse

TYPE =
"audio".freeze
WIRE =
"Audio".freeze
KEYWORDS =
[:autoplay, :balance, :data, :key, :opacity, :playback_rate, :release_mode, :rtl, :src, :src_base64, :tooltip, :visible, :volume, :on_duration_change, :on_error, :on_loaded, :on_position_change, :on_seek_complete, :on_state_change].freeze

Constants inherited from Control

Control::HOST_EXPANDED_TYPES, Control::SCHEMA_METADATA_CACHE

Instance Attribute Summary

Attributes inherited from Control

#children, #id, #props, #runtime_page, #type, #wire_id

Instance Method Summary collapse

Methods inherited from Control

#attach_handler, #emit, generate_id, #has_handler?, #merge_props, #on, #to_patch

Constructor Details

#initialize(id: nil, autoplay: nil, balance: nil, data: nil, key: nil, opacity: nil, playback_rate: nil, release_mode: nil, rtl: nil, src: nil, src_base64: nil, tooltip: nil, visible: nil, volume: nil, on_duration_change: nil, on_error: nil, on_loaded: nil, on_position_change: nil, on_seek_complete: nil, on_state_change: nil) ⇒ AudioControl

Returns a new instance of AudioControl.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 12

def initialize(id: nil, autoplay: nil, balance: nil, data: nil, key: nil, opacity: nil, playback_rate: nil, release_mode: nil, rtl: nil, src: nil, src_base64: nil, tooltip: nil, visible: nil, volume: nil, on_duration_change: nil, on_error: nil, on_loaded: nil, on_position_change: nil, on_seek_complete: nil, on_state_change: nil)
  props = {}
  props[:autoplay] = autoplay unless autoplay.nil?
  props[:balance] = balance unless balance.nil?
  props[:data] = data unless data.nil?
  props[:key] = key unless key.nil?
  props[:opacity] = opacity unless opacity.nil?
  props[:playback_rate] = playback_rate unless playback_rate.nil?
  props[:release_mode] = release_mode unless release_mode.nil?
  props[:rtl] = rtl unless rtl.nil?
  props[:src] = src unless src.nil?
  props[:src_base64] = src_base64 unless src_base64.nil?
  props[:tooltip] = tooltip unless tooltip.nil?
  props[:visible] = visible unless visible.nil?
  props[:volume] = volume unless volume.nil?
  props[:on_duration_change] = on_duration_change unless on_duration_change.nil?
  props[:on_error] = on_error unless on_error.nil?
  props[:on_loaded] = on_loaded unless on_loaded.nil?
  props[:on_position_change] = on_position_change unless on_position_change.nil?
  props[:on_seek_complete] = on_seek_complete unless on_seek_complete.nil?
  props[:on_state_change] = on_state_change unless on_state_change.nil?
  super(type: TYPE, id: id, **props)
end

Instance Method Details

#get_current_position(timeout: 10, on_result: nil) ⇒ Object



36
37
38
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 36

def get_current_position(timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "get_current_position", timeout: timeout, on_result: on_result)
end

#get_duration(timeout: 10, on_result: nil) ⇒ Object



40
41
42
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 40

def get_duration(timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "get_duration", timeout: timeout, on_result: on_result)
end

#pause(timeout: 10, on_result: nil) ⇒ Object



44
45
46
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 44

def pause(timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "pause", timeout: timeout, on_result: on_result)
end

#play(position: 0, timeout: 10, on_result: nil) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 48

def play(position: 0, timeout: 10, on_result: nil)
  runtime_page&.invoke(
    self,
    "play",
    args: { "position" => position.nil? ? 0 : position },
    timeout: timeout,
    on_result: on_result
  )
end

#release(timeout: 10, on_result: nil) ⇒ Object



58
59
60
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 58

def release(timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "release", timeout: timeout, on_result: on_result)
end

#resume(timeout: 10, on_result: nil) ⇒ Object



62
63
64
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 62

def resume(timeout: 10, on_result: nil)
  runtime_page&.invoke(self, "resume", timeout: timeout, on_result: on_result)
end

#seek(position_milliseconds, timeout: 10, on_result: nil) ⇒ Object



66
67
68
69
70
71
72
73
74
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/audio_control.rb', line 66

def seek(position_milliseconds, timeout: 10, on_result: nil)
  runtime_page&.invoke(
    self,
    "seek",
    args: { "position" => position_milliseconds },
    timeout: timeout,
    on_result: on_result
  )
end