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.
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'