atome 0.5.2.5 → 0.5.2.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9b7030ffafd358342bdc993dcee7f6a7f35c0c7c2504a85149bea5c2751b5d89
4
- data.tar.gz: bab45507e748e52cf793b19f2bb7457bb0d05fce580286854b49c32515dabd66
3
+ metadata.gz: f484bac3226108b4f85b673ca7351becb12af457707ef7cca080058c15b13ef5
4
+ data.tar.gz: a7c42ee2a67b75ed1d0099bf082888ab50bbe2a56e2c68e93436f839ab363c89
5
5
  SHA512:
6
- metadata.gz: 1d72ba4a1af3d68412a3a64f0e3907f523cb03188f0c5becc355e8afc2e4e0d3b59ef06863171c6d8808ceedbace062099535823be732a058282acac7943a320
7
- data.tar.gz: 1146eea7819fca1b160453cdd7187d11bf2e6a9471afeb4489246ba9297ecc708563d63a1ce679caf594fe1218b524c24c6dec3349c6a04c546ae36da9cffb72
6
+ metadata.gz: b9f6e623de170446b7396d38240cd02d92e0943e1f45d6f51161c4c2dc4057ab13c32e4273e04730708f8da42d429c3865175339e102a82f797bb476b4a4dfb1
7
+ data.tar.gz: 4319997d39d49fa04541cf888e69d23db768455969a55944531ce70f55f889d0ffb05aa3db8de5db0cdaa0117cb6640ea401a73e6b6f80a46788fa8b8dcd7450
data/lib/atome/atome.rb CHANGED
@@ -15,13 +15,11 @@ class Atome
15
15
  atomes.each_value do |elements|
16
16
  # the instance variable below contain the id all any atomes that need to be informed when changes occurs
17
17
  @broadcast = {}
18
- @at_time = {}
19
- @markers = {}
18
+ # @at_time = {}
20
19
  # now we store the proc in a an atome's property called :bloc
21
20
  elements[:code] = atomes_proc if atomes_proc
22
21
  @atome = elements
23
22
  # we initiate the rendering, eg for for browser we will call :browser_type generate method in identity.rb file
24
- # create_particle(:type, @atome[:type])
25
23
  create_particle(:type)
26
24
  set_type(@atome[:type])
27
25
  collapse
@@ -77,24 +75,25 @@ class Atome
77
75
 
78
76
  def run_optional_proc(proc_name, atome = self, value = '', &user_proc)
79
77
  option_found = Universe.get_optional_method(proc_name)
80
- atome.instance_exec(value, user_proc,atome, &option_found) if option_found.is_a?(Proc)
78
+ atome.instance_exec(value, user_proc, atome, &option_found) if option_found.is_a?(Proc)
81
79
  end
82
80
 
83
81
  def inject_value(element, value)
82
+ # attention : please keep the method 'inject_value' available as it is sometimes needed to access it directly
84
83
  @atome[element] = value
85
84
  end
86
85
 
87
- def store_value(element, value)
86
+ def store_value(element)
88
87
  # this method save the value of the particle and broadcast to the atomes listed in broadcast
89
- broadcasting(element, value)
90
- inject_value(element, value)
88
+ broadcasting(element, @atome[element])
89
+ inject_value(element, @atome[element])
91
90
  end
92
91
 
93
92
  public
94
93
 
95
94
  # the line below is used for ephemera atomes
96
- attr_accessor :property, :value, :real_atome, :user_proc, :markers
97
- attr_reader :atome, :structure, :at_time
95
+ attr_accessor :property, :value, :real_atome, :user_proc
96
+ attr_reader :atome, :structure#, :at_time
98
97
 
99
98
  def set(value)
100
99
  @real_atome[@property] = value
@@ -105,10 +104,14 @@ class Atome
105
104
 
106
105
  # we create a proc holder of any new particle if user pass a bloc
107
106
  store_code_bloc(element, &user_proc) if user_proc
108
- run_optional_proc("pre_render_#{element}".to_sym, self, params, &user_proc)
109
- rendering(element, params, &user_proc)
110
- run_optional_proc("post_render_#{element}".to_sym, self, params, &user_proc)
111
- store_value(element, params)
107
+ # we store the params immediately into the atome so optionals methods can access and modify it
108
+ @atome[element] = params
109
+ run_optional_proc("pre_render_#{@atome[:type]}".to_sym, self, @atome[element], &user_proc)
110
+ run_optional_proc("pre_render_#{element}".to_sym, self, @atome[element], &user_proc)
111
+ rendering(element, @atome[element], &user_proc)
112
+ run_optional_proc("post_render_#{@atome[:type]}".to_sym, self, @atome[element], &user_proc)
113
+ run_optional_proc("post_render_#{element}".to_sym, self, @atome[element], &user_proc)
114
+ store_value(element)
112
115
  self
113
116
  end
114
117
 
@@ -128,7 +131,8 @@ class Atome
128
131
  virtual_atome.real_atome = @atome
129
132
  virtual_atome.property = element
130
133
  virtual_atome.user_proc = user_proc
131
- run_optional_proc("pre_get_#{element}".to_sym,self, "virtual_atome", &user_proc)
134
+ run_optional_proc("pre_get_#{@atome[:type]}".to_sym, "virtual_atome", &user_proc)
135
+ run_optional_proc("pre_get_#{element}".to_sym, self, "virtual_atome", &user_proc)
132
136
  virtual_atome
133
137
  end
134
138
 
@@ -5,14 +5,18 @@ generator = Genesis.generator
5
5
  # touch
6
6
  generator.build_particle(:touch)
7
7
  # video
8
- generator.build_particle(:play)
8
+ generator.build_particle(:play) do
9
+ @atome[:pause] = :false
10
+ end
9
11
  generator.build_particle(:time)
10
- generator.build_particle(:pause)
12
+ generator.build_particle(:pause) do
13
+ @atome[:play] = :false
14
+ end
11
15
  generator.build_particle(:on)
12
16
  generator.build_particle(:fullscreen)
13
17
  generator.build_particle(:mute)
14
18
  # TODO : add the at event to ny particle : (width, left, ...) maybe use monitor particle
15
- generator.build_particle(:at)
19
+ # generator.build_particle(:at)
16
20
  # drag
17
21
  generator.build_particle(:drag)
18
22
  generator.build_sanitizer(:drag) do |params|
@@ -41,14 +41,18 @@ generator.build_particle(:attached) do |targets|
41
41
  end
42
42
  end
43
43
 
44
+ generator.build_particle(:intricate, :array)
45
+
46
+
44
47
  generator.build_particle(:clones) do |clones_found|
45
48
  clones_found.each_with_index do |clone_found, index|
49
+ particles_intricated= clone_found[:intricate] ||= [:width]
46
50
  clone_id="#{particles[:id]}_clone_#{index}"
47
51
  original_id=atome[:id]
48
52
  clone_found[:id] = clone_id
49
53
  clone_found = particles.merge(clone_found)
50
- cloned_atome=Atome.new({ shape: clone_found })
51
- cloned_atome.monitor({ atomes: [original_id], particles: [:width, :attached,:height ]}) do |_atome, particle, value|
54
+ cloned_atome=Atome.new({ clone: clone_found })
55
+ cloned_atome.monitor({ atomes: [original_id], particles: particles_intricated}) do |_atome, particle, value|
52
56
  cloned_atome.send(particle,value)
53
57
  end
54
58
  end
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ generator = Genesis.generator
4
+ # create particles
5
+ generator.build_particle(:markers, :hash)
@@ -11,9 +11,9 @@ end
11
11
 
12
12
  # Genesis method here
13
13
  class Atome
14
- def build_particle(particle_name, &particle_proc)
14
+ def build_particle(particle_name,type=:string, &particle_proc)
15
15
  # we add the new method to the particle's collection of methods
16
- Universe.add_to_particle_list(particle_name)
16
+ Universe.add_to_particle_list(particle_name, type)
17
17
  auto_render_generator(particle_name)
18
18
  new_particle(particle_name, &particle_proc)
19
19
  additional_particle_methods(particle_name, &particle_proc)
@@ -18,16 +18,15 @@ class Atome
18
18
  instance_exec(file, &proc) if proc.is_a?(Proc)
19
19
  end
20
20
 
21
- def time_callback(current_time)
22
- # puts "time_callback = #{current_time.round(1)}\n#{current_time}"
21
+ def time_callback(current_time, markers)
23
22
  @atome[:time] = current_time
24
- # the line below is used only to set up a one shot event
25
- # return unless @at_time[:time] && (current_time > @at_time[:time] && @at_time[:used].nil?)
26
-
27
- return unless @at_time[:time] && (current_time > @at_time[:time])
28
- proc = @at_time[:code]
29
- instance_exec(current_time, &proc) if proc.is_a?(Proc)
30
- # @at_time[:used] = true
23
+ markers.each_value do |marker|
24
+ # check if the current time matches the time of the marker, thanks to chat GPT for the example
25
+ if current_time >= marker[:begin] && current_time < marker[:end]
26
+ code_found = marker[:code]
27
+ instance_exec(current_time, &code_found) if code_found.is_a?(Proc)
28
+ end
29
+ end
31
30
  end
32
31
 
33
32
  def drag_start_callback(page_x, page_y, left_val, top_val)
@@ -28,29 +28,6 @@ class Atome
28
28
  "historize : #{property} #{value}"
29
29
  end
30
30
 
31
- # def broadcasting(modified_particle, value)
32
- # @broadcast.each_value do |particle_monitored|
33
- # if particle_monitored[modified_particle]
34
- # code_found = particle_monitored[modified_particle]
35
- # instance_exec(self, modified_particle, value, &code_found) if code_found.is_a?(Proc)
36
- # end
37
- # end
38
- # end
39
- #
40
- # public
41
- #
42
- # def monitor(params, &proc_monitoring)
43
- # atome[:monitor] ||= {}
44
- # params[:atomes].each do |atome_id|
45
- # target_broadcaster = grab(atome_id).instance_variable_get('@broadcast')
46
- # monitor_id = params[:id] || "monitor#{target_broadcaster.length}"
47
- # atome[:monitor] [monitor_id]=params.merge({code: proc_monitoring})
48
- # params[:particles].each do |targeted_particle|
49
- # target_broadcaster[monitor_id] = { targeted_particle => proc_monitoring }
50
- # end
51
- # end
52
- # end
53
-
54
31
  def broadcasting(altered_particle, value)
55
32
  @broadcast.each_value do |particle_monitored|
56
33
  if particle_monitored[:particles].include?(altered_particle)
@@ -62,21 +39,29 @@ class Atome
62
39
 
63
40
  public
64
41
 
65
- def monitor(params, &proc_monitoring)
66
- atome[:monitor] ||= {}
67
- params[:atomes].each do |atome_id|
68
- target_broadcaster = grab(atome_id).instance_variable_get('@broadcast')
69
- monitor_id = params[:id] || "monitor#{target_broadcaster.length}"
70
- atome[:monitor] [monitor_id]=params.merge({code: proc_monitoring})
71
- target_broadcaster[monitor_id] = { particles: params[:particles], code: proc_monitoring }
42
+ def monitor(params=nil, &proc_monitoring)
43
+ if params
44
+ atome[:monitor] ||= {}
45
+ params[:atomes].each do |atome_id|
46
+ target_broadcaster = grab(atome_id).instance_variable_get('@broadcast')
47
+ monitor_id = params[:id] || "monitor#{target_broadcaster.length}"
48
+ atome[:monitor] [monitor_id]=params.merge({code: proc_monitoring})
49
+ target_broadcaster[monitor_id] = { particles: params[:particles], code: proc_monitoring }
50
+ end
51
+ else
52
+ atome[:monitor]
72
53
  end
54
+
73
55
  end
56
+
74
57
  def store_code_bloc(element, &user_proc)
58
+ # TODO : maybe we have to change tis code if we need multiple proc for an particle
75
59
  Object.attr_accessor "#{element}_code"
76
60
 
77
61
  instance_variable_set("@#{element}_code", user_proc)
78
62
  end
79
63
 
64
+
80
65
  def particles(particles_found = nil)
81
66
  if particles_found
82
67
  particles_found.each do |particle_found, value_found|
@@ -92,6 +77,26 @@ class Atome
92
77
  real_atome[property] << value
93
78
  end
94
79
 
80
+ def add_to_hash(particle, values, &user_proc)
81
+ # we update the holder of any new particle if user pass a bloc
82
+ store_code_bloc(particle, &user_proc) if user_proc
83
+ values.each do |value_id, value|
84
+ @atome[particle][value_id] = value
85
+ end
86
+ end
87
+
88
+ def add_to_array(particle, value, &_user_proc)
89
+ # we update the holder of any new particle if user pass a bloc
90
+ @atome[particle] << value
91
+ end
92
+
93
+ def add(particles, &user_proc)
94
+ particles.each do |particle, value|
95
+ particle_type = Universe.particle_list[particle]
96
+ send("add_to_#{particle_type}", particle, value, &user_proc)
97
+ end
98
+ end
99
+
95
100
  def refresh
96
101
  collapse
97
102
  end
@@ -4,7 +4,7 @@
4
4
  class Universe
5
5
  @atomes = {}
6
6
  @atome_list = []
7
- @particle_list = []
7
+ @particle_list = {}
8
8
  @renderer_list = %i[html browser headless server]
9
9
  @options = {}
10
10
  @sanitizers = {}
@@ -12,8 +12,8 @@ class Universe
12
12
  class << self
13
13
  attr_reader :atomes, :renderer_list, :atome_list, :particle_list
14
14
 
15
- def add_to_particle_list(particle = nil)
16
- instance_variable_get('@particle_list').push(particle)
15
+ def add_to_particle_list(particle = nil, type)
16
+ instance_variable_get('@particle_list')[particle]=type
17
17
  end
18
18
 
19
19
  def add_optional_method(method_name, &method_proc)
@@ -8,6 +8,7 @@ require 'atome/renderers/browser/material'
8
8
  require 'atome/renderers/browser/spatial'
9
9
  require 'atome/renderers/browser/atome'
10
10
  require 'atome/renderers/browser/utility'
11
+ require 'atome/renderers/browser/time'
11
12
  require 'atome/renderers/browser/helpers/browser_helper'
12
13
  require 'atome/renderers/browser/helpers/animation_helper'
13
14
  require 'atome/renderers/browser/helpers/color_helper'
@@ -47,11 +47,6 @@ generator.build_render(:mute) do |value, _proc|
47
47
  end
48
48
  end
49
49
 
50
- generator.build_render(:browser_at) do |at, proc|
51
- # @atime is check at each toick of frame in 'time_callback'
52
- @at_time = { code: proc }.merge(at)
53
- end
54
-
55
50
  generator.build_render(:browser_drag) do |options, proc|
56
51
  options.each do |method, params|
57
52
  atome_id = @atome[:id]
@@ -2,9 +2,6 @@
2
2
 
3
3
  # for browser rendering
4
4
  module BrowserHelper
5
- def self.common_shadow_helper
6
- alert :zgeg
7
- end
8
5
 
9
6
  def self.browser_blur_style(_browser_object, value, atome)
10
7
  b_left = "#{atome[:left]}px"
@@ -24,20 +24,27 @@ module BrowserHelper
24
24
  end
25
25
 
26
26
  def self.browser_play_video(_value, browser_object_found, atome_hash, atome_object, proc)
27
+ markers = atome_hash[:markers]
28
+ markers.each_value do |value|
29
+ value[:end] = value[:begin] + 0.25 unless value[:end]
30
+ value[:label] = "label_#{atome_hash[:markers].length}" unless value[:label]
31
+ end
32
+
27
33
  browser_object_found.play
28
34
  # TODO : change timeupdate for when possible requestVideoFrameCallback
29
35
  # (opal-browser/opal/browser/event.rb line 36)
30
36
  video_callback = atome_hash[:code] # this is the video callback not the play callback
31
37
  play_callback = proc # this is the video callback not the play callback
38
+
32
39
  browser_object_found.on(:timeupdate) do |e|
33
40
  current_time = browser_object_found.currentTime
34
41
  # we update the time particle
35
- atome_object.time_callback(current_time)
42
+ atome_object.time_callback(current_time, markers)
36
43
  e.prevent # Prevent the default action (eg. form submission)
37
44
  # You can also use `e.stop` to stop propagating the event to other handlers.
38
-
39
45
  atome_object.instance_exec(current_time, &video_callback) if video_callback.is_a?(Proc)
40
46
  atome_object.instance_exec(current_time, &play_callback) if play_callback.is_a?(Proc)
41
47
  end
42
48
  end
49
+
43
50
  end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ # generator = Genesis.generator
@@ -34,7 +34,7 @@ class Html
34
34
  `#{parent_found}.appendChild(#{@html})`
35
35
  end
36
36
  def append_color(parent)
37
- aleputsrt "color : #{parent.class}"
37
+ "color : #{parent.class}"
38
38
  end
39
39
  def append_to(_node)
40
40
 
data/lib/atome/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Atome
4
- VERSION = '0.5.2.5'
4
+ VERSION = '0.5.2.7'
5
5
  end
data/lib/atome.rb CHANGED
@@ -21,6 +21,7 @@ require 'atome/genesis/generators/geometry'
21
21
  require 'atome/genesis/generators/identity'
22
22
  require 'atome/genesis/generators/material'
23
23
  require 'atome/genesis/generators/spatial'
24
+ require 'atome/genesis/generators/time'
24
25
  require 'atome/genesis/generators/utility'
25
26
  if RUBY_ENGINE.downcase == 'opal'
26
27
  require 'atome/renderers/browser/browser'
data/sig/atome.rbs CHANGED
@@ -1,5 +1,11 @@
1
1
  module Atome
2
2
  VERSION: String
3
3
  # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
+ def add: -> untyped
5
+
6
+ def add_to_array: -> untyped
7
+
8
+ def add_to_hash: -> untyped
9
+
4
10
  def sort_callback: -> untyped
5
11
  end
@@ -58,10 +58,11 @@ generator = Genesis.generator
58
58
 
59
59
  generator.build_atome(:template)
60
60
 
61
+ generator.build_particle(:cells)
62
+ generator.build_particle(:rows)
63
+ generator.build_particle(:columns)
61
64
  generator.build_sanitizer(:template) do |params|
62
-
63
- default_params = { renderers: [], id: "template_#{Universe.atomes.length}", type: :template,
64
- }
65
+ default_params = { renderers: [], id: "template_#{Universe.atomes.length}", type: :template }
65
66
  default_params.merge!(params)
66
67
  end
67
68
 
@@ -76,7 +77,4 @@ template({ id: :child_in_table, code: [], cells: 16, columns: 4, rows: 4 })
76
77
  the_view = grab(:view)
77
78
  the_view.display(template: :child_in_table, list: [the_view.children.value], left: 33, top: 63, width: 333, height: 333)
78
79
 
79
- # alert the_view
80
-
81
-
82
80
 
@@ -0,0 +1 @@
1
+ # frozen_string_literal: true
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ my_video = Atome.new(
4
+ video: { renderers: [:browser], id: :video1, type: :video, parents: [:view], clones: [],
5
+ path: './medias/videos/avengers.mp4', left: 333, top: 33, width: 777
6
+ }
7
+ )
8
+
9
+ my_video.touch(true) do
10
+ my_video.play(3)
11
+ puts "play : #{my_video.play}, pause : #{my_video.pause}"
12
+ end
13
+
14
+ stoper = lambda do
15
+ my_video.pause(true)
16
+ end
17
+
18
+ jumper=lambda do
19
+ my_video.play(12)
20
+ my_video.play(12)
21
+ end
22
+
23
+ my_video.markers({ markers: { begin: 6, code: jumper } })
24
+
25
+ my_video.add({ markers: { my_stop: { begin: 16, code: stoper } } })
@@ -1,18 +1,33 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ # TODO : clones alteration must be bidirectional, to do so :
4
+ # 1 - we may create an atome type 'clone' then add a ' pre_render_clones option' when rendering clones property
5
+ # 2 - this pre_render_clones option, will catch alterations and throw it the the original atome
6
+ # 3 - we also add a new particle call mirror that holds the particle's list that will reverse intrication
7
+
3
8
  b = box({ color: :red, smooth: 6 })
4
9
 
5
- b.clones([left: 600, top: 300])
10
+ b.clones([{ left: 300, top: 300, color: :blue, intricate: [:width, :attached,:height ] },
11
+ {left: 600, top: 366, color: :green , intricate: [:left, :height ]}])
6
12
 
7
13
  wait 1 do
8
- b.width(500)
14
+ b.width(190)
9
15
  end
10
16
 
11
17
  wait 2 do
12
- b.height(500)
18
+ b.height(180)
19
+ end
20
+
21
+ wait 3 do
22
+ b.left(180)
13
23
  end
14
24
 
15
- wait 4 do
25
+ grab(:box_4_clone_1).smooth(33)
26
+
27
+ grab(:box_4_clone_1).rotate(33)
28
+
29
+
30
+ wait 5 do
16
31
  b.clones.value.each do |clone_found|
17
32
  grab(clone_found[:id]).delete(true)
18
33
  end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ my_video = Atome.new(
4
+ video: { renderers: [:browser], id: :video1, type: :video, parents: [:view], clones: [],
5
+ path: './medias/videos/avengers.mp4', left: 333, top: 33, width: 777
6
+ }
7
+ )
8
+
9
+ my_video.touch(true) do
10
+ my_video.play(10)
11
+ puts "play : #{my_video.play}, pause : #{my_video.pause}"
12
+ end
13
+
14
+ m_code1 = lambda do |val|
15
+ puts "hello : #{val}"
16
+ end
17
+ m_code2 = lambda do |val|
18
+ puts "hi there : #{val}"
19
+ end
20
+
21
+ m_code22 = lambda do |val|
22
+ puts "Super!! : #{val}"
23
+ end
24
+
25
+ stoper = lambda do
26
+ my_video.pause(true)
27
+ end
28
+
29
+ looper=lambda do
30
+ my_video.add({ markers: { my_stop: { begin: 6, code: stoper } } })
31
+ my_video.play(4)
32
+ end
33
+
34
+
35
+ # the marker below wont be executed because m2 will override it
36
+ my_video.markers({ m1: { begin: 13, code: m_code1 } }) do |_params|
37
+ puts 'stop'
38
+ end
39
+ # the marker will replace marker m1
40
+ my_video.markers({ m2: { begin: 12.876, code: m_code2 } }) do |_params|
41
+ puts'good'
42
+ end
43
+
44
+ # The markers below will be executed because they're added
45
+
46
+ my_video.add({ markers: { my_marker: { begin: 22.87576, code: looper } } })
47
+ my_video.add({ markers: { m3: { begin: 16.87576, code: m_code2 } } })
48
+ my_video.add({ markers: { m4: { begin: 14.87576,end: 16, code: m_code22 } } })
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: atome
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.2.5
4
+ version: 0.5.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jean-Eric Godard
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-12-09 00:00:00.000000000 Z
11
+ date: 2022-12-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: arduino_firmata
@@ -391,6 +391,7 @@ files:
391
391
  - lib/atome/genesis/generators/identity.rb
392
392
  - lib/atome/genesis/generators/material.rb
393
393
  - lib/atome/genesis/generators/spatial.rb
394
+ - lib/atome/genesis/generators/time.rb
394
395
  - lib/atome/genesis/generators/utility.rb
395
396
  - lib/atome/genesis/genesis.rb
396
397
  - lib/atome/genesis/sparkle.rb
@@ -436,6 +437,7 @@ files:
436
437
  - lib/atome/renderers/browser/material.rb
437
438
  - lib/atome/renderers/browser/opal_browser.rb
438
439
  - lib/atome/renderers/browser/spatial.rb
440
+ - lib/atome/renderers/browser/time.rb
439
441
  - lib/atome/renderers/browser/utility.rb
440
442
  - lib/atome/renderers/headless/headless.rb
441
443
  - lib/atome/renderers/headless/utility.rb
@@ -603,11 +605,11 @@ files:
603
605
  - vendor/assets/build/medias/rubies/examples/_2_solve.rb
604
606
  - vendor/assets/build/medias/rubies/examples/_audio.rb
605
607
  - vendor/assets/build/medias/rubies/examples/_dataset.rb
606
- - vendor/assets/build/medias/rubies/examples/_markers.rb
607
608
  - vendor/assets/build/medias/rubies/examples/_os.rb
609
+ - vendor/assets/build/medias/rubies/examples/_test.rb
608
610
  - vendor/assets/build/medias/rubies/examples/_vie.rb
611
+ - vendor/assets/build/medias/rubies/examples/add.rb
609
612
  - vendor/assets/build/medias/rubies/examples/animation.rb
610
- - vendor/assets/build/medias/rubies/examples/at.rb
611
613
  - vendor/assets/build/medias/rubies/examples/atome_new.rb
612
614
  - vendor/assets/build/medias/rubies/examples/auto_height.rb
613
615
  - vendor/assets/build/medias/rubies/examples/auto_width.rb
@@ -636,6 +638,7 @@ files:
636
638
  - vendor/assets/build/medias/rubies/examples/image.rb
637
639
  - vendor/assets/build/medias/rubies/examples/left.rb
638
640
  - vendor/assets/build/medias/rubies/examples/link.rb
641
+ - vendor/assets/build/medias/rubies/examples/markers.rb
639
642
  - vendor/assets/build/medias/rubies/examples/matrix.rb
640
643
  - vendor/assets/build/medias/rubies/examples/monitoring.rb
641
644
  - vendor/assets/build/medias/rubies/examples/mute.rb
@@ -1,57 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- ##########################
4
- # markers
5
- my_video = Atome.new(
6
- video: { renderers: [:browser], id: :video1, type: :video, parents: [:view],clones: [],
7
- path: './medias/videos/avengers.mp4', left: 333, top: 33, width: 777
8
- }
9
- ) do |params|
10
- # puts "video callback here #{params}"
11
- end
12
-
13
- my_video.touch(true) do
14
- my_video.play(10) do ||
15
-
16
- end
17
- end
18
-
19
- @mcounter = 0
20
- my_video.at({ time: 15 }) do |value|
21
- # my_video.pause(true)
22
- if @mcounter
23
- puts "ok : #{@mcounter}"
24
- else
25
- @mcounter = 0
26
- end
27
-
28
- puts "value is : #{value} : mcounter : #{@mcounter}"
29
- puts "---- #{my_video.time}-----"
30
- my_video.play(15+(@mcounter*1))
31
- # my_video.play() do |val|
32
- # puts val
33
- # end
34
-
35
- @mcounter = @mcounter + 1
36
- @at_time[:used] = false
37
- end
38
-
39
-
40
- # frozen_string_literal: true
41
-
42
- generator = Genesis.generator
43
- generator.build_particle(:markers)
44
-
45
-
46
-
47
- my_lambda = lambda do |val|
48
- puts "hello : #{val}"
49
- end
50
- my_video.markers({m1:{time: 15.87576, code: my_lambda}})
51
-
52
- my_video.markers({m1:{time: 15.87576, code: my_lambda}}) do |params|
53
- alert :good
54
- end
55
-
56
- my_lambda.call(:jeezs)
57
- alert my_video.markers
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- my_video = Atome.new(
4
- video: { renderers: [:browser], id: :video1, type: :video, parents: [:view],
5
- path: './medias/videos/avengers.mp4', left: 333, top: 33, width: 777
6
- }
7
- ) do |params|
8
- puts "video callback here #{params}"
9
- end
10
-
11
- my_video.touch(true) do
12
- my_video.play(1)
13
- end
14
-
15
- my_video.at({ time: 3.6 }) do |value|
16
- puts "okok"
17
- end
18
-
19
- my_video.at({ time: 6.6 }) do |value|
20
- my_video.pause(true)
21
- end