sensible-cinema 0.17.0 → 0.18.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog +4 -0
- data/LICENSE.TXT +70 -0
- data/README +95 -29
- data/TODO +85 -71
- data/USAGE_TERMS.TXT +15 -0
- data/VERSION +1 -1
- data/bin/sensible-cinema +90 -32
- data/bin/sensible-cinema-cli +17 -0
- data/edit sensible cinema decision list files.bat b/data/create new sensible cinema decision list → files.bat +0 -0
- data/ext/mkrf_conf.rb +17 -0
- data/how_to_create +1 -0
- data/lib/add_any_bundled_gems_to_load_path.rb +17 -0
- data/lib/blanker.rb +17 -0
- data/lib/drive_info.rb +17 -0
- data/lib/edl_parser.rb +17 -0
- data/lib/fake_blanker.rb +17 -0
- data/lib/file_chooser.rb +17 -0
- data/lib/keyboard_input.rb +17 -0
- data/lib/mencoder_wrapper.rb +32 -33
- data/lib/mouse.rb +17 -0
- data/lib/mouse_forever.rb +17 -0
- data/lib/mplayer_edl.rb +31 -0
- data/lib/muter.rb +17 -0
- data/lib/ocr.rb +17 -0
- data/lib/overlayer.rb +17 -0
- data/lib/screen_tracker.rb +18 -1
- data/lib/storage.rb +99 -82
- data/lib/swing_helpers.rb +17 -0
- data/lib/vlc_programmer.rb +17 -0
- data/preamble +17 -0
- data/sensible-cinema.gemspec +12 -5
- data/spec/blanker.spec.rb +17 -0
- data/spec/common.rb +17 -0
- data/spec/convert_image.rb +17 -0
- data/spec/drive_info.spec.rb +17 -0
- data/spec/edl_parser.spec.rb +17 -0
- data/spec/keyboard_input.spec.rb +17 -0
- data/spec/mencoder_wrapper.spec.rb +61 -21
- data/spec/mouse.spec.rb +17 -0
- data/spec/mplayer_edl.spec.rb +33 -0
- data/spec/muter.spec.rb +17 -0
- data/spec/ocr.spec.rb +17 -0
- data/spec/overlayer.spec.rb +17 -0
- data/spec/screen_tracker.spec.rb +17 -0
- data/spec/sensible_cinema_gui.spec.rb +38 -16
- data/spec/swing_helpers.spec.rb +17 -0
- data/spec/vlc_programmer.spec.rb +17 -0
- data/zamples/edit_decision_lists/dvds/COOL_RUNNINGS.txt +23 -1
- data/zamples/edit_decision_lists/dvds/Harry Potter 2.txt +18 -0
- data/zamples/edit_decision_lists/dvds/pack_wedding_2007-03-03.txt +24 -0
- data/zamples/edit_decision_lists/example_edit_decision_list.txt +1 -1
- metadata +13 -6
- data/LICENSE +0 -56
data/USAGE_TERMS.TXT
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
Copyright 2010 Roger Pack
|
2
|
+
|
3
|
+
Sensible Cinema
|
4
|
+
|
5
|
+
|
6
|
+
USING THIS FREEWARE MIGHT BE ILLEGAL IN SOME COUNTRIES
|
7
|
+
|
8
|
+
Please check with your legal advisor, and if this is the case in your country, you are NOT licensed to use this freeware.
|
9
|
+
|
10
|
+
LICENSE TERMS AND CONDITIONS
|
11
|
+
|
12
|
+
YOU ACKNOWLEDGE THAT LICENSOR MAKES NO WARRANTIES TO YOU IN CONNECTION WITH THIS LICENSE,
|
13
|
+
INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE,
|
14
|
+
NON-INFRINGEMENT AND LEGALITY IN YOUR COUNTRY. YOU AGREE TO DEFEND, INDEMNIFY AND HOLD HARMLESS LICENSOR FROM
|
15
|
+
ANY AND ALL CLAIMS OF INFRINGEMENT (INCLUDING THOSE MADE BY THIRD PARTIES) RESULTING IN WHOLE OR IN PART FROM YOUR USE OF THE FREEWARE.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.18.0
|
data/bin/sensible-cinema
CHANGED
@@ -1,4 +1,21 @@
|
|
1
1
|
#!/usr/bin/ruby # so my editor will like it...
|
2
|
+
=begin
|
3
|
+
Copyright 2010, Roger Pack
|
4
|
+
This file is part of Sensible Cinema.
|
5
|
+
|
6
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
7
|
+
it under the terms of the GNU General Public License as published by
|
8
|
+
the Free Software Foundation, either version 3 of the License, or
|
9
|
+
(at your option) any later version.
|
10
|
+
|
11
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
GNU General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU General Public License
|
17
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
18
|
+
=end
|
2
19
|
|
3
20
|
puts 'Loading Sensible Cinema...'
|
4
21
|
|
@@ -41,7 +58,6 @@ module SensibleSwing
|
|
41
58
|
def increment_button_location
|
42
59
|
@starting_button_y += 30
|
43
60
|
end
|
44
|
-
|
45
61
|
|
46
62
|
Storage = Storage.new("sc")
|
47
63
|
|
@@ -51,11 +67,17 @@ module SensibleSwing
|
|
51
67
|
Thread.new { system_blocking command }
|
52
68
|
end
|
53
69
|
|
54
|
-
# make them choose which
|
70
|
+
# make them choose which system call to use explicitly
|
55
71
|
undef system
|
56
72
|
|
57
73
|
def initialize
|
58
74
|
super "Sensible-Cinema"
|
75
|
+
if !Storage['main_license_accepted']
|
76
|
+
show_blocking_license_accept_dialog 'Sensible Cinema', 'gplv3', 'http://www.gnu.org/licenses/gpl.html'
|
77
|
+
show_blocking_license_accept_dialog 'Sensible Cinema', 'LICENSE file', File.expand_path(File.dirname(__FILE__) + "/../LICENSE.TXT"), 'LICENSE file', 'I acknowledge that I have read the LICENSE file.'
|
78
|
+
Storage['main_license_accepted'] = true
|
79
|
+
end
|
80
|
+
|
59
81
|
setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
|
60
82
|
panel = JPanel.new
|
61
83
|
@panel = panel
|
@@ -71,8 +93,10 @@ module SensibleSwing
|
|
71
93
|
@starting_button_y = 120
|
72
94
|
@button_width = 330
|
73
95
|
|
74
|
-
@create = new_jbutton( "Create edited copy of DVD on Your Hard Drive, from
|
96
|
+
@create = new_jbutton( "Create edited copy of DVD on Your Hard Drive, from a DVD", false )
|
75
97
|
@create.on_clicked {
|
98
|
+
get_user_input('a', 'b')
|
99
|
+
|
76
100
|
do_copy_dvd_to_hard_drive false
|
77
101
|
}
|
78
102
|
|
@@ -80,6 +104,7 @@ module SensibleSwing
|
|
80
104
|
@watch_unedited.on_clicked {
|
81
105
|
path = RubyWhich.new.which('smplayer')
|
82
106
|
if(path.length == 0)
|
107
|
+
# this one has its own license...
|
83
108
|
show_blocking_message_dialog("It appears that you need to install a dependency: SMPlayer.\n
|
84
109
|
Click ok to be directed to its download website, where you can download and install it.", "Lacking dependency", JOptionPane::ERROR_MESSAGE)
|
85
110
|
system_non_blocking("start http://smplayer.sourceforge.net/downloads.php")
|
@@ -98,7 +123,7 @@ module SensibleSwing
|
|
98
123
|
end
|
99
124
|
}
|
100
125
|
|
101
|
-
@open_list = new_jbutton("Open/Edit a pre-existing DVD Edit
|
126
|
+
@open_list = new_jbutton("Open/Edit a pre-existing DVD Edit List", false)
|
102
127
|
@open_list.on_clicked {
|
103
128
|
dialog = FileDialog.new(self, "Pick file to edit")
|
104
129
|
dialog.set_directory EDL_DIR
|
@@ -127,23 +152,27 @@ module SensibleSwing
|
|
127
152
|
@create_new_edl_for_current_dvd = new_jbutton("Create new Edit Decision List for current DVD", true)
|
128
153
|
@create_new_edl_for_current_dvd.on_clicked do
|
129
154
|
drive, volume, md5 = choose_dvd_drive
|
130
|
-
|
155
|
+
name = get_user_input("Enter DVD name for #{volume}")
|
156
|
+
|
157
|
+
input = <<-EOL
|
131
158
|
# comments can go after a # on any line, for example this one.
|
132
159
|
|
133
160
|
"mutes" => [
|
134
|
-
"0:00:01.0", "0:00:02.0", "da..",
|
161
|
+
"0:00:01.0", "0:00:02.0", "profanity", "da..",
|
135
162
|
],
|
136
163
|
|
137
164
|
"blank_outs" => [
|
138
|
-
"
|
165
|
+
"00:03:00.0" , "00:04:00.0", "violence", "of some sort",
|
139
166
|
],
|
140
167
|
|
168
|
+
"name" => "#{name}"
|
141
169
|
"disk_unique_id" => "#{md5}",
|
142
|
-
|
143
|
-
#
|
144
|
-
#"
|
170
|
+
|
171
|
+
# "dvd_title_track" => "1", # most DVD's use title 1. Yours might not. If it doesn't record the right length track, see http://betterlogic.com/roger/2010/11/how-to-use-vlc-to-tell-how-many-titles-and-chapters-and-which-is-the-main/
|
172
|
+
# "not edited out stuff" => "",
|
173
|
+
|
145
174
|
EOL
|
146
|
-
filename = EDL_DIR + "\\" +
|
175
|
+
filename = EDL_DIR + "\\" + name.gsub(' ', '_') + '.txt'
|
147
176
|
filename.downcase!
|
148
177
|
File.write(filename, input) unless File.exist?(filename) # lodo let them choose name (?)
|
149
178
|
open_file_to_edit_it filename
|
@@ -183,6 +212,36 @@ EOL
|
|
183
212
|
writeOut.write(open(full_url).read)
|
184
213
|
writeOut.close
|
185
214
|
end
|
215
|
+
|
216
|
+
def show_blocking_license_accept_dialog program, license_name, license_url_should_also_be_embedded_by_you_in_message, title = 'Confirm Acceptance of License Agreement', message = nil
|
217
|
+
old = ['no', 'yes', 'ok'].map{|name| 'OptionPane.' + name + 'ButtonText'}.map{|name| [name, UIManager.get(name)]}
|
218
|
+
UIManager.put("OptionPane.yesButtonText", 'Accept')
|
219
|
+
UIManager.put("OptionPane.noButtonText", 'View License')
|
220
|
+
# cancel button stays the same...
|
221
|
+
|
222
|
+
message ||= "By clicking accept, below, you are agreeing to the license agreement for #{program} (the #{license_name}),
|
223
|
+
located at #{license_url_should_also_be_embedded_by_you_in_message}.
|
224
|
+
Click 'View License' to view it on your local machine."
|
225
|
+
|
226
|
+
returned = JOptionPane.showConfirmDialog nil, message, title, JOptionPane::YES_NO_CANCEL_OPTION
|
227
|
+
# 1 is view
|
228
|
+
# 0 is accept
|
229
|
+
# 2 is cancel
|
230
|
+
if returned == 1
|
231
|
+
system_non_blocking("start #{license_url_should_also_be_embedded_by_you_in_message}")
|
232
|
+
System.exit 1
|
233
|
+
end
|
234
|
+
if returned == 2
|
235
|
+
p 'license not accepted...'
|
236
|
+
System.exit 1
|
237
|
+
end
|
238
|
+
if returned == -1
|
239
|
+
p 'license exited'
|
240
|
+
System.exit 1
|
241
|
+
end
|
242
|
+
throw unless returned == 0
|
243
|
+
old.each{|name, old_setting| UIManager.put(name, old_setting)}
|
244
|
+
end
|
186
245
|
|
187
246
|
def check_for_dependencies
|
188
247
|
ffmpeg = RubyWhich.new.which('ffmpeg')
|
@@ -195,19 +254,11 @@ EOL
|
|
195
254
|
end
|
196
255
|
mencoder = RubyWhich.new.which('mencoder')
|
197
256
|
if mencoder.length == 0
|
198
|
-
|
199
|
-
Its license is at: http://www.gnu.org/licenses/gpl-2.0.html.
|
200
|
-
Also this will download 7z locally (license: http://www.7-zip.org/license.txt).
|
201
|
-
Click yes if you accept the terms of the several license agreements mentioned. The programs will then be downloaded.
|
202
|
-
Or click no to cancel and exit.", "Lacking dependency", JOptionPane::YES_NO_OPTION)
|
203
|
-
if answer == 1
|
204
|
-
p 'exiting, no mencoder...'
|
205
|
-
java.lang.System.exit(1)
|
206
|
-
end
|
257
|
+
show_blocking_license_accept_dialog 'MPlayer', 'gplv2', 'http://www.gnu.org/licenses/gpl-2.0.html', "Appears that you need to install a dependency: mencoder."
|
207
258
|
vendor_cache = File.expand_path(File.dirname(__FILE__)) + "/../vendor/cache/"
|
208
259
|
ENV['PATH'] = ENV['PATH'] + ';' + vendor_cache + '\\..;' + vendor_cache
|
209
260
|
Dir.chdir(vendor_cache) do
|
210
|
-
Kernel.print 'downloading
|
261
|
+
Kernel.print 'downloading unzipper...'
|
211
262
|
download("http://downloads.sourceforge.net/project/sevenzip/7-Zip/9.20/7za920.zip", "7za920.zip")
|
212
263
|
system_blocking("unzip -o 7za920.zip") # -o means "overwrite" without prompting
|
213
264
|
# now we have 7za.exe
|
@@ -251,7 +302,13 @@ EOL
|
|
251
302
|
JOptionPane.showMessageDialog(nil, message, title, style)
|
252
303
|
end
|
253
304
|
|
254
|
-
|
305
|
+
include_class javax.swing.UIManager
|
306
|
+
def get_user_input(message, default = '')
|
307
|
+
require "_dbg"
|
308
|
+
UIManager.put("OptionPane.noButtonText", "Non");
|
309
|
+
UIManager.put("OptionPane.okButtonText", "D'accord");
|
310
|
+
UIManager.put("OptionPane.yesButtonText", "Oui");
|
311
|
+
|
255
312
|
start_time = JOptionPane.showInputDialog(message, default)
|
256
313
|
end
|
257
314
|
|
@@ -288,12 +345,13 @@ EOL
|
|
288
345
|
|
289
346
|
fc.set_title "Pick where to save #{dvd_title} edited to"
|
290
347
|
|
291
|
-
save_to_file_name = dvd_title + ' edited
|
292
|
-
save_to_file_name += ' single segment' if should_prompt_for_start_and_end_times || want_full_list
|
348
|
+
save_to_file_name = dvd_title + ' edited version'
|
293
349
|
save_to_file_name = save_to_file_name.gsub(' ', '_').gsub( /\W/, '') # no punctuation for now...
|
294
350
|
fc.set_file(get_drive_with_most_space_with_slash + save_to_file_name)
|
295
351
|
save_to = fc.go
|
296
|
-
File.open(File.dirname(save_to) + "/test_file_to_see_if_we_have_permission_to_write_to_this_folder", "w")
|
352
|
+
a = File.open(File.dirname(save_to) + "/test_file_to_see_if_we_have_permission_to_write_to_this_folder", "w")
|
353
|
+
a.close
|
354
|
+
File.delete a.path
|
297
355
|
dvd_title_track = descriptors["dvd_title_track"]
|
298
356
|
# how does save_to map to fulli?
|
299
357
|
fulli = save_to + ".fulli.tmp.avi"
|
@@ -306,7 +364,7 @@ EOL
|
|
306
364
|
return [true, fulli]
|
307
365
|
end
|
308
366
|
end
|
309
|
-
generate_and_run_bat_file save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track
|
367
|
+
generate_and_run_bat_file save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track, should_prompt_for_start_and_end_times
|
310
368
|
[false, fulli] # false means it's running in a background thread :P
|
311
369
|
end
|
312
370
|
|
@@ -318,17 +376,17 @@ EOL
|
|
318
376
|
MencoderWrapper.get_bat_commands descriptors, drive, save_to, start_time, end_time, dvd_title_track
|
319
377
|
end
|
320
378
|
|
321
|
-
def generate_and_run_bat_file save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track
|
322
|
-
Storage['last_params'] = [save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track]
|
323
|
-
commands = get_mencoder_commands descriptors, drive, save_to, start_time, end_time, dvd_title_track
|
379
|
+
def generate_and_run_bat_file save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track, should_prompt_for_start_and_end_times
|
380
|
+
Storage['last_params'] = [save_to, edit_list_path, descriptors, drive, dvd_title, start_time, end_time, dvd_title_track, should_prompt_for_start_and_end_times]
|
381
|
+
commands = get_mencoder_commands descriptors, drive, save_to, start_time, end_time, dvd_title_track, should_prompt_for_start_and_end_times
|
324
382
|
temp_dir = Dir.tmpdir
|
325
383
|
temp_file = temp_dir + '/vlc.temp.bat'
|
326
384
|
File.write(temp_file, commands)
|
327
385
|
popup = NonBlockingDialog.new("Copying to #{save_to}.\n" +
|
328
|
-
"Applying EDL #{File.basename edit_list_path} against #{drive} (#{dvd_title}).\n" +
|
386
|
+
"Applying EDL #{File.basename edit_list_path} \n against #{drive} (#{dvd_title}).\n" +
|
329
387
|
"This could take quite awhile, and will prompt you when it is done.\n" +
|
330
388
|
"You can close this window and continue working while it runs.\n" +
|
331
|
-
"NB that the created file will be playable only with smplayer or VLC
|
389
|
+
"NB that the created file will be playable only with smplayer or VLC.",
|
332
390
|
"OK")
|
333
391
|
|
334
392
|
# allow our popups to still be serviced while it is running
|
@@ -373,7 +431,7 @@ EOL
|
|
373
431
|
#self.close # ?
|
374
432
|
end
|
375
433
|
else
|
376
|
-
show_blocking_message_dialog("Failed--please examine screen output and report back
|
434
|
+
show_blocking_message_dialog("Failed--please examine screen output and report back!\nAlso consult the troubleshooting section of the README file.", "Failed", JOptionPane::ERROR_MESSAGE)
|
377
435
|
end
|
378
436
|
@after_success_once = nil
|
379
437
|
end
|
data/bin/sensible-cinema-cli
CHANGED
@@ -1,4 +1,21 @@
|
|
1
1
|
#!/usr/bin/ruby
|
2
|
+
=begin
|
3
|
+
Copyright 2010, Roger Pack
|
4
|
+
This file is part of Sensible Cinema.
|
5
|
+
|
6
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
7
|
+
it under the terms of the GNU General Public License as published by
|
8
|
+
the Free Software Foundation, either version 3 of the License, or
|
9
|
+
(at your option) any later version.
|
10
|
+
|
11
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
12
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14
|
+
GNU General Public License for more details.
|
15
|
+
|
16
|
+
You should have received a copy of the GNU General Public License
|
17
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
18
|
+
=end
|
2
19
|
|
3
20
|
require File.dirname(__FILE__) + "/../lib/add_any_bundled_gems_to_load_path.rb"
|
4
21
|
require 'sane'
|
File without changes
|
data/ext/mkrf_conf.rb
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
raise 'must be using jruby to be able to run this...at least for now' unless RUBY_PLATFORM =~ /java/
|
2
19
|
|
3
20
|
# reset the OCR cache...
|
data/how_to_create
CHANGED
@@ -31,5 +31,6 @@ Also if you want sensible-cinema to be able to auto-choose your EDL, then includ
|
|
31
31
|
|
32
32
|
A few pointers:
|
33
33
|
You can just watch the DVD (using any DVD player), and get timestamps that way, before starting this.
|
34
|
+
A good one is "smplayer" (the [ and ] keys control playback speed)
|
34
35
|
You can watch the DVD using VLC Player, which has a "fast forward" button, just recognize that VLC's timestamps are slightly off,
|
35
36
|
so they'll only be approximate, but it might still help.
|
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
|
2
19
|
def add_any_bundled_gems_to_load_path
|
3
20
|
raise 'no vendor dir?' unless File.directory? 'vendor'
|
data/lib/blanker.rb
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
if RUBY_PLATFORM !~ /java/
|
2
19
|
require_relative 'fake_blanker'
|
3
20
|
else
|
data/lib/drive_info.rb
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
require 'digest/md5'
|
2
19
|
require 'ruby-wmi'
|
3
20
|
|
data/lib/edl_parser.rb
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
class EdlParser
|
2
19
|
|
3
20
|
def self.parse_file filename
|
data/lib/fake_blanker.rb
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
puts 'warning--using fake blanker'
|
2
19
|
|
3
20
|
class Blanker
|
data/lib/file_chooser.rb
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
require 'java'
|
2
19
|
|
3
20
|
module FileChooser
|
data/lib/keyboard_input.rb
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
=begin
|
2
|
+
Copyright 2010, Roger Pack
|
3
|
+
This file is part of Sensible Cinema.
|
4
|
+
|
5
|
+
Sensible Cinema is free software: you can redistribute it and/or modify
|
6
|
+
it under the terms of the GNU General Public License as published by
|
7
|
+
the Free Software Foundation, either version 3 of the License, or
|
8
|
+
(at your option) any later version.
|
9
|
+
|
10
|
+
Sensible Cinema is distributed in the hope that it will be useful,
|
11
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
12
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
13
|
+
GNU General Public License for more details.
|
14
|
+
|
15
|
+
You should have received a copy of the GNU General Public License
|
16
|
+
along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
|
17
|
+
=end
|
1
18
|
require 'rubygems'
|
2
19
|
require 'sane'
|
3
20
|
require 'Win32API'
|