mmplayer 0.0.10 → 0.0.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/mmplayer.rb +1 -1
- data/lib/mmplayer/midi/wrapper.rb +17 -1
- data/test/midi/wrapper_test.rb +3 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1f47f0f1fd8bbb17710de9bf78bbb470e37a14b9
|
4
|
+
data.tar.gz: dc3f46581956823d9ef5e8c73ade20f612d33591
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40d3d58947c602a7ccb76da3af217ff9dcbbb0a9bd1131ed9da89f6eb749b48d43e475c672fdceb596d0cc3d10fa04c351912f80c9f2de3fb574876e9ce0f9e1
|
7
|
+
data.tar.gz: c5be2fc40cc8c251dec3d4559dfa67591427effe6c0d90bf11817b050e9769d1de86f1051e2cea44e553545ea7821c1d3a90965acc027be3e4a5ac394dd24b59
|
data/lib/mmplayer.rb
CHANGED
@@ -63,6 +63,7 @@ module MMPlayer
|
|
63
63
|
# @return [Boolean]
|
64
64
|
def start
|
65
65
|
initialize_listener
|
66
|
+
@start_time = Time.now.to_i
|
66
67
|
@listener.start(:background => true)
|
67
68
|
true
|
68
69
|
end
|
@@ -75,11 +76,26 @@ module MMPlayer
|
|
75
76
|
|
76
77
|
private
|
77
78
|
|
79
|
+
# Elapsed time since start in seconds
|
80
|
+
# @return [Fixnum]
|
81
|
+
def now
|
82
|
+
Time.now.to_i - @start_time
|
83
|
+
end
|
84
|
+
|
85
|
+
# Should the given MIDI event be processed or thrown away?
|
86
|
+
# @param [Hash] event
|
87
|
+
# @return [Boolean]
|
88
|
+
def process_event?(event)
|
89
|
+
@buffer_length.nil? ||
|
90
|
+
event[:timestamp].nil? ||
|
91
|
+
event[:timestamp].to_i >= now - @buffer_length
|
92
|
+
end
|
93
|
+
|
78
94
|
# Handle a new MIDI event received
|
79
95
|
# @param [Hash] event
|
80
96
|
# @return [Hash]
|
81
97
|
def handle_new_event(event)
|
82
|
-
if
|
98
|
+
if process_event?(event)
|
83
99
|
message = event[:message]
|
84
100
|
@message_handler.process(@channel, message)
|
85
101
|
event
|
data/test/midi/wrapper_test.rb
CHANGED
@@ -61,10 +61,12 @@ class MMPlayer::MIDI::WrapperTest < Minitest::Test
|
|
61
61
|
|
62
62
|
setup do
|
63
63
|
@midi.instance_variable_set("@buffer_length", 1)
|
64
|
+
@midi.instance_variable_set("@start_time", Time.now.to_i)
|
65
|
+
sleep(2)
|
64
66
|
@midi.message_handler.expects(:process).never
|
65
67
|
@event = {
|
66
68
|
:message => MIDIMessage::NoteOn.new(0, 64, 120),
|
67
|
-
:timestamp=>
|
69
|
+
:timestamp => 0.1
|
68
70
|
}
|
69
71
|
@result = @midi.send(:handle_new_event, @event)
|
70
72
|
end
|