mireru 0.1.5 → 0.1.6
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/NEWS.md +9 -0
- data/README.md +9 -0
- data/lib/mireru/command/mireru.rb +3 -0
- data/lib/mireru/version.rb +1 -1
- data/lib/mireru/video.rb +47 -0
- data/lib/mireru/widget.rb +8 -1
- data/lib/mireru/window.rb +1 -1
- data/mireru.gemspec +2 -0
- data/test/test-video.rb +12 -0
- metadata +33 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfe9e101ef8c66b8d9a69ef0c629a6d2b77706ef
|
4
|
+
data.tar.gz: a4725b2c6cecd0989c01d8ed180e81be07832deb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: abf1106c655c22887bedc93c1a03f91cd3e0d8fe4062e782040378c99e89bc37eee1baea9082575b2bf17a68d1fba4d0ba880c26940f6303362307d4a2d78b69
|
7
|
+
data.tar.gz: 559d84ab5ebcecef3c7f27022247bbaec3948cb416850d3c2dc184550a97d68cf4165a5e6dbadac0c587734fef3f74daf87242e6af0208c47d2aee00425ef42b
|
data/NEWS.md
CHANGED
data/README.md
CHANGED
@@ -4,6 +4,11 @@ A file viewer with a focus on flexibility by Ruby/GTK3.
|
|
4
4
|
|
5
5
|
A friend of a keyboard.
|
6
6
|
|
7
|
+
## Requirements
|
8
|
+
|
9
|
+
* Ruby/GTK3, Ruby/GtkSourceView3, Ruby/ClutterGTK, Ruby/ClutterGStreamer in
|
10
|
+
[Ruby-GNOME2](http://ruby-gnome2.sourceforge.jp/)
|
11
|
+
|
7
12
|
## Installation
|
8
13
|
|
9
14
|
$ gem install mireru
|
@@ -59,6 +64,10 @@ o: original size<br />
|
|
59
64
|
|
60
65
|
f: change font (at random)<br />
|
61
66
|
|
67
|
+
#### Video
|
68
|
+
|
69
|
+
space: play/pause<br />
|
70
|
+
|
62
71
|
## Contributing
|
63
72
|
|
64
73
|
1. Fork it
|
data/lib/mireru/version.rb
CHANGED
data/lib/mireru/video.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
require "clutter-gtk"
|
2
|
+
require "clutter-gst"
|
3
|
+
require "mireru/widget"
|
4
|
+
|
5
|
+
module Mireru
|
6
|
+
class Video
|
7
|
+
class << self
|
8
|
+
def create(file)
|
9
|
+
clutter = ClutterGtk::Embed.new
|
10
|
+
stage = clutter.stage
|
11
|
+
stage.background_color = Clutter::Color.new(:black)
|
12
|
+
video_texture = ClutterGst::VideoTexture.new
|
13
|
+
stage.add_child(video_texture)
|
14
|
+
video_texture.signal_connect("eos") do |_video_texture|
|
15
|
+
_video_texture.progress = 0.0
|
16
|
+
_video_texture.playing = true
|
17
|
+
end
|
18
|
+
video_texture.filename = file
|
19
|
+
video_texture.playing = true
|
20
|
+
define_events(stage, video_texture)
|
21
|
+
clutter.signal_connect("destroy") do
|
22
|
+
video_texture.playing = false
|
23
|
+
end
|
24
|
+
clutter
|
25
|
+
end
|
26
|
+
|
27
|
+
def define_events(stage, video_texture)
|
28
|
+
stage.signal_connect("event") do |_stage, event|
|
29
|
+
handled = false
|
30
|
+
|
31
|
+
case event.type
|
32
|
+
when Clutter::EventType::KEY_PRESS
|
33
|
+
animation = nil
|
34
|
+
case event.key_symbol
|
35
|
+
when Clutter::Keys::KEY_space
|
36
|
+
state = video_texture.playing?
|
37
|
+
video_texture.playing = state ? false : true
|
38
|
+
end
|
39
|
+
handled = true
|
40
|
+
end
|
41
|
+
|
42
|
+
handled
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/mireru/widget.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require "gtk3"
|
2
2
|
require "gtksourceview3"
|
3
|
+
require "mireru/video"
|
3
4
|
|
4
5
|
module Mireru
|
5
6
|
class Error < StandardError
|
@@ -12,10 +13,12 @@ module Mireru
|
|
12
13
|
image = Gtk::Image.new
|
13
14
|
pixbuf = Gdk::Pixbuf.new(file)
|
14
15
|
if pixbuf.width > width || pixbuf.height > height
|
15
|
-
|
16
|
+
pixbuf = Gdk::Pixbuf.new(file, width, height)
|
16
17
|
end
|
17
18
|
image.pixbuf = pixbuf
|
18
19
|
widget = image
|
20
|
+
elsif video?(file)
|
21
|
+
widget = Mireru::Video.create(file)
|
19
22
|
else
|
20
23
|
begin
|
21
24
|
buffer = buffer_from_file(file)
|
@@ -39,6 +42,10 @@ module Mireru
|
|
39
42
|
/\.(png|jpe?g|gif|ico|ani|bmp|pnm|ras|tga|tiff|xbm|xpm)\z/i =~ file
|
40
43
|
end
|
41
44
|
|
45
|
+
def video?(file)
|
46
|
+
/\.(ogm|mp4|flv|mpe?g2?|ts|mov|avi|divx|mkv|wmv|asf|wmx)\z/i =~ file
|
47
|
+
end
|
48
|
+
|
42
49
|
private
|
43
50
|
def buffer_from_file(file)
|
44
51
|
text = File.open(file).read
|
data/lib/mireru/window.rb
CHANGED
@@ -106,7 +106,7 @@ module Mireru
|
|
106
106
|
def add_from_file(file)
|
107
107
|
@scroll.hadjustment.value = 0
|
108
108
|
@scroll.vadjustment.value = 0
|
109
|
-
@scroll.each {|child|
|
109
|
+
@scroll.each {|child| child.destroy }
|
110
110
|
if file.is_a?(Enumerable)
|
111
111
|
@widget = Mireru::Thumbnail.create(file, *self.size)
|
112
112
|
self.title = "Thumbnails: #{file.size} / #{file.size}"
|
data/mireru.gemspec
CHANGED
@@ -20,6 +20,8 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_runtime_dependency("gtk3")
|
22
22
|
spec.add_runtime_dependency("gtksourceview3")
|
23
|
+
spec.add_runtime_dependency("clutter-gtk")
|
24
|
+
spec.add_runtime_dependency("clutter-gstreamer", "= 2.0.2")
|
23
25
|
|
24
26
|
spec.add_development_dependency("test-unit")
|
25
27
|
spec.add_development_dependency("test-unit-notify")
|
data/test/test-video.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require "mireru/video"
|
2
|
+
require "clutter-gtk"
|
3
|
+
|
4
|
+
class VideoTest < Test::Unit::TestCase
|
5
|
+
def test_create
|
6
|
+
filename = "XXX.ogm"
|
7
|
+
widget = Mireru::Video.create(filename)
|
8
|
+
assert_not_nil(widget)
|
9
|
+
assert_equal(ClutterGtk::Embed, widget.class)
|
10
|
+
widget.destroy
|
11
|
+
end
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mireru
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masafumi Yokoyama
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gtk3
|
@@ -38,6 +38,34 @@ dependencies:
|
|
38
38
|
- - '>='
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: clutter-gtk
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: clutter-gstreamer
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - '='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 2.0.2
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - '='
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 2.0.2
|
41
69
|
- !ruby/object:Gem::Dependency
|
42
70
|
name: test-unit
|
43
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -132,6 +160,7 @@ files:
|
|
132
160
|
- lib/mireru/logger.rb
|
133
161
|
- lib/mireru/thumbnail.rb
|
134
162
|
- lib/mireru/version.rb
|
163
|
+
- lib/mireru/video.rb
|
135
164
|
- lib/mireru/widget.rb
|
136
165
|
- lib/mireru/window.rb
|
137
166
|
- mireru.gemspec
|
@@ -144,6 +173,7 @@ files:
|
|
144
173
|
- test/test-logger.rb
|
145
174
|
- test/test-mireru.rb
|
146
175
|
- test/test-thumbnail.rb
|
176
|
+
- test/test-video.rb
|
147
177
|
- test/test-widget.rb
|
148
178
|
- test/test-window.rb
|
149
179
|
homepage: https://github.com/myokoym/mireru
|
@@ -180,6 +210,7 @@ test_files:
|
|
180
210
|
- test/test-logger.rb
|
181
211
|
- test/test-mireru.rb
|
182
212
|
- test/test-thumbnail.rb
|
213
|
+
- test/test-video.rb
|
183
214
|
- test/test-widget.rb
|
184
215
|
- test/test-window.rb
|
185
216
|
has_rdoc:
|