Class: Gyruby::Remote
- Inherits:
-
Object
- Object
- Gyruby::Remote
- Defined in:
- lib/gyruby/remote.rb
Direct Known Subclasses
Defined Under Namespace
Classes: MouseButton
Instance Method Summary collapse
-
#initialize ⇒ Remote
constructor
A new instance of Remote.
- #listen ⇒ Object
- #record(&block) ⇒ Object
- #subscribe(press, release = false, frequency = 10, &block) ⇒ Object
Constructor Details
#initialize ⇒ Remote
Returns a new instance of Remote.
40 41 42 43 44 45 |
# File 'lib/gyruby/remote.rb', line 40 def initialize @subscribed_buttons = {} @pressed_buttons = {} @mouse_buttons = {} @listening = false end |
Instance Method Details
#listen ⇒ Object
69 70 71 72 73 74 75 76 |
# File 'lib/gyruby/remote.rb', line 69 def listen claim_device unless claimed_device? loop do handle_usb_event if claimed_device? handle_mouse_event if grabbed_mouse? sleep(0.001) end end |
#record(&block) ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'lib/gyruby/remote.rb', line 60 def record(&block) claim_device unless claimed_device? loop do event = fetch_usb_event yield event unless event.nil? sleep(0.001) end end |
#subscribe(press, release = false, frequency = 10, &block) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/gyruby/remote.rb', line 47 def subscribe(press, release = false, frequency = 10, &block) if release = MouseButton.new(:block => block, :frequency => frequency, :event => press) @mouse_buttons[press] ||= [] @mouse_buttons[press] << @mouse_buttons[release] ||= [] @mouse_buttons[release] << .release(release) else @subscribed_buttons[press] ||= [] @subscribed_buttons[press] << block end end |