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.
Files changed (53) hide show
  1. data/ChangeLog +4 -0
  2. data/LICENSE.TXT +70 -0
  3. data/README +95 -29
  4. data/TODO +85 -71
  5. data/USAGE_TERMS.TXT +15 -0
  6. data/VERSION +1 -1
  7. data/bin/sensible-cinema +90 -32
  8. data/bin/sensible-cinema-cli +17 -0
  9. data/edit sensible cinema decision list files.bat b/data/create new sensible cinema decision list → files.bat +0 -0
  10. data/ext/mkrf_conf.rb +17 -0
  11. data/how_to_create +1 -0
  12. data/lib/add_any_bundled_gems_to_load_path.rb +17 -0
  13. data/lib/blanker.rb +17 -0
  14. data/lib/drive_info.rb +17 -0
  15. data/lib/edl_parser.rb +17 -0
  16. data/lib/fake_blanker.rb +17 -0
  17. data/lib/file_chooser.rb +17 -0
  18. data/lib/keyboard_input.rb +17 -0
  19. data/lib/mencoder_wrapper.rb +32 -33
  20. data/lib/mouse.rb +17 -0
  21. data/lib/mouse_forever.rb +17 -0
  22. data/lib/mplayer_edl.rb +31 -0
  23. data/lib/muter.rb +17 -0
  24. data/lib/ocr.rb +17 -0
  25. data/lib/overlayer.rb +17 -0
  26. data/lib/screen_tracker.rb +18 -1
  27. data/lib/storage.rb +99 -82
  28. data/lib/swing_helpers.rb +17 -0
  29. data/lib/vlc_programmer.rb +17 -0
  30. data/preamble +17 -0
  31. data/sensible-cinema.gemspec +12 -5
  32. data/spec/blanker.spec.rb +17 -0
  33. data/spec/common.rb +17 -0
  34. data/spec/convert_image.rb +17 -0
  35. data/spec/drive_info.spec.rb +17 -0
  36. data/spec/edl_parser.spec.rb +17 -0
  37. data/spec/keyboard_input.spec.rb +17 -0
  38. data/spec/mencoder_wrapper.spec.rb +61 -21
  39. data/spec/mouse.spec.rb +17 -0
  40. data/spec/mplayer_edl.spec.rb +33 -0
  41. data/spec/muter.spec.rb +17 -0
  42. data/spec/ocr.spec.rb +17 -0
  43. data/spec/overlayer.spec.rb +17 -0
  44. data/spec/screen_tracker.spec.rb +17 -0
  45. data/spec/sensible_cinema_gui.spec.rb +38 -16
  46. data/spec/swing_helpers.spec.rb +17 -0
  47. data/spec/vlc_programmer.spec.rb +17 -0
  48. data/zamples/edit_decision_lists/dvds/COOL_RUNNINGS.txt +23 -1
  49. data/zamples/edit_decision_lists/dvds/Harry Potter 2.txt +18 -0
  50. data/zamples/edit_decision_lists/dvds/pack_wedding_2007-03-03.txt +24 -0
  51. data/zamples/edit_decision_lists/example_edit_decision_list.txt +1 -1
  52. metadata +13 -6
  53. 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.17.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 one to use
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 the DVD", false )
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 Decision List", false)
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
- input = <<-EOL
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
- "1:01:00.0" , "1:02:00.0", "violent scene of some sort",
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
- "dvd_title_track" => "1" # most DVD's use title 1 for the main film. Some don't though. The correct number is discoverable by opening the film in VLC and choosing "playback -> title" while watching the main feature. If its not 1, then change this here. And delete this overly verbose comment either way :)
143
- #"not edited out stuff" => "fighting (punching) in a bar at 1:00:30 'ish could use some editing love"
144
- #"title" => ""
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 + "\\" + volume.gsub(' ', '_') + '.txt'
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
- answer = JOptionPane.showConfirmDialog(nil, "Appears that you need to install a dependency: mencoder.
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 unzip utility...'
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
- def get_user_input(message, default)
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 copy'
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").close
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 player.",
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!", "Failed", JOptionPane::ERROR_MESSAGE)
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
@@ -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'
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
@@ -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'