simple_wiimote 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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