atome 0.5.2.5 → 0.5.2.7

Sign up to get free protection for your applications and to get access to all the features.
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