Class: MMPlayer::Player::Messenger

Inherits:
Object
  • Object
show all
Defined in:
lib/mmplayer/player/messenger.rb

Overview

Handle sending MPlayer messages

Constant Summary collapse

FREQUENCY_LIMIT =

Throttle messages to 1 per this number seconds

0.1

Instance Method Summary collapse

Constructor Details

#initializeMessenger

Returns a new instance of Messenger.



10
11
12
# File 'lib/mmplayer/player/messenger.rb', line 10

def initialize
  @messages = []
end

Instance Method Details

#send_message(&block) ⇒ Hash?

Send mplayer a message asynch

Returns:

  • (Hash, nil)


16
17
18
19
20
21
22
23
# File 'lib/mmplayer/player/messenger.rb', line 16

def send_message(&block)
  timestamp = Time.now.to_f
  # Throttled messages are disregarded
  if @messages.empty? || !throttle?(timestamp, @messages.last[:timestamp])
    thread = ::MMPlayer::Thread.new(&block)
    record_message(thread, timestamp)
  end
end