simple_wiimote 0.3.3 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 457eb3ae9e1994c89f078cf66e70583141e7096a
4
- data.tar.gz: 3d289100d9f6410a954895ec1f2627b15c8454a3
3
+ metadata.gz: d0b45377ac8b752bde00abd09c85f3bbf39a884f
4
+ data.tar.gz: a7a4c87abc0c78c1b214b8bff704840c436200d0
5
5
  SHA512:
6
- metadata.gz: 03096ecfc520ef9ac69931acce01bf063000d10007b210efddc9f06c84644ebf91ea49e0ea8fb891d6badcbf1b77151d710fd734894b64d13aff4eaac2d56597
7
- data.tar.gz: 17fcd28e2d273f93e209885dc9032ff1c12bd001e5e85a29afb991c03bada6d6be0cbc6677ec2d65c99198d986e7f75fab8c7aa1d0c43add1dc4267761636b54
6
+ metadata.gz: f4ae4c284d6a9a2b56e12efdbb6b32c62d5b80caace1169d58863d7af934071be64436d22827824fefd2f2c76d3b1ce76714af14ce5347c5e174ac8210096f1b
7
+ data.tar.gz: 5fedf2eee04b3e2526bd8c591785c772550a7b9515c9ab0830735cf3063d384d2c35f3c73dd8b69ec16619c6fe68e76cdb8ec501e4274768c2e043900ceb4793
checksums.yaml.gz.sig CHANGED
Binary file
@@ -4,6 +4,60 @@
4
4
 
5
5
  require 'cwiid'
6
6
 
7
+
8
+ class Led
9
+
10
+ HIGH = 1
11
+ LOW = 0
12
+
13
+ attr_reader :state
14
+
15
+ def initialize(parent)
16
+ @state, @status = LOW, :off
17
+ @parent = parent
18
+ end
19
+
20
+ def on(duration=nil)
21
+ @state, @status = HIGH, :on
22
+ @parent.on_ledchange
23
+ (sleep duration; self.off) if duration
24
+ end
25
+
26
+ def off()
27
+
28
+ return if self.off?
29
+ @state, @status = LOW, :off
30
+ @parent.on_ledchange
31
+ end
32
+
33
+ def blink(seconds=0.5, duration: nil)
34
+
35
+ @status = :blink
36
+ t2 = Time.now + duration if duration
37
+
38
+ Thread.new do
39
+ while @status == :blink do
40
+ @state = 1
41
+ (set_pin HIGH; sleep seconds; set_pin LOW; sleep seconds)
42
+ self.off if duration and Time.now >= t2
43
+ end
44
+
45
+ end
46
+ end
47
+
48
+ alias stop off
49
+
50
+ def on?() @status == :on end
51
+ def off?() @status == :off end
52
+
53
+ private
54
+
55
+ def set_pin(state)
56
+ @state = state
57
+ @parent.on_ledchange
58
+ end
59
+ end
60
+
7
61
  class WiiMote
8
62
  attr_accessor :active
9
63
  end
@@ -39,9 +93,10 @@ class SimpleWiimote
39
93
  r.merge x => h
40
94
  end
41
95
 
42
- @events['void1'] = @events['void2'] = nil
43
-
44
- @terminator = ['1','2']
96
+ @events['void1'] = @events['void2'] = nil
97
+ @terminator = ['1','2']
98
+ @led = 4.times.map { Led.new self}
99
+
45
100
  end
46
101
 
47
102
  def activate()
@@ -114,10 +169,14 @@ class SimpleWiimote
114
169
 
115
170
  end
116
171
 
117
- def led=(val) @led = @wiimote.led = val end
172
+
118
173
  def rumble=(bool) @rumble = @wiimote.rumble = bool end
119
174
  def close() @wiimote.close end
120
175
 
176
+ def on_ledchange()
177
+ @wiimote.led = @led.map(&:state).reverse.join.to_i(2)
178
+ end
179
+
121
180
  protected
122
181
 
123
182
  def on_btn_2_press(wm) puts 'button 2 pressed' end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_wiimote
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -83,5 +83,6 @@ rubyforge_project:
83
83
  rubygems_version: 2.4.6
84
84
  signing_key:
85
85
  specification_version: 4
86
- summary: simple_wiimote
86
+ summary: Use this gem with the Wii remote to handle button presses as well as to individually
87
+ set LEDs on or off, or to make the device rumble.
87
88
  test_files: []
metadata.gz.sig CHANGED
Binary file