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 +4 -4
- data/lib/atome/atome.rb +18 -14
- data/lib/atome/genesis/generators/event.rb +7 -3
- data/lib/atome/genesis/generators/identity.rb +6 -2
- data/lib/atome/genesis/generators/time.rb +5 -0
- data/lib/atome/genesis/genesis.rb +2 -2
- data/lib/atome/helpers/callbacks.rb +8 -9
- data/lib/atome/helpers/utilities.rb +35 -30
- data/lib/atome/kernel/universe.rb +3 -3
- data/lib/atome/renderers/browser/browser.rb +1 -0
- data/lib/atome/renderers/browser/event.rb +0 -5
- data/lib/atome/renderers/browser/helpers/effect_helper.rb +0 -3
- data/lib/atome/renderers/browser/helpers/video_helper.rb +9 -2
- data/lib/atome/renderers/browser/time.rb +3 -0
- data/lib/atome/renderers/html/html.rb +1 -1
- data/lib/atome/version.rb +1 -1
- data/lib/atome.rb +1 -0
- data/sig/atome.rbs +6 -0
- data/vendor/assets/build/medias/rubies/examples/_dataset.rb +4 -6
- data/vendor/assets/build/medias/rubies/examples/_test.rb +1 -0
- data/vendor/assets/build/medias/rubies/examples/add.rb +25 -0
- data/vendor/assets/build/medias/rubies/examples/clone.rb +19 -4
- data/vendor/assets/build/medias/rubies/examples/markers.rb +48 -0
- metadata +7 -4
- data/vendor/assets/build/medias/rubies/examples/_markers.rb +0 -57
- data/vendor/assets/build/medias/rubies/examples/at.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f484bac3226108b4f85b673ca7351becb12af457707ef7cca080058c15b13ef5
|
4
|
+
data.tar.gz: a7c42ee2a67b75ed1d0099bf082888ab50bbe2a56e2c68e93436f839ab363c89
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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,
|
90
|
-
inject_value(element,
|
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
|
97
|
-
attr_reader :atome, :structure
|
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
|
-
|
109
|
-
|
110
|
-
run_optional_proc("
|
111
|
-
|
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_#{
|
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({
|
51
|
-
cloned_atome.monitor({ atomes: [original_id], particles:
|
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
|
@@ -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
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
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
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
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')
|
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]
|
@@ -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
|
data/lib/atome/version.rb
CHANGED
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
@@ -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:
|
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(
|
14
|
+
b.width(190)
|
9
15
|
end
|
10
16
|
|
11
17
|
wait 2 do
|
12
|
-
b.height(
|
18
|
+
b.height(180)
|
19
|
+
end
|
20
|
+
|
21
|
+
wait 3 do
|
22
|
+
b.left(180)
|
13
23
|
end
|
14
24
|
|
15
|
-
|
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.
|
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-
|
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
|