mmplayer 0.0.6 → 0.0.7

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: a7696f764235df86a1aa44baa06e9aac9f3d2aa3
4
- data.tar.gz: 79bb9a6de61e332396a1ca14fba2f7bcf5e7c153
3
+ metadata.gz: 3d59002ee9d5711a811c980108d0e29c41b19811
4
+ data.tar.gz: 66a9b65bfb2b421e4fdcba73a04eec30123610af
5
5
  SHA512:
6
- metadata.gz: 83026c50689a282c33c8463ec018159cc4f984d6e6cc51308dbe7440210e7452f3096e76f5a361b601666458c22885740b290a35d729f84ca8478bfb445dc66d
7
- data.tar.gz: 2b84b86a16ee4a02ac0290575697967c5f1cb7e387ef6998d4478cd9e708f80c25822dbcf9f62907a07c2b5f5cc69a72c67fc86938fe46cf4381a34f1bebeb81
6
+ metadata.gz: a6b900ed7f38488e1f8705a0f4facdf0cf0dc6d44b0fae68c4fb2d06cb5b55b262637890d0c737640b7ca345df1d882a01cbfe1f5b505b44a619db4a2e8461cd
7
+ data.tar.gz: 9d8b70983896579a071930a32dc9a4de903694383fb7d30cdb4efcf144125ec6dd2ef2d0bab7c78851e6310102f9f1e98333dd3d2bca22c1519b04bf66992014
@@ -24,7 +24,7 @@ require "mmplayer/player"
24
24
 
25
25
  module MMPlayer
26
26
 
27
- VERSION = "0.0.6"
27
+ VERSION = "0.0.7"
28
28
 
29
29
  # Shortcut to Context constructor
30
30
  def self.new(*args, &block)
@@ -10,8 +10,11 @@ module MMPlayer
10
10
  @flags += " #{options[:flags]}" unless options[:flags].nil?
11
11
  @messenger = Messenger.new
12
12
  @callback = {}
13
- @is_playing = false
14
- @is_eof_handled = true
13
+ @playback_state = {
14
+ :eof => false,
15
+ :play => false,
16
+ :pause => false
17
+ }
15
18
  @player_threads = []
16
19
  end
17
20
 
@@ -37,15 +40,27 @@ module MMPlayer
37
40
  !@player.nil?
38
41
  end
39
42
 
43
+ # Is the player paused?
44
+ # @return [Boolean]
45
+ def paused?
46
+ @playback_state[:pause]
47
+ end
48
+ alias_method :pause?, :paused?
49
+
50
+ # Toggles pause
51
+ # @return [Boolean]
52
+ def pause
53
+ @playback_state[:pause] = !@playback_state[:pause]
54
+ @player.pause
55
+ @playback_state[:pause]
56
+ end
57
+
40
58
  # Handle events while the player is running
41
59
  # @return [Boolean]
42
60
  def playback_loop
43
61
  loop do
44
- if @is_playing && !@is_eof_handled && get_player_output.size < 1
45
- handle_eof
46
- else
47
- sleep(0.05)
48
- end
62
+ handle_eof if eof?
63
+ sleep(0.05)
49
64
  end
50
65
  true
51
66
  end
@@ -100,6 +115,12 @@ module MMPlayer
100
115
 
101
116
  private
102
117
 
118
+ # Has the end of a media file been reached?
119
+ # @return [Boolean]
120
+ def eof?
121
+ @playback_state[:play] && !@playback_state[:eof] && !@playback_state[:pause] && get_player_output.size < 1
122
+ end
123
+
103
124
  # Get player output from stdout
104
125
  def get_player_output
105
126
  @player.stdout.gets.inspect.strip.gsub(/(\\n|[\\"])/, '').strip
@@ -107,8 +128,8 @@ module MMPlayer
107
128
 
108
129
  # Handle the end of playback for a single media file
109
130
  def handle_eof
110
- @is_eof_handled = true
111
- @is_playing = false
131
+ @playback_state[:eof] = true
132
+ @playback_state[:play] = false
112
133
  STDOUT.flush
113
134
  @callback[:end_of_file].call unless @callback[:end_of_file].nil?
114
135
  true
@@ -117,8 +138,8 @@ module MMPlayer
117
138
  # Handle the beginning of playback for a single media file
118
139
  def handle_start
119
140
  loop until get_player_output.size > 1
120
- @is_playing = true
121
- @is_eof_handled = false
141
+ @playback_state[:play] = true
142
+ @playback_state[:eof] = false
122
143
  end
123
144
 
124
145
  # Get progress percentage from the MPlayer report
@@ -5,17 +5,13 @@ class MMPlayer::PlayerTest < Minitest::Test
5
5
  context "Player" do
6
6
 
7
7
  setup do
8
- # Stub out MPlayer completely
9
- class MPlayer
10
- def get(*args)
11
- "0.1\n"
12
- end
13
-
14
- def load_file(something)
15
- end
16
- end
17
8
  @player = MMPlayer::Player.new
18
- @mplayer = MPlayer.new
9
+ @mplayer = Object.new
10
+ @mplayer.stubs(:load_file).returns(true)
11
+ out = Object.new
12
+ out.stubs(:gets).returns("")
13
+ @mplayer.stubs(:stdout).returns(out)
14
+ @mplayer.stubs(:get).returns("0.1\n")
19
15
  @player.stubs(:ensure_player).returns(@mplayer)
20
16
  @player.instance_variable_set("@player", @mplayer)
21
17
  @player.instance_variable_set("@player_threads", [Thread.new {}])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mmplayer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ari Russo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-05-07 00:00:00.000000000 Z
11
+ date: 2015-05-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest