class Shmidi::Button
Constants
- CTYPE
Attributes
counter[R]
Public Class Methods
new(socket, channel, note, pressed = false)
click to toggle source
Calls superclass method
Shmidi::Control::new
# File lib/shmidi/controls/button.rb, line 8 def initialize(socket, channel, note, pressed = false) super(socket, channel, note) @pressed = pressed init end
Public Instance Methods
init()
click to toggle source
# File lib/shmidi/controls/button.rb, line 14 def init @counter = 0 @__on_press = [] socket.on_event(channel, :on, note) do |event| @pressed = true @counter += 1 # intentionaly before handlers Shmidi.TRACE {"#{CTYPE}\t#{id}\tPRESSED\t#{event.value}"} @__on_press.each { |b| b.call(self) } end @__on_release = [] socket.on_event(channel, :off, note) do |event| @pressed = false Shmidi.TRACE {"#{CTYPE}\t#{id}\tRELEASE\t#{event.value}"} @__on_release.each { |b| b.call(self) } @counter += 1 # intentionaly after handlers end end
on_press(&block)
click to toggle source
# File lib/shmidi/controls/button.rb, line 40 def on_press(&block) @__on_press << block end
on_release(&block)
click to toggle source
# File lib/shmidi/controls/button.rb, line 47 def on_release(&block) @__on_release << block end
pressed?()
click to toggle source
# File lib/shmidi/controls/button.rb, line 37 def pressed? !!@pressed end
released?()
click to toggle source
# File lib/shmidi/controls/button.rb, line 44 def released? !@pressed end
reset()
click to toggle source
# File lib/shmidi/controls/button.rb, line 33 def reset @pressed = false end