Class: Gyruby::Remote

Inherits:
Object
  • Object
show all
Defined in:
lib/gyruby/remote.rb

Direct Known Subclasses

MplayerController

Defined Under Namespace

Classes: MouseButton

Instance Method Summary collapse

Constructor Details

#initializeRemote

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

#listenObject



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
    button = MouseButton.new(:block => block, :frequency => frequency, :event => press)
    @mouse_buttons[press] ||= []
    @mouse_buttons[press] << button
    @mouse_buttons[release] ||= []
    @mouse_buttons[release] << button.release(release)
  else
    @subscribed_buttons[press] ||= []
    @subscribed_buttons[press] << block
  end
end