Class: Ruflet::UI::Controls::RufletComponents::VideoControl

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

Constant Summary collapse

TYPE =
"video".freeze
WIRE =
"Video".freeze
KEYWORDS =
[:alignment, :aspect_ratio, :autoplay, :configuration, :data, :fill_color, :filter_quality, :fit, :fullscreen, :height, :key, :muted, :opacity, :pause_upon_entering_background_mode, :pitch, :playlist, :playlist_mode, :playback_rate, :resume_upon_entering_foreground_mode, :rtl, :show_controls, :shuffle_playlist, :subtitle_configuration, :title, :tooltip, :visible, :volume, :wakelock, :width, :on_completed, :on_complete, :on_enter_fullscreen, :on_error, :on_exit_fullscreen, :on_load, :on_loaded, :on_state_change, :on_track_change, :on_track_changed].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, **props) ⇒ VideoControl

Returns a new instance of VideoControl.



13
14
15
16
17
18
19
20
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 13

def initialize(id: nil, **props)
  compact = {}
  props.each do |key, value|
    raise ArgumentError, "unknown keyword: :#{key}" unless KEYWORDS.include?(key)
    compact[key] = value unless value.nil?
  end
  super(type: TYPE, id: id, **compact)
end

Instance Method Details

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



22
23
24
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 22

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



26
27
28
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 26

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

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



30
31
32
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 30

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

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



34
35
36
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 34

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

#jump_to(media_index, timeout: 10, on_result: nil) ⇒ Object



38
39
40
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 38

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

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



42
43
44
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 42

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

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



46
47
48
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 46

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

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



50
51
52
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 50

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

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



54
55
56
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 54

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

#playlist_add(media = nil, timeout: 10, on_result: nil, **props) ⇒ Object



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

def playlist_add(media = nil, timeout: 10, on_result: nil, **props)
  item = media || props
  runtime_page&.invoke(self, "playlist_add", args: { "media" => stringify_hash_keys(item) }, timeout: timeout, on_result: on_result)
end

#playlist_remove(media_index, timeout: 10, on_result: nil) ⇒ Object



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

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

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



67
68
69
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 67

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

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



71
72
73
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 71

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

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



75
76
77
# File 'lib/ruflet_ui/ruflet/ui/controls/materials/video_control.rb', line 75

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