mmplayer 0.0.10 → 0.0.11

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: 7506ea91a4204c4c6a54de79d645e80315559b98
4
- data.tar.gz: 531967ac3622fc501eab6162d1e63afae815cb69
3
+ metadata.gz: 1f47f0f1fd8bbb17710de9bf78bbb470e37a14b9
4
+ data.tar.gz: dc3f46581956823d9ef5e8c73ade20f612d33591
5
5
  SHA512:
6
- metadata.gz: 737adfeadb792fb1ea7643530635556dd12efe935a047701186c40b43bfdd608ad8b47124c742f1fc33dd4421117c3b506f13d69644499a770498452dad79569
7
- data.tar.gz: b6d88d0809f7b443f136b07ba242f22368fdf14f37ed23ec4581f49d4b05c2c83124867201908c91161e7d003ec0a9f5adc99855f8f25849dbba8261c30df9ca
6
+ metadata.gz: 40d3d58947c602a7ccb76da3af217ff9dcbbb0a9bd1131ed9da89f6eb749b48d43e475c672fdceb596d0cc3d10fa04c351912f80c9f2de3fb574876e9ce0f9e1
7
+ data.tar.gz: c5be2fc40cc8c251dec3d4559dfa67591427effe6c0d90bf11817b050e9769d1de86f1051e2cea44e553545ea7821c1d3a90965acc027be3e4a5ac394dd24b59
@@ -24,7 +24,7 @@ require "mmplayer/context"
24
24
 
25
25
  module MMPlayer
26
26
 
27
- VERSION = "0.0.10"
27
+ VERSION = "0.0.11"
28
28
 
29
29
  # Shortcut to Context constructor
30
30
  def self.new(*args, &block)
@@ -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 @buffer_length.nil? || event[:timestamp].nil? || event[:timestamp] >= Time.now.to_i - @buffer_length
98
+ if process_event?(event)
83
99
  message = event[:message]
84
100
  @message_handler.process(@channel, message)
85
101
  event
@@ -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=> 4.395330429077
69
+ :timestamp => 0.1
68
70
  }
69
71
  @result = @midi.send(:handle_new_event, @event)
70
72
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mmplayer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 0.0.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Russo