sensible-cinema 0.7.4 → 0.7.5

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -100,14 +100,15 @@ Q. Can I watch movies this way on my TV, not just on my computer?
100
100
 
101
101
  A. Not yet. And maybe. Currently you'll either need to attach your computer to your TV
102
102
  (buy some long cables, or a new graphics card, etc.) or get some computer that you can move closer to the TV and do the same
103
- (ex: buy a used older laptop with s-video out, use that).
103
+ (ex: buy a used older laptop with s-video out, use that). If you're really aggressive you
104
+ could run an ethernet cable from your computer, as well [1].
104
105
  I'd be happy to do a linux port of sensible-cinema if anybody requests it for their dedicated TV computer.
105
106
  There has also been some work toward getting your computer to stream "live" to your wii/ps3/xbox.
106
107
  github message me if you're interested in trying it out!
107
108
 
108
109
  Q. What movies does this work with?
109
110
 
110
- A. Any that you program it for :) Assuming the player is compatible, which most probably are.
111
+ A. Any that you program it for :) (Assuming the player is compatible, which most probably are.)
111
112
 
112
113
  Q. What movies are freely available to watch online?
113
114
 
@@ -119,13 +120,15 @@ Q. Why does my mouse bounce up and down while sensible-cinema is going?
119
120
  A. This enables your player to keep its on-screen time tracker, which in turn allows sensible-cinema to track where
120
121
  you're at. Message me if this bugs you too much and we'll see what we can do for it.
121
122
 
122
- Q. Why does it seem really laggy at screen detection at the beginning?
123
+ Q. Why does it seem really laggy at time detection at the beginning?
123
124
 
124
125
  A. It takes it awhile to warm up its digit detection. Ping me if you would like to see this improved speed-wise.
125
126
 
127
+ [1] http://ps3mediaserver.org/forum/viewtopic.php?f=6&t=5731#p34279
128
+
126
129
  == Thanks ==
127
130
 
128
- Thanks to Jarmo for the win32-screenshot gem, and the mini_magick gem authors, jruby guys, etc.
131
+ Thanks to Jarmo for the win32-screenshot gem, the mini_magick gem authors, jruby guys, etc.
129
132
  Made programming this actually somewhat a pleasure.
130
133
 
131
134
  == License ==
@@ -135,7 +138,7 @@ See the LICENSE file for licensing, usage terms (gplv3).
135
138
  == Related ==
136
139
 
137
140
  http://imdb.com tends to have reasonably good lists of what occurs in movies (find a movie, click on "parent's guide" on the left).
138
- Sometimes it even lists the time signatures for events occur (ex: "Labyrinth" http://www.imdb.com/title/tt0047673/parentalguide)
141
+ Sometimes it even lists the time signatures for events (ex: "Labyrinth" http://www.imdb.com/title/tt0047673/parentalguide)
139
142
  which you could use to translate into a sensible-cinema compatible list.
140
143
 
141
144
  == Feedback ==
data/Rakefile CHANGED
@@ -12,7 +12,7 @@ Jeweler::Tasks.new do |s|
12
12
  s.add_dependency 'mini_magick' # ocr
13
13
  s.add_development_dependency 'hitimes' # now jruby compat. yea!
14
14
  s.add_dependency 'sane', '>= 0.22.0'
15
- s.add_dependency 'rdp-win32screenshot', '>= 0.0.6.2'
15
+ s.add_dependency 'win32screenshot', '>= 0.0.6'
16
16
  s.extensions = ["ext/mkrf_conf.rb"]
17
17
  end
18
18
 
data/TODO CHANGED
@@ -4,19 +4,23 @@
4
4
 
5
5
  release ruby-y-y why not, it's interesting
6
6
  "Linux compat anyone?"
7
- utube nuki
7
+ utube nuki (xp?)
8
8
  generations first profanidade...
9
9
 
10
10
  == random backlog ... based on user request..remember: just local files for my own needs...==
11
11
 
12
12
  blank overlay "and you are one awesome klingon"
13
13
 
14
+ bump win32-screenshot version
15
+
14
16
  screencast of something helpful.
15
17
 
16
18
  optimize imdb: http://www.imdb.com/board/bd0000042/thread/58361958?d=58361958, english friendlier url's
17
19
 
18
20
  bundle fewer imagemagick binaries
19
21
 
22
+ TSR that monitors "oh you're opening VLC? you're playing the E drive? That's bob's big plan? You're maximized? Full screened? watching x on hulu?"
23
+
20
24
  just plow forward, to "grab" available ideas...
21
25
 
22
26
  netflix
@@ -59,10 +63,12 @@ new github username
59
63
 
60
64
  replay parts
61
65
 
62
- overlay/replace with some url of audio or video
66
+ overlay/replace current playback with some url of audio or video
67
+ user editable overlays (like a wiki...)
63
68
 
64
69
  control volume programmatically (using mouse) on the player itself.
65
70
  control mute programmatically (using mouse) on the player itself.
71
+ control location programmatically (using mouse) on the player itself.
66
72
 
67
73
  overlay alpha transparent pic
68
74
 
@@ -75,6 +81,8 @@ user customizable levels...
75
81
 
76
82
  user-assignable "confidence" (how much time to 'wrap' surround the mutes, etc. to accomodate for slow computers/laggy internet/different players/poor input)
77
83
 
84
+
85
+
78
86
  auto-assignment of EDL's to media:
79
87
  DVD's (right click...)
80
88
  web browser plugin?
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.4
1
+ 0.7.5
data/bin/sensible-cinema CHANGED
@@ -1,6 +1,8 @@
1
1
  require 'rubygems'
2
2
  require 'sane'
3
3
 
4
+ Thread.abort_on_exception=true #gah
5
+
4
6
  for file in ['overlayer', 'keyboard_input', 'screen_tracker', 'mouse', 'file_chooser']
5
7
  require_relative '../lib/' + file
6
8
  end
data/lib/overlayer.rb CHANGED
@@ -50,10 +50,12 @@ class OverLayer
50
50
  reload_yaml!
51
51
  @file_mtime = current_mtime
52
52
  else
53
- p 'same mtime:', @file_mtime if $DEBUG && $VERBOSE
53
+ #p 'same mtime:', @file_mtime if $DEBUG && $VERBOSE
54
54
  end
55
55
  end
56
56
 
57
+ attr_accessor :all_sequences
58
+
57
59
  def reload_yaml!
58
60
  @all_sequences = OverLayer.translate_yaml(File.read(@filename))
59
61
  # LTODO... @all_sequences = @all_sequences.map{|k, v| v.sort!} etc. and validate...
@@ -319,7 +321,7 @@ class OverLayer
319
321
  time_till_next_mute_starts = next_point - cur_time
320
322
  end
321
323
 
322
- pps 'sleeping until next action (%s) begins in %fs (%f) %f' % [next_point, time_till_next_mute_starts, Time.now_f, cur_time] if $VERBOSE
324
+ # pps 'sleeping until next action (%s) begins in %fs (%f) %f' % [next_point, time_till_next_mute_starts, Time.now_f, cur_time] if $VERBOSE
323
325
 
324
326
  @cv.wait(@mutex, time_till_next_mute_starts) if time_till_next_mute_starts > 0
325
327
  set_states!
@@ -13,29 +13,17 @@ class ScreenTracker
13
13
  return new(settings["name"], settings["x"], settings["y"], settings["width"], settings["height"], digits, callback)
14
14
  end
15
15
 
16
- # digits like {:hours => [100,5], :minute_tens, :minute_ones, :second_tens, :second_ones}
17
- # digits share the height...
16
+ attr_accessor :hwnd
17
+
18
+ # digits are like {:hours => [100,5], :minute_tens, :minute_ones, :second_tens, :second_ones}
19
+ # digits share the height start point, have their own x and width...
18
20
  def initialize name_or_regex,x,y,width,height,digits=nil,callback=nil
19
21
  # cache to save us 0.00445136 per time LOL
20
- if name_or_regex.to_s.downcase == 'desktop'
21
- # full screen option
22
- @hwnd = hwnd = Win32::Screenshot::BitmapMaker.desktop_window
23
- else
24
- @hwnd = Win32::Screenshot::BitmapMaker.hwnd(name_or_regex)
25
- end
26
- unless @hwnd
27
- print 'perhaps not running yet? [%s] START IT FAST' % name_or_regex
28
- until @hwnd
29
- sleep 4
30
- print ' trying again .'
31
- STDOUT.flush
32
- @hwnd = Win32::Screenshot::BitmapMaker.hwnd(name_or_regex)
33
- end
34
- puts 'found window'
35
- end
22
+ @name_or_regex = name_or_regex
23
+ get_hwnd
36
24
  pps 'height', height, 'width', width if $VERBOSE
37
25
  raise 'poor dimentia' if width <= 0 || height <= 0
38
- always_zero, always_zero, max_x, max_y = Win32::Screenshot::BitmapMaker.dimensions_for(@hwnd)
26
+ max_x, max_y = Win32::Screenshot::Util.dimensions_for(@hwnd)
39
27
  if(x < 0 || y < 0)
40
28
  if x < 0
41
29
  x = max_x + x
@@ -53,6 +41,26 @@ class ScreenTracker
53
41
  pps 'using x',@x, 'from x', x, 'y', @y, 'from y', y,'x2',@x2,'y2',@y2,'digits', @digits if $VERBOSE
54
42
  end
55
43
 
44
+ def get_hwnd
45
+ if @name_or_regex.to_s.downcase == 'desktop'
46
+ # full screen option
47
+ @hwnd = hwnd = Win32::Screenshot::BitmapMaker.desktop_window
48
+ else
49
+ @hwnd = Win32::Screenshot::BitmapMaker.hwnd(@name_or_regex)
50
+ end
51
+ unless @hwnd
52
+ print 'perhaps not running yet? [%s] START IT FAST' % @name_or_regex
53
+ until @hwnd
54
+ sleep 4
55
+ print ' trying again .'
56
+ STDOUT.flush
57
+ @hwnd = Win32::Screenshot::BitmapMaker.hwnd(@name_or_regex)
58
+ end
59
+ puts 'found window'
60
+ end
61
+
62
+ end
63
+
56
64
  def get_bmp
57
65
  # Note: we no longer bring the window to the front tho...which it needs to be in both XP and Vista to work...sigh.
58
66
  Win32::Screenshot::BitmapMaker.capture_area(@hwnd,@x,@y,@x2,@y2) {|h,w,bmp| return bmp}
@@ -104,18 +112,24 @@ class ScreenTracker
104
112
  end
105
113
 
106
114
  def wait_till_next_change
115
+ # dies in jruby currently...sigh...get_hwnd # reget it, just in case...
107
116
  original = get_bmp
117
+ time_since_last = Time.now
108
118
  loop {
109
119
  current = get_bmp
110
120
  if current != original
111
121
  if @digits
112
122
  return attempt_to_get_time_from_screen
113
123
  else
114
- puts 'screen time change only detected...' if $VERBOSE
124
+ puts 'screen time change only detected...'
115
125
  end
116
126
  return
117
127
  end
118
128
  sleep 0.02
129
+ if(Time.now - time_since_last > 5)
130
+ p 'warning--unable to track for some reason--may need to restart sensible-cinema'
131
+ time_since_last = Time.now
132
+ end
119
133
  }
120
134
  end
121
135
 
@@ -132,12 +146,13 @@ class ScreenTracker
132
146
  @a ||= 1
133
147
  @a += 1
134
148
  p 'unable to identify digit!' + type.to_s + @a.to_s
135
- File.binwrite("bad_digit#{@a}#{type}.bmp", digits[type])
149
+ File.binwrite("bad_digit#{@a}#{type}.bmp", digits[type]) unless type == :hours
136
150
  end
137
151
  if type == :hours
138
152
  digit = 0 # this one can fail in VLC
139
153
  else
140
154
  # early return
155
+ p 'identity failure' if $VERBOSE
141
156
  return
142
157
  end
143
158
  end
@@ -96,7 +96,7 @@ describe OverLayer do
96
96
  o.continue_until_past_all false
97
97
  end
98
98
 
99
- it 'should be able to go past the end'
99
+ it 'should be able to go past the end' # ??
100
100
 
101
101
  it 'should allow you to change the current time' do
102
102
  @o.start_thread
@@ -189,12 +189,24 @@ describe OverLayer do
189
189
  end
190
190
 
191
191
  it "should not accept the input when you pass it poor yaml" do
192
- yaml = <<-YAML
192
+ write_yaml <<-YAML
193
193
  :mutes:
194
194
  a : 08:56.0 # first one there is invalid
195
195
  YAML
196
- out = OverLayer.translate_yaml yaml
197
- out[:mutes].should be_blank
196
+ out = OverLayer.new 'temp.yml'
197
+ out.all_sequences[:mutes].should be_blank
198
+ write_yaml <<-YAML
199
+ :mutes:
200
+ 01 : 02
201
+ YAML
202
+ out.reload_yaml!
203
+ out.all_sequences[:mutes].should_not be_blank
204
+ write_yaml <<-YAML
205
+ :mutes:
206
+ 01 : # failure
207
+ YAML
208
+ # should have kept the old
209
+ out.all_sequences[:mutes].should_not be_blank
198
210
  end
199
211
 
200
212
  it "should not accept zero start input" do
@@ -253,7 +265,8 @@ describe OverLayer do
253
265
  out = OverLayer.translate_yaml ""
254
266
  out[:mutes].should be_blank
255
267
  end
256
-
268
+
269
+
257
270
  it "should translate strings as well as symbols" do
258
271
  yaml = <<-YAML
259
272
  mutes:
@@ -261,13 +274,13 @@ describe OverLayer do
261
274
  YAML
262
275
  out = OverLayer.translate_yaml yaml
263
276
  out[:mutes].should == [[1, 3]]
277
+
264
278
  end
265
279
 
266
280
  it "should disallow zero or less length intervals"
267
281
  it "should disallow non-sorted intervals"
268
282
  it 'should reject overlapping settings...I guess'
269
- it 'should not die if yaml errors are introduced at runtime'
270
-
283
+
271
284
  it "should allow for 1:01:00.0 (double colon) style yaml input" do
272
285
  write_yaml <<-YAML
273
286
  :mutes:
@@ -6,17 +6,25 @@ require 'pathname'
6
6
  describe ScreenTracker do
7
7
 
8
8
  if RUBY_PLATFORM =~ /java/
9
- it "is pending a java bug..."
9
+ it "is pending several java bugs..." # ffi, AND popen#pid...
10
10
  else
11
- before(:all) do
12
- begin
13
- Win32::Screenshot.window(/silence.wav/, 0) {}
14
- rescue
15
- # this way we'll only have one up...
16
- @pid1 = IO.popen('open.bat').pid # jruby can't open it directly yet
17
- sleep 2
11
+
12
+ def start_vlc
13
+ unless $pid1
14
+ begin
15
+ Win32::Screenshot.window(/silence.wav/, 0) {}
16
+ raise Exception.new('must kill old vlcs first')
17
+ rescue
18
+ # this way we'll only have one up...
19
+ $pid1 = IO.popen('"/program files/VideoLan/VLC/vlc.exe" silence.wav').pid # jruby can't open it directly yet, too...
20
+ sleep 2
21
+ end
18
22
  end
19
23
  end
24
+
25
+ before(:all) do
26
+ start_vlc
27
+ end
20
28
 
21
29
  before do
22
30
  @a = ScreenTracker.new(/silence.*VLC/,10,10,20,20)
@@ -78,7 +86,7 @@ describe ScreenTracker do
78
86
  a.get_bmp
79
87
  x,y,x2,y2=a.get_relative_coords
80
88
  hwnd = Win32::Screenshot::BitmapMaker.hwnd("VLC")
81
- always_zero, always_zero, max_x, max_y = Win32::Screenshot::BitmapMaker.dimensions_for(hwnd)
89
+ max_x, max_y = Win32::Screenshot::Util.dimensions_for(hwnd)
82
90
  x.should == max_x-10
83
91
  y.should == max_y-10
84
92
  x2.should == x+5
@@ -167,12 +175,12 @@ describe ScreenTracker do
167
175
  it "should use OCR against the changes appropriately" do
168
176
  output = @a.wait_till_next_change # grab a real change
169
177
  output[0].should be_a(String)
170
- output[0].should include("00:0") # let's hope it runs quickly...
178
+ output[0].should include("00:") # like 00:09 or what not...
171
179
  output[0].should match(/[1-9]/)
172
180
  output[1].should be_a Float
173
181
  end
174
182
 
175
- it "should be ok with a failed hours read" do
183
+ it "should be ok with a failed hours image" do
176
184
  @a.stub!(:get_digits_as_bitmaps) do
177
185
  four = File.binread('images/4.bmp')
178
186
  {:minute_tens=>four,:second_tens => four, :second_ones => four, :minute_ones => four,
@@ -181,14 +189,13 @@ describe ScreenTracker do
181
189
  @a.attempt_to_get_time_from_screen[0].should == "0:44:44"
182
190
  end
183
191
 
184
- context "with an OCR that can change from hour to minutes during ads" do
185
- it "should ocr slash...[in other]"
186
- it "with VLC should be able to recognize when it goes past an hour somehow...probably by presence of hourly colon" # might already do this
192
+ context "with an OCR that can change from hour to minutes during ads" do
193
+ it "should detect"
187
194
  end
188
195
 
189
196
  it "should be able to use invert on images" do
190
197
  @a = ScreenTracker.new("silence.wav", -111, -16, 86, 13,
191
- {:should_invert => true, :hours => nil, :minute_tens => [-90,7], :minute_ones => [-82, 7], :second_tens => [-72, 7], :second_ones => [-66, 7]} )
198
+ {:should_invert => true, :hours => nil, :minute_tens => [-90,7], :minute_ones => [-82, 7], :second_tens => [-72, 7], :second_ones => [-66, 7]} )
192
199
  got_it = nil
193
200
  OCR.stub!(:identify_digit) {|*args|
194
201
  got_it = args
@@ -196,22 +203,35 @@ describe ScreenTracker do
196
203
  @a.identify_digit('some binary bitmap data')
197
204
  got_it[1][:should_invert].should be_true
198
205
  end
206
+
207
+ it "should be able to scan for/identify new windows, since VLC changes signatures" do
208
+ fail "not possible yet, so hangs"
209
+ output = @a.wait_till_next_change
210
+ output[0].should_not be_nil
211
+ old_handle = @a.hwnd
212
+ kill_vlc
213
+ start_vlc
214
+ output = @a.wait_till_next_change
215
+ output[0].should_not be_nil
216
+ old_handle.should_not == @a.hwnd
217
+ end
199
218
 
200
219
  end
201
220
 
202
- after(:all) do
203
- begin
204
- # bring redcar to the foreground
205
- # this seg faults on windows 7 for me for some reason when run inside the editor itself...swt bug?
206
- unless Socket.gethostname == "PACKRD-1GK7V"
207
- Win32::Screenshot.window(/universal/, 0) rescue nil
208
- end
209
- Process.kill 9, @pid1 rescue nil # need this re-started each time or the screen won't change for the screen changing test
210
- FileUtils.rm_rf Dir['*.bmp'] unless $DEBUG
211
- rescue => e
212
- puts 'got after bug:', e # until this bug is fixed... http://github.com/rspec/rspec-core/issues#issue/21
213
- throw e
221
+ def kill_vlc
222
+ assert $pid1
223
+ # bring redcar to the foreground
224
+ # this seg faults on windows 7 for me for some reason when run inside the editor itself...swt bug?
225
+ unless Socket.gethostname == "PACKRD-1GK7V"
226
+ Win32::Screenshot.window(/universal/, 0) rescue nil
214
227
  end
228
+ Process.kill 9, $pid1 # need this process re-started each time or the screen won't change for the screen changing test
229
+ FileUtils.rm_rf Dir['*.bmp']
230
+ $pid1 = nil
231
+ end
232
+
233
+ after(:all) do
234
+ kill_vlc
215
235
  end
216
236
  end
217
237
  end
@@ -0,0 +1,16 @@
1
+ mutes:
2
+ 3:08.5 : 3:13 # hurts like heck
3
+ #4:00 : 4:02 # dang
4
+ #0:33:00 : 0:33:01 # damg
5
+ 0:39:45 : 0:39:46 # crap 37:21 check
6
+ 54:36 : 54:37 # oh my gosh
7
+ 1:04:33 : 1:04:36 # durn durn check #1:04:00 : 1:04:10 # dang
8
+ #1:33:00 : 1:33:02 # dang
9
+ 1:32:46 : 1:32:47 # dang
10
+ blank_outs:
11
+ 11:50:00 : 12:00 # creature (Hoggle) standing and urinating (seen from behind) check
12
+ 26:14 : 26:28 # she falls through scary hands check
13
+ title: Labyrinth
14
+ source: DVD/VLC
15
+ missing: lots of fart noises in the swamp, some odd body parts from the red people, goblin violence, some swearing in credits song
16
+ idea: quieter at parts...
metadata CHANGED
@@ -1,250 +1,269 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sensible-cinema
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 9
4
5
  prerelease: false
5
6
  segments:
6
- - 0
7
- - 7
8
- - 4
9
- version: 0.7.4
7
+ - 0
8
+ - 7
9
+ - 5
10
+ version: 0.7.5
10
11
  platform: ruby
11
12
  authors:
12
- - Roger Pack
13
+ - Roger Pack
13
14
  autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-08-09 00:00:00 -06:00
18
+ date: 2010-08-11 00:00:00 -06:00
18
19
  default_executable: sensible-cinema
19
20
  dependencies:
20
- - !ruby/object:Gem::Dependency
21
- name: rspec
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- segments:
28
- - 0
29
- version: "0"
30
- type: :development
31
- version_requirements: *id001
32
- - !ruby/object:Gem::Dependency
33
- name: jeweler
34
- prerelease: false
35
- requirement: &id002 !ruby/object:Gem::Requirement
36
- requirements:
37
- - - ">="
38
- - !ruby/object:Gem::Version
39
- segments:
40
- - 0
41
- version: "0"
42
- type: :development
43
- version_requirements: *id002
44
- - !ruby/object:Gem::Dependency
45
- name: rdp-rmagick
46
- prerelease: false
47
- requirement: &id003 !ruby/object:Gem::Requirement
48
- requirements:
49
- - - ">="
50
- - !ruby/object:Gem::Version
51
- segments:
52
- - 0
53
- version: "0"
54
- type: :development
55
- version_requirements: *id003
56
- - !ruby/object:Gem::Dependency
57
- name: mini_magick
58
- prerelease: false
59
- requirement: &id004 !ruby/object:Gem::Requirement
60
- requirements:
61
- - - ">="
62
- - !ruby/object:Gem::Version
63
- segments:
64
- - 0
65
- version: "0"
66
- type: :runtime
67
- version_requirements: *id004
68
- - !ruby/object:Gem::Dependency
69
- name: hitimes
70
- prerelease: false
71
- requirement: &id005 !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- segments:
76
- - 0
77
- version: "0"
78
- type: :development
79
- version_requirements: *id005
80
- - !ruby/object:Gem::Dependency
81
- name: sane
82
- prerelease: false
83
- requirement: &id006 !ruby/object:Gem::Requirement
84
- requirements:
85
- - - ">="
86
- - !ruby/object:Gem::Version
87
- segments:
88
- - 0
89
- - 22
90
- - 0
91
- version: 0.22.0
92
- type: :runtime
93
- version_requirements: *id006
94
- - !ruby/object:Gem::Dependency
95
- name: rdp-win32screenshot
96
- prerelease: false
97
- requirement: &id007 !ruby/object:Gem::Requirement
98
- requirements:
99
- - - ">="
100
- - !ruby/object:Gem::Version
101
- segments:
102
- - 0
103
- - 0
104
- - 6
105
- - 2
106
- version: 0.0.6.2
107
- type: :runtime
108
- version_requirements: *id007
21
+ - !ruby/object:Gem::Dependency
22
+ name: rspec
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 0
32
+ version: "0"
33
+ type: :development
34
+ version_requirements: *id001
35
+ - !ruby/object:Gem::Dependency
36
+ name: jeweler
37
+ prerelease: false
38
+ requirement: &id002 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ hash: 3
44
+ segments:
45
+ - 0
46
+ version: "0"
47
+ type: :development
48
+ version_requirements: *id002
49
+ - !ruby/object:Gem::Dependency
50
+ name: rdp-rmagick
51
+ prerelease: false
52
+ requirement: &id003 !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ hash: 3
58
+ segments:
59
+ - 0
60
+ version: "0"
61
+ type: :development
62
+ version_requirements: *id003
63
+ - !ruby/object:Gem::Dependency
64
+ name: mini_magick
65
+ prerelease: false
66
+ requirement: &id004 !ruby/object:Gem::Requirement
67
+ none: false
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ hash: 3
72
+ segments:
73
+ - 0
74
+ version: "0"
75
+ type: :runtime
76
+ version_requirements: *id004
77
+ - !ruby/object:Gem::Dependency
78
+ name: hitimes
79
+ prerelease: false
80
+ requirement: &id005 !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 3
86
+ segments:
87
+ - 0
88
+ version: "0"
89
+ type: :development
90
+ version_requirements: *id005
91
+ - !ruby/object:Gem::Dependency
92
+ name: sane
93
+ prerelease: false
94
+ requirement: &id006 !ruby/object:Gem::Requirement
95
+ none: false
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ hash: 71
100
+ segments:
101
+ - 0
102
+ - 22
103
+ - 0
104
+ version: 0.22.0
105
+ type: :runtime
106
+ version_requirements: *id006
107
+ - !ruby/object:Gem::Dependency
108
+ name: win32screenshot
109
+ prerelease: false
110
+ requirement: &id007 !ruby/object:Gem::Requirement
111
+ none: false
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ hash: 19
116
+ segments:
117
+ - 0
118
+ - 0
119
+ - 6
120
+ version: 0.0.6
121
+ type: :runtime
122
+ version_requirements: *id007
109
123
  description:
110
124
  email: rogerdpack@gmail.com
111
125
  executables:
112
- - sensible-cinema
126
+ - sensible-cinema
113
127
  extensions:
114
- - ext/mkrf_conf.rb
128
+ - ext/mkrf_conf.rb
115
129
  extra_rdoc_files:
116
- - LICENSE
117
- - README
118
- - TODO
130
+ - LICENSE
131
+ - README
132
+ - TODO
119
133
  files:
120
- - LICENSE
121
- - README
122
- - Rakefile
123
- - TODO
124
- - VERSION
125
- - bin/sensible-cinema
126
- - ext/mkrf_conf.rb
127
- - gplv3.txt
128
- - lib/blanker.rb
129
- - lib/file_chooser.rb
130
- - lib/keyboard_input.rb
131
- - lib/mouse.rb
132
- - lib/muter.rb
133
- - lib/ocr.rb
134
- - lib/overlayer.rb
135
- - lib/screen_tracker.rb
136
- - spec/blanker.spec.rb
137
- - spec/common.rb
138
- - spec/convert_image.rb
139
- - spec/images/4.bmp
140
- - spec/images/black.bmp
141
- - spec/images/colon.bmp
142
- - spec/images/hulu_0.bmp
143
- - spec/images/hulu_2.bmp
144
- - spec/images/hulu_2_3.bmp
145
- - spec/images/hulu_2_4.bmp
146
- - spec/images/hulu_3.bmp
147
- - spec/images/hulu_3_4.bmp
148
- - spec/images/hulu_4.bmp
149
- - spec/images/hulu_4_4.bmp
150
- - spec/images/hulu_5.bmp
151
- - spec/images/hulu_7.bmp
152
- - spec/images/hulu_8.bmp
153
- - spec/images/hulu_slash.bmp
154
- - spec/images/vlc_0.bmp
155
- - spec/images/vlc_2_6.bmp
156
- - spec/images/vlc_4.bmp
157
- - spec/images/vlc_5.bmp
158
- - spec/images/vlc_6.bmp
159
- - spec/images/vlc_9.bmp
160
- - spec/images/vlc_colon.bmp
161
- - spec/keyboard_input.spec.rb
162
- - spec/mouse.spec.rb
163
- - spec/mouse_forever.rb
164
- - spec/muter.spec.rb
165
- - spec/ocr.spec.orb
166
- - spec/open.bat
167
- - spec/overlayer.spec.rb
168
- - spec/screen_tracker.spec.rb
169
- - spec/silence.wav
170
- - spec/test_yaml.yml
171
- - vendor/gocr048.exe
172
- - vendor/imagemagick/CORE_RL_Magick++_.dll
173
- - vendor/imagemagick/CORE_RL_bzlib_.dll
174
- - vendor/imagemagick/CORE_RL_jbig_.dll
175
- - vendor/imagemagick/CORE_RL_jp2_.dll
176
- - vendor/imagemagick/CORE_RL_jpeg_.dll
177
- - vendor/imagemagick/CORE_RL_lcms_.dll
178
- - vendor/imagemagick/CORE_RL_libxml_.dll
179
- - vendor/imagemagick/CORE_RL_magick_.dll
180
- - vendor/imagemagick/CORE_RL_png_.dll
181
- - vendor/imagemagick/CORE_RL_tiff_.dll
182
- - vendor/imagemagick/CORE_RL_ttf_.dll
183
- - vendor/imagemagick/CORE_RL_wand_.dll
184
- - vendor/imagemagick/CORE_RL_xlib_.dll
185
- - vendor/imagemagick/CORE_RL_zlib_.dll
186
- - vendor/imagemagick/X11.dll
187
- - vendor/imagemagick/Xext.dll
188
- - vendor/imagemagick/atl90.dll
189
- - vendor/imagemagick/convert.exe
190
- - vendor/imagemagick/mfc90.dll
191
- - vendor/imagemagick/msvcp90.dll
192
- - vendor/imagemagick/msvcr90.dll
193
- - vendor/imagemagick/vcomp90.dll
194
- - zamples/players/how_to_create_a_new_player_description.txt
195
- - zamples/players/hulu_full_screen_total_length_over_an_hour.yml
196
- - zamples/players/sample_snapshots/hulu full screen non hour.jpg
197
- - zamples/players/sample_snapshots/hulu full screen over hour.jpg
198
- - zamples/players/sample_snapshots/silence.bmp
199
- - zamples/players/sample_snapshots/utube.JPG
200
- - zamples/players/sample_snapshots/vlc grab over one hour file over one hour play.bmp
201
- - zamples/players/sample_snapshots/vlc2.bmp
202
- - zamples/players/sample_snapshots/vlc_full_screen_slider under one hour.bmp
203
- - zamples/players/sample_snapshots/youtube full screen big screen.jpg
204
- - zamples/players/vlc_full_screened_total_length_over_an_hour.yml
205
- - zamples/players/vlc_non_full_screened_and_total_length_over_an_hour.yml
206
- - zamples/players/vlc_non_full_screened_and_total_length_under_an_hour.yml
207
- - zamples/scene_lists/disney_cars.yml
208
- - zamples/scene_lists/example_scene_list.yml
209
- - zamples/scene_lists/happy_feet_dvd.yml
210
- - zamples/scene_lists/star_trek_generations_hulu.yml
134
+ - LICENSE
135
+ - README
136
+ - Rakefile
137
+ - TODO
138
+ - VERSION
139
+ - bin/sensible-cinema
140
+ - ext/mkrf_conf.rb
141
+ - gplv3.txt
142
+ - lib/blanker.rb
143
+ - lib/file_chooser.rb
144
+ - lib/keyboard_input.rb
145
+ - lib/mouse.rb
146
+ - lib/muter.rb
147
+ - lib/ocr.rb
148
+ - lib/overlayer.rb
149
+ - lib/screen_tracker.rb
150
+ - spec/blanker.spec.rb
151
+ - spec/common.rb
152
+ - spec/convert_image.rb
153
+ - spec/images/4.bmp
154
+ - spec/images/black.bmp
155
+ - spec/images/colon.bmp
156
+ - spec/images/hulu_0.bmp
157
+ - spec/images/hulu_2.bmp
158
+ - spec/images/hulu_2_3.bmp
159
+ - spec/images/hulu_2_4.bmp
160
+ - spec/images/hulu_3.bmp
161
+ - spec/images/hulu_3_4.bmp
162
+ - spec/images/hulu_4.bmp
163
+ - spec/images/hulu_4_4.bmp
164
+ - spec/images/hulu_5.bmp
165
+ - spec/images/hulu_7.bmp
166
+ - spec/images/hulu_8.bmp
167
+ - spec/images/hulu_slash.bmp
168
+ - spec/images/vlc_0.bmp
169
+ - spec/images/vlc_2_6.bmp
170
+ - spec/images/vlc_4.bmp
171
+ - spec/images/vlc_5.bmp
172
+ - spec/images/vlc_6.bmp
173
+ - spec/images/vlc_9.bmp
174
+ - spec/images/vlc_colon.bmp
175
+ - spec/keyboard_input.spec.rb
176
+ - spec/mouse.spec.rb
177
+ - spec/mouse_forever.rb
178
+ - spec/muter.spec.rb
179
+ - spec/ocr.spec.orb
180
+ - spec/open.bat
181
+ - spec/overlayer.spec.rb
182
+ - spec/screen_tracker.spec.rb
183
+ - spec/silence.wav
184
+ - spec/test_yaml.yml
185
+ - vendor/gocr048.exe
186
+ - vendor/imagemagick/CORE_RL_Magick++_.dll
187
+ - vendor/imagemagick/CORE_RL_bzlib_.dll
188
+ - vendor/imagemagick/CORE_RL_jbig_.dll
189
+ - vendor/imagemagick/CORE_RL_jp2_.dll
190
+ - vendor/imagemagick/CORE_RL_jpeg_.dll
191
+ - vendor/imagemagick/CORE_RL_lcms_.dll
192
+ - vendor/imagemagick/CORE_RL_libxml_.dll
193
+ - vendor/imagemagick/CORE_RL_magick_.dll
194
+ - vendor/imagemagick/CORE_RL_png_.dll
195
+ - vendor/imagemagick/CORE_RL_tiff_.dll
196
+ - vendor/imagemagick/CORE_RL_ttf_.dll
197
+ - vendor/imagemagick/CORE_RL_wand_.dll
198
+ - vendor/imagemagick/CORE_RL_xlib_.dll
199
+ - vendor/imagemagick/CORE_RL_zlib_.dll
200
+ - vendor/imagemagick/X11.dll
201
+ - vendor/imagemagick/Xext.dll
202
+ - vendor/imagemagick/atl90.dll
203
+ - vendor/imagemagick/convert.exe
204
+ - vendor/imagemagick/mfc90.dll
205
+ - vendor/imagemagick/msvcp90.dll
206
+ - vendor/imagemagick/msvcr90.dll
207
+ - vendor/imagemagick/vcomp90.dll
208
+ - zamples/players/how_to_create_a_new_player_description.txt
209
+ - zamples/players/hulu_full_screen_total_length_over_an_hour.yml
210
+ - zamples/players/sample_snapshots/hulu full screen non hour.jpg
211
+ - zamples/players/sample_snapshots/hulu full screen over hour.jpg
212
+ - zamples/players/sample_snapshots/silence.bmp
213
+ - zamples/players/sample_snapshots/utube.JPG
214
+ - zamples/players/sample_snapshots/vlc grab over one hour file over one hour play.bmp
215
+ - zamples/players/sample_snapshots/vlc2.bmp
216
+ - zamples/players/sample_snapshots/vlc_full_screen_slider under one hour.bmp
217
+ - zamples/players/sample_snapshots/youtube full screen big screen.jpg
218
+ - zamples/players/vlc_full_screened_total_length_over_an_hour.yml
219
+ - zamples/players/vlc_non_full_screened_and_total_length_over_an_hour.yml
220
+ - zamples/players/vlc_non_full_screened_and_total_length_under_an_hour.yml
221
+ - zamples/scene_lists/disney_cars.yml
222
+ - zamples/scene_lists/example_scene_list.yml
223
+ - zamples/scene_lists/happy_feet_dvd.yml
224
+ - zamples/scene_lists/labyrinth.yml
225
+ - zamples/scene_lists/star_trek_generations_hulu.yml
211
226
  has_rdoc: true
212
227
  homepage: http://github.com/rdp
213
228
  licenses: []
214
229
 
215
230
  post_install_message:
216
231
  rdoc_options:
217
- - --charset=UTF-8
232
+ - --charset=UTF-8
218
233
  require_paths:
219
- - lib
234
+ - lib
220
235
  required_ruby_version: !ruby/object:Gem::Requirement
236
+ none: false
221
237
  requirements:
222
- - - ">="
223
- - !ruby/object:Gem::Version
224
- segments:
225
- - 0
226
- version: "0"
238
+ - - ">="
239
+ - !ruby/object:Gem::Version
240
+ hash: 3
241
+ segments:
242
+ - 0
243
+ version: "0"
227
244
  required_rubygems_version: !ruby/object:Gem::Requirement
245
+ none: false
228
246
  requirements:
229
- - - ">="
230
- - !ruby/object:Gem::Version
231
- segments:
232
- - 0
233
- version: "0"
247
+ - - ">="
248
+ - !ruby/object:Gem::Version
249
+ hash: 3
250
+ segments:
251
+ - 0
252
+ version: "0"
234
253
  requirements: []
235
254
 
236
255
  rubyforge_project:
237
- rubygems_version: 1.3.6
256
+ rubygems_version: 1.3.7
238
257
  signing_key:
239
258
  specification_version: 3
240
259
  summary: an EDL scene-selector/bleeper that works with online players like hulu
241
260
  test_files:
242
- - spec/blanker.spec.rb
243
- - spec/common.rb
244
- - spec/convert_image.rb
245
- - spec/keyboard_input.spec.rb
246
- - spec/mouse.spec.rb
247
- - spec/mouse_forever.rb
248
- - spec/muter.spec.rb
249
- - spec/overlayer.spec.rb
250
- - spec/screen_tracker.spec.rb
261
+ - spec/blanker.spec.rb
262
+ - spec/common.rb
263
+ - spec/convert_image.rb
264
+ - spec/keyboard_input.spec.rb
265
+ - spec/mouse.spec.rb
266
+ - spec/mouse_forever.rb
267
+ - spec/muter.spec.rb
268
+ - spec/overlayer.spec.rb
269
+ - spec/screen_tracker.spec.rb