Class: Base
- Inherits:
-
Object
show all
- Defined in:
- lib/base.rb
Direct Known Subclasses
Add, AddConstrain, AddModulo, AnalogPin, Choose, Const, CreateLookup, CreateRef, Crossfade, Divide, Feedback, FeedbackOffset, Gamma, GreaterThan, GreaterThanEquals, LFOSquare, LFOTriangle, LampPhase, LessThan, LessThanEquals, Lookup, Maximum, Minimum, Minus, Modulo, Noise, NoisePixel, PhaseTriangle, Phasor, Ref, Scale, Times
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(params) ⇒ Base
Returns a new instance of Base.
314
315
316
317
318
319
320
321
|
# File 'lib/base.rb', line 314
def initialize(params)
@frame_optimized = true
@name = "#{self.class}_#{SecureRandom.uuid.to_s.gsub('-','')}"
param_keys.each do |k|
self.send("#{k.to_sym}=", params[k])
end
buildit
end
|
Instance Attribute Details
#frame_optimized ⇒ Object
Returns the value of attribute frame_optimized.
312
313
314
|
# File 'lib/base.rb', line 312
def frame_optimized
@frame_optimized
end
|
#name ⇒ Object
Returns the value of attribute name.
311
312
313
|
# File 'lib/base.rb', line 311
def name
@name
end
|
Instance Method Details
#add_arduino_code(ir) ⇒ Object
377
378
379
380
381
382
|
# File 'lib/base.rb', line 377
def add_arduino_code(ir)
ir[@name] = arduino_code
param_keys.each do |k|
self.send("#{k}").add_arduino_code(ir)
end
end
|
#add_cycle_level_scope(ir) ⇒ Object
384
385
386
387
388
389
|
# File 'lib/base.rb', line 384
def add_cycle_level_scope(ir)
ir[@name] = cycle_level_arduino_code
param_keys.each do |k|
self.send("#{k}").add_cycle_level_scope(ir)
end
end
|
#add_top_level_scope(ir) ⇒ Object
391
392
393
394
395
396
|
# File 'lib/base.rb', line 391
def add_top_level_scope(ir)
ir[@name] = top_level_scope_code
param_keys.each do |k|
self.send("#{k}").add_top_level_scope(ir)
end
end
|
#append_tsortable(tsortable) ⇒ Object
370
371
372
373
374
375
|
# File 'lib/base.rb', line 370
def append_tsortable(tsortable)
tsortable[@name] = depends_on
param_keys.each do |k|
self.send("#{k}").append_tsortable(tsortable)
end
end
|
#arduino_code ⇒ Object
340
341
342
|
# File 'lib/base.rb', line 340
def arduino_code
[]
end
|
#buildit ⇒ Object
323
324
325
326
327
328
329
|
# File 'lib/base.rb', line 323
def buildit
param_keys.each do |k|
self.send("#{k.to_sym}=", builder(self.send("#{k.to_s}")))
end
end
|
#cycle_level_arduino_code ⇒ Object
only executed once per cycle
360
361
362
|
# File 'lib/base.rb', line 360
def cycle_level_arduino_code
[]
end
|
#depends_on ⇒ Object
335
336
337
338
|
# File 'lib/base.rb', line 335
def depends_on
return [] if param_keys == []
param_keys.map { |k| self.send("#{k}").name }
end
|
#param_keys ⇒ Object
331
332
333
|
# File 'lib/base.rb', line 331
def param_keys
[]
end
|
#resolve_frame_optimized ⇒ Object
344
345
346
347
348
349
350
351
352
353
354
355
356
357
|
# File 'lib/base.rb', line 344
def resolve_frame_optimized
param_keys.each do |k|
self.send("#{k}").resolve_frame_optimized
end
param_keys.each do |k|
if self.send("#{k}").frame_optimized == false
@frame_optimized = false
end
end
end
|
#top_level_scope_arduino_code ⇒ Object
code to be executed in the top level scope. used for constant declaration
366
367
368
|
# File 'lib/base.rb', line 366
def top_level_scope_arduino_code
[]
end
|