mmplayer 0.0.6 → 0.0.7
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 +4 -4
- data/lib/mmplayer.rb +1 -1
- data/lib/mmplayer/player.rb +32 -11
- data/test/player_test.rb +6 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3d59002ee9d5711a811c980108d0e29c41b19811
|
4
|
+
data.tar.gz: 66a9b65bfb2b421e4fdcba73a04eec30123610af
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6b900ed7f38488e1f8705a0f4facdf0cf0dc6d44b0fae68c4fb2d06cb5b55b262637890d0c737640b7ca345df1d882a01cbfe1f5b505b44a619db4a2e8461cd
|
7
|
+
data.tar.gz: 9d8b70983896579a071930a32dc9a4de903694383fb7d30cdb4efcf144125ec6dd2ef2d0bab7c78851e6310102f9f1e98333dd3d2bca22c1519b04bf66992014
|
data/lib/mmplayer.rb
CHANGED
data/lib/mmplayer/player.rb
CHANGED
@@ -10,8 +10,11 @@ module MMPlayer
|
|
10
10
|
@flags += " #{options[:flags]}" unless options[:flags].nil?
|
11
11
|
@messenger = Messenger.new
|
12
12
|
@callback = {}
|
13
|
-
@
|
14
|
-
|
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
|
45
|
-
|
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
|
-
@
|
111
|
-
@
|
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
|
-
@
|
121
|
-
@
|
141
|
+
@playback_state[:play] = true
|
142
|
+
@playback_state[:eof] = false
|
122
143
|
end
|
123
144
|
|
124
145
|
# Get progress percentage from the MPlayer report
|
data/test/player_test.rb
CHANGED
@@ -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 =
|
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.
|
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-
|
11
|
+
date: 2015-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: minitest
|