sensible-cinema 0.17.0 → 0.18.0
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.
- 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'
|