sensible-cinema 0.28.0 → 0.28.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/LICENSE.TXT +1 -1
  2. data/README +6 -4
  3. data/Rakefile +41 -24
  4. data/TODO +41 -10
  5. data/VERSION +1 -1
  6. data/change_log_with_feature_list.txt +12 -0
  7. data/documentation/is_it_legal_to_copy_dvds.txt +4 -2
  8. data/go +1 -0
  9. data/goc +1 -0
  10. data/history_and_related_works_list.txt +2 -0
  11. data/inventionzy_files/control_youtube.html +135 -0
  12. data/inventionzy_files/md5s.txt +53 -0
  13. data/inventionzy_files/play_with_inserted_scene.bat +8 -0
  14. data/inventionzy_files/play_with_overlay.bat +24 -0
  15. data/inventionzy_files/serve.rb +6 -0
  16. data/inventionzy_files/transcript_mute_vlc.txt +117 -0
  17. data/lib/add_any_bundled_gems_to_load_path.rb +1 -1
  18. data/lib/edl_parser.rb +2 -0
  19. data/lib/gui/sensible-cinema-base.rb +10 -68
  20. data/lib/gui/sensible-cinema-create.rb +16 -10
  21. data/lib/gui/sensible-cinema-dependencies.rb +1 -0
  22. data/lib/gui/sensible-cinema-normal.rb +11 -14
  23. data/lib/muter.rb +1 -1
  24. data/lib/subtitle_profanity_finder.rb +3 -2
  25. data/spec/notes +2 -0
  26. data/template_bats/README_DISTRO.TXT +6 -0
  27. data/template_bats/mac/RUN SENSIBLE CINEMA CLICK HERE.sh b/data/template_bats/mac/RUN SENSIBLE CINEMA CLICK → HERE.command +0 -0
  28. data/template_bats/mac/{advanced--create or edit sensible cinema edit list files.sh → advanced--create or edit sensible cinema edit list files.command } +1 -0
  29. data/template_bats/mac/{advanced--run-upconverting-video-player.sh → advanced--run-upconverting-video-player.command} +1 -0
  30. data/todo.inventionzy.txt +11 -0
  31. data/todo.propaganda +21 -18
  32. data/vendor/rdp-win32screenshot-0.0.9/.document +5 -0
  33. data/vendor/rdp-win32screenshot-0.0.9/History.rdoc +53 -0
  34. data/vendor/rdp-win32screenshot-0.0.9/LICENSE +20 -0
  35. data/vendor/rdp-win32screenshot-0.0.9/RDP_BRANCH_HAS_MASTER_WITH_CORRECT_VERSION_NUMBER +0 -0
  36. data/vendor/rdp-win32screenshot-0.0.9/RDP_VERSION_IS_IN_RDP_BRANCH +0 -0
  37. data/vendor/rdp-win32screenshot-0.0.9/README.rdoc +95 -0
  38. data/vendor/rdp-win32screenshot-0.0.9/Rakefile +63 -0
  39. data/vendor/rdp-win32screenshot-0.0.9/VERSION +1 -0
  40. data/vendor/rdp-win32screenshot-0.0.9/enumerated +55576 -0
  41. data/vendor/rdp-win32screenshot-0.0.9/lib/aero_offscreen_srccopy_captureblt_doesnt_have_everything.bmp.gz +0 -0
  42. data/vendor/rdp-win32screenshot-0.0.9/lib/enumerate.rb +6 -0
  43. data/vendor/rdp-win32screenshot-0.0.9/lib/firefox.bmp +0 -0
  44. data/vendor/rdp-win32screenshot-0.0.9/lib/normal.bmp +0 -0
  45. data/vendor/rdp-win32screenshot-0.0.9/lib/normal2.bmp +0 -0
  46. data/vendor/rdp-win32screenshot-0.0.9/lib/notes +5 -0
  47. data/vendor/rdp-win32screenshot-0.0.9/lib/snapshot.rb +10 -0
  48. data/vendor/rdp-win32screenshot-0.0.9/lib/srccopy.bmp +0 -0
  49. data/vendor/rdp-win32screenshot-0.0.9/lib/srccopyplus.bmp +0 -0
  50. data/vendor/rdp-win32screenshot-0.0.9/lib/srccopyplusdirectx.bmp +0 -0
  51. data/vendor/rdp-win32screenshot-0.0.9/lib/vc.bmp +0 -0
  52. data/vendor/rdp-win32screenshot-0.0.9/lib/win32/screenshot.rb +95 -0
  53. data/vendor/rdp-win32screenshot-0.0.9/lib/win32/screenshot/bitmap_maker.rb +200 -0
  54. data/vendor/rdp-win32screenshot-0.0.9/lib/win32/util.rb +93 -0
  55. data/vendor/rdp-win32screenshot-0.0.9/spec/spec.opts +1 -0
  56. data/vendor/rdp-win32screenshot-0.0.9/spec/spec_helper.rb +85 -0
  57. data/vendor/rdp-win32screenshot-0.0.9/spec/win32_screenshot_spec.rb +194 -0
  58. data/vendor/rdp-win32screenshot-0.0.9/spec/win32_screenshot_util_spec.rb +75 -0
  59. data/vendor/rdp-win32screenshot-0.0.9/win32screenshot.gemspec +69 -0
  60. data/{subfont.ttf → vendor/subfont.ttf} +0 -0
  61. data/zamples/edit_decision_lists/dvds/{edls_being_edited/cars_disney.txt → cars_disney.txt} +0 -0
  62. data/zamples/edit_decision_lists/dvds/edls_being_edited/king_of_kings.txt +28 -0
  63. data/zamples/edit_decision_lists/dvds/monsters_vs_aliens.txt +41 -0
  64. data/zamples/edit_decision_lists/dvds/peter_pan.txt +29 -0
  65. data/zamples/edit_decision_lists/dvds/speed_racer.txt +47 -0
  66. data/zamples/edit_decision_lists/notes/tron.txt +4 -0
  67. metadata +77 -54
  68. data/go.sh +0 -1
  69. data/legal2 +0 -3
  70. data/lib/play_audio.rb +0 -58
  71. data/lib/ruby_clip.rb +0 -26
  72. data/template_bats/RUN SENSIBLE CINEMA CLICK HERE.bat +0 -25
  73. data/template_bats/advanced--create or edit sensible cinema edit list files.bat +0 -1
  74. data/template_bats/advanced--run-upconverting-video-player.bat +0 -1
  75. data/transparent.png +0 -0
@@ -0,0 +1,53 @@
1
+ random md5's for tracking
2
+
3
+ ed492ff097a16ac9c3c207beed7a8d17 *full3.avi
4
+ http://www.youtube.com/watch?v=gJ4jFCFPan0
5
+ e988e897ede5f27c49d8011bfb4cb246 mute system.avi
6
+ 4a8b3612c666dd037ff91d68dc2c57b6 mute vlc.avi
7
+ a2c8625b646cb4bbfb99a66171b9b8f1 netflix descriptor working.avi
8
+ abe0f3a34eb8935d4f532b2ee789ceb9 to_here3.avi.fulli.tmp.avi
9
+ c:\dev\ruby\sensible-cinema\legal>md5sum "g:\mute system.avi"
10
+ \e988e897ede5f27c49d8011bfb4cb246 *g:\\mute system.avi
11
+ => http://www.youtube.com/watch?v=8cUV8DKLOK8
12
+ c:\dev\ruby\sensible-cinema\legal>md5sum "g:\mute vlc.avi"
13
+ \4a8b3612c666dd037ff91d68dc2c57b6 *g:\\mute vlc.avi
14
+ => http://www.youtube.com/watch?v=0AsJtVyVMzk
15
+
16
+ 74f4876260c7fcfe8a696ac81d3cf883 Debug.7z
17
+ 8d47950de913d97536ffe8d13a8d7203 latest-sensible-cinema.zip
18
+ 2ab9b0b909e24d2cb5b91b45fb35fda5 sensible-cinema-0.14.5.zip
19
+ 7e8afff74f9f991b789067e7e1ddd286 sensible-cinema-0.14.6.zip
20
+ cb32a7f982aee03598e54eefda0f7f98 sensible-cinema-0.14.8.zip
21
+ 81c4d19f9975f42ea5d945c4248e2412 sensible-cinema-0.16.2.zip
22
+ bd62ba887644a437366de0b66f817631 sensible-cinema-0.16.3.zip
23
+ a12babdfb09abf7a2a833a0a9e393c20 sensible-cinema-0.16.4.zip
24
+ f2f05570882f3ae65d9d8f53b42c260a sensible-cinema-0.16.5.zip
25
+ f8d9205e31ac7af6b3d709de97e4294c sensible-cinema-0.16.7.zip
26
+ 918db721fdb71ce6274188375536581f sensible-cinema-0.17.0.zip
27
+ 5618d81aca3ed103601105f17d535ad7 sensible-cinema-0.18.1.zip
28
+ 78fd2b42a55ffec8d219bb7bf803a721 sensible-cinema-0.18.2.zip
29
+ 8edcf4e60c358496ec9581e015215b18 sensible-cinema-0.18.3.zip
30
+ a64c55b101f858218b83dfb7af6d0b53 sensible-cinema-0.18.4.zip
31
+ 60f09f712e9cc8004626ad2da3520cc6 sensible-cinema-0.19.0.zip
32
+ d24f66b08b8f28c146f5473629f378d7 sensible-cinema-0.19.1.zip
33
+ 11936f547af54471e0f800748edfe906 sensible-cinema-0.19.2.zip
34
+ dcc25e1c3fcd5f7745580ad351786134 sensible-cinema-0.19.4.zip
35
+ b28f00a1019b665635a302450f8bdcbb sensible-cinema-0.19.5.zip
36
+ 5300900ea5407f87fcc198297720a5d6 sensible-cinema-0.19.6.zip
37
+ 66b2259c3da4c732aa550c3a707770ac sensible-cinema-0.19.7.zip
38
+ 2c5da873803e2399ea4b7eabea9d681e sensible-cinema-0.20.0.zip
39
+ 81001183f1460b6607342dfee616eb2d sensible-cinema-0.20.2.zip
40
+ 944917cf6086abfcdf4c4a0bb4ffc718 sensible-cinema-0.20.3.zip
41
+ 823b8eb07a0d5c59d7fc40e1dcb9bdca sensible-cinema-0.20.5.zip
42
+ deca5dc53b714b067e5fd7eedb0adc40 sensible-cinema-0.20.6.zip
43
+ c38b4a7ce1a9fab40566f8b1a876a7d0 sensible-cinema-0.21.1.zip
44
+ 569832ce944f1b9cd285a495db787d5d sensible-cinema-0.21.2.zip
45
+ 9f71c5a9f59d2e7370a9ad06e4441ace sensible-cinema-0.21.3.zip
46
+ d628fe7d5284ecb764df8b79aee7b773 sensible-cinema-0.21.4.zip
47
+ 8d47950de913d97536ffe8d13a8d7203 sensible-cinema-0.21.5.zip
48
+
49
+
50
+ show_off.avi
51
+ ff2780913ef202dbd3a370e4d04a6597 *show_off.avi
52
+
53
+ eefeda17181c79b570dc9ce17c93fdf5 *can_mute_youtube.avi
@@ -0,0 +1,8 @@
1
+ call vlc dvd://d:\@2 --start-time=10 --stop-time=15 vlc://quit
2
+ call vlc dvd://d:\@1 --start-time=10 --stop-time=15 vlc://quit
3
+ call vlc dvd://d:\@2 --start-time=15 --stop-time=20 vlc://quit
4
+ call vlc dvd://d:\@1 --start-time=10 --stop-time=15 vlc://quit
5
+ call vlc dvd://d:\@2 --start-time=35 --stop-time=40 vlc://quit @rem should have been 20
6
+ call vlc g:\downloads\big_buck_bunny_480p_h264.mov.crdownload --stop-time=4 vlc://quit
7
+
8
+
@@ -0,0 +1,24 @@
1
+ call vlc --sub-filter "logo{file='transparent.png,256'}" dvd://d:\@2 --stop-time=56 --start-time=45 vlc://quit
2
+ call vlc --sub-filter "logo{file='cone.png,256'}" dvd://d:\@2 --start-time=56 --stop-time=57 vlc://quit
3
+ call vlc --sub-filter "logo{file='transparent.png,256'}" dvd://d:\@2 --start-time=57 --stop-time=65 vlc://quit
4
+ call vlc --sub-filter "logo{file='cone.png,256'}" dvd://d:\@2 --start-time=65 --stop-time=74.5 vlc://quit
5
+ call vlc dvd://d:\@2 --start-time=74.5 vlc://quit
6
+
7
+
8
+ "00:00:56.0" , "00:00:57.0", "violence", "knife stabbing",
9
+ "00:01:05.0" , "00:01:14.5", "violence", "stab through",
10
+
11
+
12
+
13
+
14
+
15
+ @rem working: -> vlc --sub-filter "logo{file='cone.png,5000,128;transparent.png,2000,128;cone.png,10000,256'}" dvd://d:\@2 --stop-time=30
16
+ @rem vlc --sub-filter "logo{file='cone.png,500000,128;transparent.png,1000,128'}" dvd://d:\@2 --stop-time=30
17
+
18
+ @rem dvd://d:\@2 :start-time=10 :stop-time=20 dvd://d:\@2 :start-time=20 :stop-time=25 :sub-filter=logo{file=g:\video\sintel_ntsc\cone.png,transparency=128} dvd://d:\@2 :start-time=25 :stop-time=30 vlc://quit
19
+
20
+
21
+
22
+
23
+ @rem vlc dvd://d:\@2 :start-time=70 :stop-time=75 :sub-filter=logo{file=g:\video\sintel_ntsc\cone.png,transparency=128}
24
+
@@ -0,0 +1,6 @@
1
+ require 'webrick'
2
+ include WEBrick
3
+
4
+ s = HTTPServer.new(:Port => 9090, :DocumentRoot => Dir::pwd)
5
+ trap("INT"){ s.shutdown }
6
+ s.start
@@ -0,0 +1,117 @@
1
+
2
+ c:\dev\ruby\sensible-cinema>call j bin\sensible-cinema-cli
3
+ Welcome to Sensible Cinema...
4
+ Please Select Computer Player
5
+ Select Edit Decision List
6
+ error: have to specify a scene descriptions file
7
+ or specify "test" on the command line if you just want to snapshot your player
8
+
9
+ c:\dev\ruby\sensible-cinema>
10
+ c:\dev\ruby\sensible-cinema>
11
+ c:\dev\ruby\sensible-cinema>
12
+ c:\dev\ruby\sensible-cinema>
13
+ c:\dev\ruby\sensible-cinema>git log | head
14
+
15
+ c:\dev\ruby\sensible-cinema>git.exe log | cat
16
+ commit d310d82ae5ddc7894ba8ef52d7910773cbe47bf1
17
+ Author: rogerdpack <rogerpack2005@gmail.com>
18
+ Date: Fri Apr 29 14:12:59 2011 -0600
19
+
20
+ default to using keyboard keys for muting
21
+
22
+ commit da72313659df6227af92bb01f552802fea88ed8a
23
+ Author: rogerdpack <rogerpack2005@gmail.com>
24
+
25
+ c:\dev\ruby\sensible-cinema>git status
26
+
27
+ c:\dev\ruby\sensible-cinema>git.exe status | cat
28
+ # On branch master
29
+ # Untracked files:
30
+ # (use "git add <file>..." to include in what will be committed)
31
+ #
32
+ # .redcar/
33
+ # bad_digit2second_ones.bmp
34
+ # bad_digit3minute_tens.bmp
35
+ # sensible-cinema-0.21.6.zip
36
+ # vendor/cache/
37
+ nothing added to commit but untracked files present (use "git add" to track)
38
+
39
+ c:\dev\ruby\sensible-cinema>
40
+ c:\dev\ruby\sensible-cinema>
41
+ c:\dev\ruby\sensible-cinema>
42
+ c:\dev\ruby\sensible-cinema>go_ocr_tracker.bat
43
+
44
+ c:\dev\ruby\sensible-cinema>call j bin\sensible-cinema-cli
45
+ Welcome to Sensible Cinema...
46
+ Please Select Computer Player
47
+ Select Edit Decision List
48
+ Selected scene descriptions file demo_mutes.txt
49
+ (full path: C:\dev\ruby\sensible-cinema\zamples\edit_decision_lists\youtube\demo_mutes.txt)
50
+ (re) loaded mute sequences from demo_mutes.txt as
51
+ {"title"=>"Friday Song",
52
+ "source"=>"youtube",
53
+ "source_url"=>"http://www.youtube.com/watch?v=CD2LRROpph0",
54
+ :mutes=>[["00:10", "00:15"], ["00:30", "00:40"]],
55
+ :blank_outs=>[]}
56
+
57
+ Selected player windowed_total_length_under_an_hour.txt
58
+ (full path: C:\dev\ruby\sensible-cinema\zamples\players\vlc\windowed_total_length_under_an_hour.txt)
59
+ Opening the curtains... (please play in your other player now)
60
+ syntax from command line: "C:\dev\ruby\sensible-cinema\zamples\players\vlc\windowed_total_length_under_an_hour.txt" "C:\dev\ruby\sensible-cinema\zamples\edit_decision_lists\youtube\demo_mutes.txt"
61
+ 00:02.1 next will be at 00:10s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
62
+ 00:03.9 next will be at 00:10s (r [ctrl+c or q to quit]): "tracking it successfully again"
63
+ 00:10.0 next will be at 00:10s (r [ctrl+c or q to quit]):
64
+ 00:14.9 next will be at 00:15s (muted) (r [ctrl+c or q to quit]):
65
+ 00:21.9 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
66
+ 00:23.9 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
67
+ 00:26.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
68
+ 00:28.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
69
+ 00:30.0 next will be at 00:30s (r [ctrl+c or q to quit]):
70
+ "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
71
+ 00:32.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
72
+ obscured or it's not playing yet, or paused?]"
73
+ 00:34.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
74
+ obscured or it's not playing yet, or paused?]"
75
+ 00:36.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
76
+ obscured or it's not playing yet, or paused?]"
77
+ 00:37.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "tracking it successfully again"
78
+
79
+ 00:25.0 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
80
+ 00:27.1 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
81
+ 00:29.1 next will be at 00:30s (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
82
+ 00:30 next will be at 00:40s (r [ctrl+c or q to quit]): :
83
+ 00:31.1 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
84
+ obscured or it's not playing yet, or paused?]"
85
+ 00:33.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
86
+ obscured or it's not playing yet, or paused?]"
87
+ 00:35.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
88
+ obscured or it's not playing yet, or paused?]"
89
+ 00:37.2 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
90
+ obscured or it's not playing yet, or paused?]"
91
+ 00:39.3 next will be at 00:40s (muted) (r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen
92
+ obscured or it's not playing yet, or paused?]"
93
+ 00:40.0 next will be at 00:40s (muted) (r [ctrl+c or q to quit]):
94
+ 00:41.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
95
+ 00:43.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
96
+ 00:45.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
97
+ 00:47.2 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
98
+ 00:49.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
99
+ 00:51.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
100
+ 00:53.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
101
+ 00:55.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
102
+ 00:57.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
103
+ 00:59.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
104
+ 01:01.3 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
105
+ 01:03.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
106
+ 01:05.5 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
107
+ 01:07.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
108
+ 01:09.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
109
+ 01:11.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
110
+ 01:13.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
111
+ 01:15.4 no more after this point...(r [ctrl+c or q to quit]): "warning--unable to track screen time for some reason [perhaps screen obscured or it's not playing yet, or paused?]"
112
+ 01:16.1 no more after this point...(r [ctrl+c or q to quit]):
113
+ quitting
114
+ 01:16.2 no more after this point...(r [ctrl+c or q to quit]):
115
+ c:\dev\ruby\sensible-cinema>
116
+
117
+
@@ -19,7 +19,7 @@ This file is part of Sensible Cinema.
19
19
  def add_any_bundled_gems_to_load_path
20
20
  raise 'no vendor dir?' unless File.directory? 'vendor'
21
21
  if File.directory? 'vendor/cache'
22
- Dir['vendor/cache/**/lib'].sort.reverse.each{|lib_dir| # prefer newer versioned.
22
+ Dir['vendor/**/lib'].sort.reverse.each{|lib_dir| # prefers newer versioned copies of gems in case I have duplicates
23
23
  $: << lib_dir
24
24
  }
25
25
  else
@@ -15,6 +15,7 @@ This file is part of Sensible Cinema.
15
15
  You should have received a copy of the GNU General Public License
16
16
  along with Sensible Cinema. If not, see <http://www.gnu.org/licenses/>.
17
17
  =end
18
+
18
19
  require 'sane'
19
20
  class EdlParser
20
21
 
@@ -345,4 +346,5 @@ if $0 == __FILE__
345
346
  require 'rubygems'
346
347
  require 'sane'
347
348
  p EdlParser.parse_file(*ARGV)
349
+ p 'parsed well'
348
350
  end
@@ -34,9 +34,10 @@ end
34
34
  # shared
35
35
  require_relative '../jruby-swing-helpers/swing_helpers'
36
36
  require_relative '../jruby-swing-helpers/drive_info'
37
+ require_relative '../jruby-swing-helpers/ruby_clip'
37
38
 
38
39
  # attempt to load on demand...i.e. faster...
39
- for kls in [:MencoderWrapper, :MplayerEdl, :PlayAudio, :SubtitleProfanityFinder, :ConvertThirtyFps, :RubyClip]
40
+ for kls in [:MencoderWrapper, :MplayerEdl, :PlayAudio, :SubtitleProfanityFinder, :ConvertThirtyFps]
40
41
  autoload kls, "./lib/#{kls.to_s.snake_case}"
41
42
  end
42
43
 
@@ -223,7 +224,7 @@ module SensibleSwing
223
224
  show_mplayer_instructions_once
224
225
  conf_file = File.expand_path './mplayer_input_conf'
225
226
  File.write conf_file, "ENTER {dvdnav} dvdnav select\nMOUSE_BTN0 {dvdnav} dvdnav select\nMOUSE_BTN0_DBL vo_fullscreen\nMOUSE_BTN2 vo_fullscreen\nKP_ENTER dvdnav select\n" # that KP_ENTER doesn't actually work. Nor the MOUSE_BTN0 on windows. Weird.
226
- extra_options += " -font #{File.expand_path('subfont.ttf')} "
227
+ extra_options += " -font #{File.expand_path('vendor/subfont.ttf')} "
227
228
  extra_options += " -volume 100 " # why start low? mplayer why oh why LODO
228
229
  if OS.windows?
229
230
  # direct3d for windows 7 old nvidia cards' sake [yipes] and also dvdnav sake
@@ -249,7 +250,7 @@ module SensibleSwing
249
250
  #c += " -close-at-end " # we're still too unstable, mate...
250
251
  end
251
252
  end
252
- puts c
253
+ puts c
253
254
  system_blocking c
254
255
  end
255
256
 
@@ -344,6 +345,7 @@ module SensibleSwing
344
345
  'v' key: turn off subtitles.
345
346
  '.' key: step one frame.
346
347
  # key: change audio language track
348
+ [ and ] make playback faster
347
349
  EOL
348
350
  end
349
351
 
@@ -450,7 +452,7 @@ module SensibleSwing
450
452
  # 2 is cancel
451
453
  if returned == :no
452
454
  if license_url_should_also_be_embedded_by_you_in_message
453
- system_non_blocking("start #{license_url_should_also_be_embedded_by_you_in_message}")
455
+ system_non_blocking("start #{license_url_should_also_be_embedded_by_you_in_message}") # guess this is url's too, eh?
454
456
  puts "Please restart after reading license agreement, to be able to then accept it."
455
457
  end
456
458
  System.exit 0
@@ -532,20 +534,12 @@ module SensibleSwing
532
534
  Click ok to be directed to its download website, where you can download and install it (recommend: MPUI....Full-Package.exe),
533
535
  then restart sensible cinema. NB that it takes awhile to install. Sorry about that.",
534
536
  "Lacking dependency", JOptionPane::ERROR_MESSAGE)
535
- open_url_to_view_it_non_blocking "http://code.google.com/p/mulder/downloads/list?can=2&q=MPlayer&sort=-uploaded&colspec=Filename%20Summary%20Type%20Uploaded%20Size%20DownloadCount"
537
+ SwingHelpers.open_url_to_view_it_non_blocking "http://code.google.com/p/mulder/downloads/list?can=2&q=MPlayer&sort=-uploaded&colspec=Filename%20Summary%20Type%20Uploaded%20Size%20DownloadCount"
536
538
  System.exit 0
537
539
  end
538
540
  end
539
541
  end
540
542
 
541
- def open_url_to_view_it_non_blocking url
542
- if OS.windows?
543
- system_non_blocking("start #{url.gsub('&', '^&')}") # LODO would launchy help/work here with the full url?
544
- else
545
- system_non_blocking "#{OS.open_file_command} \"#{url}\"" # LODO test
546
- end
547
- end
548
-
549
543
  def open_file_to_edit_it filename, options = {} # :start_minimized
550
544
  if OS.windows?
551
545
  if options[:start_minimized]
@@ -560,7 +554,7 @@ module SensibleSwing
560
554
  end
561
555
 
562
556
  def new_nonexisting_filechooser_and_go title = nil, default_dir = nil, default_file = nil
563
- bring_to_front
557
+ bring_to_front # LODO not need...
564
558
  JFileChooser.new_nonexisting_filechooser_and_go title, default_dir, default_file
565
559
  end
566
560
 
@@ -573,7 +567,7 @@ module SensibleSwing
573
567
  def show_non_blocking_message_dialog message, close_button_text = 'Close'
574
568
  bring_to_front
575
569
  # lodo NonBlockingDialog it can get to the top instead of being so buried...
576
- NonBlockingDialog.new(message, close_button_text)
570
+ SwingHelpers.show_non_blocking_message_dialog message, close_button_text
577
571
  end
578
572
 
579
573
  include_class javax.swing.UIManager
@@ -602,62 +596,10 @@ module SensibleSwing
602
596
  SwingHelpers.show_in_explorer filename
603
597
  end
604
598
 
605
- def get_disk_chooser_window names
606
- GetDisk.new(self, names)
607
- end
608
-
609
- end
610
-
611
- class GetDisk < JDialog
612
- attr_reader :selected_idx
613
- def initialize parent, options_array
614
- super parent, true
615
-
616
- box = JComboBox.new
617
- box.add_action_listener do |e|
618
- idx = box.get_selected_index
619
- if idx != 0
620
- # don't count choosing the first as a real entry
621
- @selected_idx = box.get_selected_index - 1
622
- dispose
623
- end
624
- end
625
-
626
- box.add_item "Click to select DVD drive" # put something in index 0
627
- options_array.each{|drive|
628
- box.add_item drive
629
- }
630
- add box
631
- pack # how do you get this arbitrary size? what the...
632
- end
633
- end
634
- end
635
-
636
- # LODO move to sane :) also remove the andand dep.
637
- class String
638
- def present?
639
- length > 0
640
- end
641
- end
642
-
643
- class NilClass
644
- def present?
645
- false
646
- end
647
- end
648
- class Object
649
- def present?
650
- true
651
- end
652
- end
653
-
654
- class Array
655
- def present?
656
- length > 0
657
599
  end
600
+
658
601
  end
659
602
 
660
-
661
603
  class File
662
604
  def self.get_root_dir this_path
663
605
  this_path = File.expand_path this_path
@@ -76,18 +76,24 @@ module SensibleSwing
76
76
  add_to_beginning = "0.0"#get_user_input("How much time to subtract from the beginning of every subtitle entry (ex: (1:00,1:01) becomes (0:59,1:01))", "0.0")
77
77
  add_to_end = "0.0"#get_user_input("How much time to add to the end of every subtitle entry (ex: (1:00,1:04) becomes (1:00,1:05))", "0.0")
78
78
 
79
- @show_parse_instructions ||= show_blocking_message_dialog "Now enter some values which will adjust the .srt time signatures\nso that it matches the movie more precisely.\nWe also need these values to coordinate it with other devices that may have different timestamps.\nFor DVD playback this will be the timestamps mplayer shows within the console window [the mplayer unedited button]."
80
79
  open_file_to_edit_it srt_filename
81
80
  sleep 0.5 # let it open first
82
- bring_to_front
83
- start_text = get_user_input("enter the text from any subtitle entry near beginning [like \"Hello, welcome to our movie.\"]", "...")
84
- start_srt = get_user_input("enter beginning timestamp within the .srt file #{File.basename(srt_filename)[0..10]}... for \"#{start_text}\"", "00:00:00,000")
85
- start_movie_ts = get_user_input("enter beginning timestamp within the movie itself for said text", "0:00:00")
86
-
87
- end_text = get_user_input("enter the text from a subtitle entry far within or near the end of the movie", "...")
88
- end_srt = get_user_input("enter the beginning timestamps within the .srt for \"#{end_text}\"", "02:30:00,000")
89
- end_movie_ts = get_user_input("enter beginning timestamps within the movie itself for \"#{end_text}\"", "2:30:00.0 or 9000.0")
81
+ bring_to_front
82
+
83
+ if JOptionPane.show_select_buttons_prompt('Would you like to enter timing adjust information on the .srt file? [final pass should, even if it matches]') == :yes
84
+ start_text = get_user_input("enter the text from any subtitle entry near beginning [like \"Hello, welcome to our movie.\"]", "...")
85
+ start_srt = get_user_input("enter beginning timestamp within the .srt file #{File.basename(srt_filename)[0..10]}... for \"#{start_text}\"", "00:00:00,000")
86
+ start_movie_ts = get_user_input("enter beginning timestamp within the movie itself for said text", "0:00:00")
90
87
 
88
+ end_text = get_user_input("enter the text from a subtitle entry far within or near the end of the movie", "...")
89
+ end_srt = get_user_input("enter the beginning timestamps within the .srt for \"#{end_text}\"", "02:30:00,000")
90
+ end_movie_ts = get_user_input("enter beginning timestamps within the movie itself for \"#{end_text}\"", "2:30:00.0 or 9000.0")
91
+ else
92
+ start_srt = 0
93
+ start_movie_ts =0
94
+ end_srt = 1000
95
+ end_movie_ts = 1000
96
+ end
91
97
  parsed_profanities = SubtitleProfanityFinder.edl_output srt_filename, {}, add_to_beginning.to_f, add_to_end.to_f, start_srt, start_movie_ts, end_srt, end_movie_ts
92
98
  File.write EdlTempFile, "# add these into your mute section if you deem them mute-worthy\n" + parsed_profanities +
93
99
  %!\n\n#Also add these two lines for later coordination:\n"beginning_subtitle" => ["#{start_text}", "#{start_movie_ts}"],! +
@@ -316,7 +322,7 @@ module SensibleSwing
316
322
  # TODO auto-ify above, move docs to a file in documentation.
317
323
  filename = EdlParser::EDL_DIR + "/edls_being_edited/" + english_name.gsub(' ', '_') + '.txt'
318
324
  filename.downcase!
319
- File.write(filename, input) unless File.exist?(filename) # lodo let them choose name (?)
325
+ File.write(filename, input) unless File.exist?(filename)
320
326
  open_file_to_edit_it filename
321
327
  end
322
328
 
@@ -5,6 +5,7 @@ require 'sane'
5
5
  module SensibleSwing
6
6
 
7
7
  class MainWindow < javax.swing.JFrame
8
+
8
9
  def self.download full_url, to_here
9
10
  require 'open-uri'
10
11
  require 'openssl'
@@ -318,14 +318,11 @@ module SensibleSwing
318
318
 
319
319
  else
320
320
  dialog = get_disk_chooser_window names
321
- dialog.setSize 200, 125
322
- dialog.show
323
- selected_idx = dialog.selected_idx
321
+ selected_idx = dialog.go
324
322
  end
325
323
 
326
- if selected_idx
327
324
  if used_local_file_option
328
- raise unless selected_idx == 0 # it was our only option...
325
+ raise unless selected_idx == 0 # it was our only option...they must have selected it!
329
326
  filename = new_existing_file_selector_and_select_file("Select yer previously grabbed from DVD file")
330
327
  assert_ownership_dialog
331
328
  return [filename, File.basename(filename), NonDvd]
@@ -333,21 +330,21 @@ module SensibleSwing
333
330
  disk = opticals[selected_idx]
334
331
  out = show_non_blocking_message_dialog "calculating current disk's unique id...if this pauses more than 10s then clean your DVD..."
335
332
  begin
336
- dvd_id = DriveInfo.md5sum_disk(disk.MountPoint)
333
+ dvd_id = DriveInfo.md5sum_disk(disk.MountPoint)
337
334
  rescue Exception => e
338
- show_blocking_message_dialog e.to_s # todo a bit ugly...
339
- raise
340
- ensure
341
- out.dispose
342
- end
335
+ show_blocking_message_dialog e.to_s # todo a bit ugly...
336
+ raise
337
+ ensure
338
+ out.dispose
339
+ end
343
340
  @_choose_dvd_drive_or_file = [disk.MountPoint, opticals[selected_idx].VolumeName, dvd_id]
344
341
  return @_choose_dvd_drive_or_file
345
342
  end
346
- else
347
- raise 'did not select a drive...'
348
- end
349
343
  end
350
344
 
345
+ def get_disk_chooser_window names
346
+ DropDownSelector.new(self, names, "Click to select DVD drive")
347
+ end
351
348
 
352
349
  end
353
350
  end