sensible-cinema 0.24.7 → 0.24.8
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/VERSION +1 -1
- data/bin/sensible-cinema +79 -65
- data/change_log_with_feature_list.txt +4 -0
- data/spec/sensible_cinema_gui.spec.rb +58 -26
- metadata +1 -1
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.24.
|
|
1
|
+
0.24.8
|
data/bin/sensible-cinema
CHANGED
|
@@ -131,32 +131,40 @@ module SensibleSwing
|
|
|
131
131
|
LocalStorage = Storage.new("sensible_cinema_storage")
|
|
132
132
|
LocalStorage.set_default('screen_multiples', 1.5) # high compatibility :)
|
|
133
133
|
|
|
134
|
+
def close_when_done thread, jitem
|
|
135
|
+
if jitem
|
|
136
|
+
Thread.new { thread.join; jitem.dispose }
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
|
|
134
140
|
def setup_upconvert_buttons
|
|
135
141
|
|
|
136
142
|
@watch_file_upconvert = new_jbutton( "Watch a movie file upconverted (unedited)") do
|
|
137
|
-
warn_if_no_upconvert_options_currently_selected
|
|
143
|
+
popup = warn_if_no_upconvert_options_currently_selected
|
|
138
144
|
filename_mpg = new_existing_file_selector_and_select_file( "pick movie file (like moviename.mpg)")
|
|
139
|
-
|
|
140
|
-
|
|
145
|
+
thread = play_mplayer_edl_non_blocking [filename_mpg, nil]
|
|
146
|
+
close_when_done(thread, popup)
|
|
147
|
+
end
|
|
148
|
+
@watch_file_upconvert.tool_tip= "This plays back a movie file, like moviefile.mpg, or moviename.vob using your current upconverter settings.\nTo playback a file edited upconverted, set upconvert options here first, then run them using sensible cinema main--it will automatically use your new upconverting options.\n" # LODO
|
|
141
149
|
|
|
142
150
|
@watch_dvd_upconvert = new_jbutton( "Watch a DVD upconverted (unedited)") do
|
|
143
|
-
warn_if_no_upconvert_options_currently_selected
|
|
144
|
-
play_dvd_smplayer_unedited false, false
|
|
151
|
+
popup = warn_if_no_upconvert_options_currently_selected
|
|
152
|
+
thread = play_dvd_smplayer_unedited false, false
|
|
153
|
+
close_when_done(thread, popup)
|
|
145
154
|
end
|
|
146
155
|
@watch_dvd_upconvert.tool_tip = "Plays back the currently inserted DVD, using your current upconverter settings.\nIf it fails (dies immediately, blank screen, etc.), try setting upconvert options to a smaller screen resolution multiple.\nOr try playing the DVD with VLC first, then it might work.\nTo playback a DVD edited upconverted, set upconvert options here first, then run them using sensible cinema main--it will automatically use your new upconverting options."
|
|
147
156
|
|
|
157
|
+
add_text_line ''
|
|
148
158
|
@upconv_line = add_text_line ''
|
|
149
159
|
change_upconvert_line_to_current
|
|
150
160
|
|
|
151
|
-
add_text_line ''
|
|
152
161
|
add_change_upconvert_options_button
|
|
153
|
-
add_text_line "Note that sensible cinema will also upconvert when it plays back edited DVD's/files."
|
|
154
162
|
add_text_line ''
|
|
155
163
|
|
|
156
164
|
end
|
|
157
165
|
|
|
158
166
|
def add_change_upconvert_options_button
|
|
159
|
-
@show_upconvert_options = new_jbutton("
|
|
167
|
+
@show_upconvert_options = new_jbutton("Change Upconvert Options") do
|
|
160
168
|
add_setup_upconvert_buttons
|
|
161
169
|
end
|
|
162
170
|
@show_upconvert_options.tool_tip= "Allows you to set your upconvert options.\nUpconverting attempts to playback your movie with higher quality on high resolution monitors."
|
|
@@ -192,15 +200,15 @@ module SensibleSwing
|
|
|
192
200
|
|
|
193
201
|
|
|
194
202
|
def add_setup_upconvert_buttons
|
|
195
|
-
none = new_jbutton("reset upconvert options to default (none)")
|
|
196
|
-
none.tool_tip = "Having no upconvert options is reasonably good, might use directx for scaling, nice for slow cpu's"
|
|
197
|
-
none.on_clicked {
|
|
203
|
+
@none = new_jbutton("reset upconvert options to default (none)")
|
|
204
|
+
@none.tool_tip = "Having no upconvert options is reasonably good, might use directx for scaling, nice for slow cpu's"
|
|
205
|
+
@none.on_clicked {
|
|
198
206
|
LocalStorage[UpConvertKey] = nil
|
|
199
207
|
LocalStorage[UpConvertKeyExtra] = nil
|
|
200
208
|
LocalStorage[UpConvertEnglish] = nil
|
|
201
209
|
display_current_upconvert_setting
|
|
202
210
|
}
|
|
203
|
-
medium_dvd = new_jbutton("Change upconvert options to DVD-style video") {
|
|
211
|
+
@medium_dvd = new_jbutton("Change upconvert options to DVD-style video") {
|
|
204
212
|
LocalStorage[UpConvertKey] = "hqdn3d=0:1:4:4,scale=SCREEN_X:-10:0:0:2"
|
|
205
213
|
# hqdn3d[=luma_spatial:chroma_spatial:luma_tmp:chroma_tmp]
|
|
206
214
|
LocalStorage[UpConvertKeyExtra] = "-sws 9 -ssf ls=75.0 -ssf cs=7.0"
|
|
@@ -268,7 +276,7 @@ module SensibleSwing
|
|
|
268
276
|
if new_value != old_value
|
|
269
277
|
display_current_upconvert_setting
|
|
270
278
|
if slider.value == label_minimum
|
|
271
|
-
show_blocking_message_dialog "Setting it too low like that might make it not
|
|
279
|
+
show_blocking_message_dialog "Setting it too low like that might make it not do much upconverting (DVD's, are 720px)"
|
|
272
280
|
end
|
|
273
281
|
end
|
|
274
282
|
end
|
|
@@ -280,16 +288,15 @@ module SensibleSwing
|
|
|
280
288
|
|
|
281
289
|
def display_current_upconvert_setting
|
|
282
290
|
change_upconvert_line_to_current
|
|
283
|
-
|
|
284
|
-
@display_current_upconvert_setting_dialog = show_non_blocking_message_dialog get_current_upconvert_as_phrase
|
|
285
|
-
p get_current_upconvert_as_phrase
|
|
291
|
+
show_non_blocking_message_dialog get_current_upconvert_as_phrase
|
|
286
292
|
end
|
|
287
293
|
|
|
288
294
|
def get_current_upconvert_as_phrase
|
|
289
295
|
settings = LocalStorage[UpConvertEnglish]
|
|
290
296
|
out = "Upconvert options currently #{ settings ? "are set to #{settings} style" : "are NOT SET"}"
|
|
291
297
|
if settings
|
|
292
|
-
|
|
298
|
+
multiple = LocalStorage['screen_multiples']
|
|
299
|
+
out += " (screen multiplier #{multiple} = #{(multiple * get_current_max_width_resolution).to_i}px)."
|
|
293
300
|
end
|
|
294
301
|
out
|
|
295
302
|
end
|
|
@@ -304,10 +311,11 @@ module SensibleSwing
|
|
|
304
311
|
# choose width of widest monitor (why would they display it on the other?)
|
|
305
312
|
screen_multiple = LocalStorage['screen_multiples']
|
|
306
313
|
upc = template.gsub('SCREEN_X', (get_current_max_width_resolution*screen_multiple).to_i.to_s) # has to be an integer...
|
|
314
|
+
upc = 'pullup,softskip,' + upc
|
|
307
315
|
p 'using upconvert settings ' + upc
|
|
308
|
-
|
|
316
|
+
upc
|
|
309
317
|
else
|
|
310
|
-
p 'not using any upconversion'
|
|
318
|
+
p 'not using any specific upconversion'
|
|
311
319
|
# TODO not for straight mplayer [?] tangled fails mac
|
|
312
320
|
if OS.mac?
|
|
313
321
|
'' # avoid odd message try appending the scale filter <sigh> I don't *want* the scale filter with no upconversion gah.
|
|
@@ -512,7 +520,7 @@ module SensibleSwing
|
|
|
512
520
|
@mplayer_edl = new_jbutton( "Watch DVD edited (realtime)")
|
|
513
521
|
@mplayer_edl.tool_tip = "This will watch your DVD in realtime from your computer while skipping/muting questionable scenes."
|
|
514
522
|
@mplayer_edl.on_clicked {
|
|
515
|
-
|
|
523
|
+
play_mplayer_edl_non_blocking
|
|
516
524
|
}
|
|
517
525
|
|
|
518
526
|
@create = new_jbutton( "Create edited copy of DVD/file on Your Hard Drive" )
|
|
@@ -539,6 +547,11 @@ module SensibleSwing
|
|
|
539
547
|
end
|
|
540
548
|
|
|
541
549
|
add_change_upconvert_options_button
|
|
550
|
+
|
|
551
|
+
@progress_bar = JProgressBar.new(0, 100)
|
|
552
|
+
@progress_bar.set_bounds(44,@starting_button_y,@button_width,23)
|
|
553
|
+
@progress_bar.visible = false
|
|
554
|
+
@panel.add @progress_bar
|
|
542
555
|
|
|
543
556
|
end
|
|
544
557
|
|
|
@@ -566,7 +579,7 @@ module SensibleSwing
|
|
|
566
579
|
raise unless File.exist?(output_file)
|
|
567
580
|
show_blocking_message_dialog("created #{output_file}")
|
|
568
581
|
else
|
|
569
|
-
|
|
582
|
+
play_mplayer_edl_non_blocking [filename_mpg, edl_filename]
|
|
570
583
|
end
|
|
571
584
|
end
|
|
572
585
|
|
|
@@ -579,11 +592,10 @@ module SensibleSwing
|
|
|
579
592
|
force_accept_license_first
|
|
580
593
|
|
|
581
594
|
setDefaultCloseOperation JFrame::EXIT_ON_CLOSE
|
|
582
|
-
panel = JPanel.new
|
|
583
|
-
@panel = panel
|
|
595
|
+
@panel = JPanel.new
|
|
584
596
|
@buttons = []
|
|
585
|
-
panel.set_layout nil
|
|
586
|
-
add panel # why can't I just slap these down? panel? huh?
|
|
597
|
+
@panel.set_layout nil
|
|
598
|
+
add @panel # why can't I just slap these down? panel? huh?
|
|
587
599
|
@starting_button_y = 40
|
|
588
600
|
@button_width = 400
|
|
589
601
|
|
|
@@ -593,6 +605,13 @@ module SensibleSwing
|
|
|
593
605
|
add_text_line ""
|
|
594
606
|
add_text_line ""
|
|
595
607
|
|
|
608
|
+
setIconImage(ImageIcon.new(__DIR__ + "/../vendor/profs.png").getImage())
|
|
609
|
+
check_for_various_dependencies
|
|
610
|
+
end
|
|
611
|
+
|
|
612
|
+
|
|
613
|
+
def setup_default_buttons
|
|
614
|
+
|
|
596
615
|
if we_are_in_upconvert_mode
|
|
597
616
|
setup_upconvert_buttons
|
|
598
617
|
else
|
|
@@ -609,16 +628,10 @@ module SensibleSwing
|
|
|
609
628
|
system_non_blocking("start mailto:sensible-cinema@googlegroups.com")
|
|
610
629
|
system_non_blocking("start http://groups.google.com/group/sensible-cinema")
|
|
611
630
|
}
|
|
612
|
-
|
|
613
|
-
@progress_bar = JProgressBar.new(0, 100)
|
|
614
|
-
@progress_bar.set_bounds(44,@starting_button_y,@button_width,23)
|
|
615
|
-
@progress_bar.visible = false
|
|
616
|
-
panel.add @progress_bar
|
|
617
|
-
|
|
618
631
|
increment_button_location
|
|
619
632
|
|
|
620
633
|
end
|
|
621
|
-
|
|
634
|
+
|
|
622
635
|
@exit = new_jbutton("Exit", "Exits the application and kills any background processes that are running at all--don't exit unless you are done processing all the way!")
|
|
623
636
|
@exit.on_clicked {
|
|
624
637
|
Thread.new { self.close } # don't waste the time to close it :P
|
|
@@ -628,9 +641,8 @@ module SensibleSwing
|
|
|
628
641
|
|
|
629
642
|
increment_button_location
|
|
630
643
|
increment_button_location
|
|
644
|
+
self
|
|
631
645
|
|
|
632
|
-
setIconImage(ImageIcon.new(__DIR__ + "/../vendor/profs.png").getImage())
|
|
633
|
-
check_for_various_dependencies
|
|
634
646
|
end
|
|
635
647
|
|
|
636
648
|
def run_smplayer_non_blocking *args
|
|
@@ -699,6 +711,7 @@ module SensibleSwing
|
|
|
699
711
|
conf_file = conf_file[2..-1] # strip off drive letter, which it doesn't seem to like no sir
|
|
700
712
|
end
|
|
701
713
|
extra_options += " -fs " # full screen
|
|
714
|
+
|
|
702
715
|
upconv = get_upconvert_vf_settings
|
|
703
716
|
upconv = "-vf #{upconv}" if upconv.present?
|
|
704
717
|
c = "mplayer #{extra_options} #{upconv} -input conf=\"#{conf_file}\" \"#{play_this}\" "
|
|
@@ -706,8 +719,8 @@ module SensibleSwing
|
|
|
706
719
|
if OS.windows?
|
|
707
720
|
extra_options += " -vo direct3d " # more light nvidia...should be ok...
|
|
708
721
|
end
|
|
709
|
-
|
|
710
|
-
c = "smplayer_portable \"#{play_this}\" -fullscreen -config-path \"#{File.dirname
|
|
722
|
+
set_smplayer_opts extra_options, get_upconvert_vf_settings, show_subs
|
|
723
|
+
c = "smplayer_portable \"#{play_this}\" -fullscreen -config-path \"#{File.dirname SMPlayerIniFile}\" "
|
|
711
724
|
if !we_are_in_create_mode
|
|
712
725
|
#c += " -close-at-end "
|
|
713
726
|
end
|
|
@@ -716,25 +729,27 @@ module SensibleSwing
|
|
|
716
729
|
system_blocking c
|
|
717
730
|
end
|
|
718
731
|
|
|
719
|
-
|
|
732
|
+
SMPlayerIniFile = File.expand_path("~/.smplayer/smplayer.ini")
|
|
733
|
+
|
|
734
|
+
def set_smplayer_opts to_this, video_, show_subs = false
|
|
720
735
|
p 'set smplayer extra opts to this:' + to_this
|
|
721
|
-
|
|
722
|
-
old_prefs
|
|
723
|
-
|
|
736
|
+
old_prefs = File.read(SMPlayerIniFile) rescue ''
|
|
737
|
+
unless old_prefs.length > 0
|
|
738
|
+
# LODO double check the rest here...
|
|
724
739
|
old_prefs = "[advanced]\nmplayer_additional_options=\nmplayer_additional_video_filters=\n[subtitles]\nautoload_sub=false\n[performance]\npriority=3"
|
|
725
740
|
end
|
|
726
741
|
raise to_this if to_this =~ /"/ # unexpected, unfortunately... <smplayer bug>
|
|
727
|
-
new_prefs = old_prefs.gsub(/mplayer_additional_options=.*/, "mplayer_additional_options=#{to_this}")
|
|
728
|
-
new_prefs.gsub!(/autoload_sub=.*$/, "autoload_sub=#{show_subs.to_s}")
|
|
729
|
-
|
|
742
|
+
assert new_prefs = old_prefs.gsub(/mplayer_additional_options=.*/, "mplayer_additional_options=#{to_this}")
|
|
743
|
+
assert new_prefs.gsub!(/autoload_sub=.*$/, "autoload_sub=#{show_subs.to_s}")
|
|
744
|
+
raise if get_upconvert_vf_settings =~ /"/
|
|
745
|
+
assert new_prefs.gsub!(/mplayer_additional_video_filters=.*$/, "mplayer_additional_video_filters=\"#{get_upconvert_vf_settings}\"")
|
|
730
746
|
new_prefs.gsub!(/priority=.*$/, "priority=3") # normal priority...scary otherwise! lodo tell smplayer...
|
|
731
|
-
|
|
732
747
|
# enable dvdnav navigation, just for kicks I guess.
|
|
733
748
|
new_prefs.gsub!(/use_dvdnav=.*$/, "use_dvdnav=true")
|
|
734
749
|
|
|
735
|
-
FileUtils.mkdir_p File.dirname(
|
|
736
|
-
File.write(
|
|
737
|
-
|
|
750
|
+
FileUtils.mkdir_p File.dirname(SMPlayerIniFile) # case it doesn't yet exist
|
|
751
|
+
File.write(SMPlayerIniFile, new_prefs)
|
|
752
|
+
new_prefs.each_line{|l| print l if l =~ /additional_video/}
|
|
738
753
|
end
|
|
739
754
|
|
|
740
755
|
def create_brand_new_edl
|
|
@@ -852,7 +867,7 @@ module SensibleSwing
|
|
|
852
867
|
MplayerBeginingBuffer = 1.0
|
|
853
868
|
MplayerEndBuffer = 0.0
|
|
854
869
|
|
|
855
|
-
def
|
|
870
|
+
def play_mplayer_edl_non_blocking optional_file_with_edl_path = nil
|
|
856
871
|
extra_mplayer_commands = []
|
|
857
872
|
if optional_file_with_edl_path
|
|
858
873
|
drive_or_file, edl_path = optional_file_with_edl_path
|
|
@@ -861,8 +876,12 @@ module SensibleSwing
|
|
|
861
876
|
drive_or_file, dvd_volume_name, dvd_id, edl_path, descriptors = choose_dvd_or_file_and_edl_for_it
|
|
862
877
|
end
|
|
863
878
|
start_add_this_to_all_ts = 0
|
|
864
|
-
|
|
865
|
-
|
|
879
|
+
if edl_path # some don't care...
|
|
880
|
+
descriptors = EdlParser.parse_file edl_path
|
|
881
|
+
title_track = get_title_track(descriptors)
|
|
882
|
+
splits = descriptors['mplayer_dvd_splits']
|
|
883
|
+
end
|
|
884
|
+
|
|
866
885
|
if dvd_id == NonDvd
|
|
867
886
|
# check if starts offset...
|
|
868
887
|
all = `ffmpeg -i "#{drive_or_file}" 2>&1`
|
|
@@ -874,24 +893,20 @@ module SensibleSwing
|
|
|
874
893
|
maybe not compatible with XBMC, if that's what you use, and you probably don't" # TODO test it XBMC...
|
|
875
894
|
start_add_this_to_all_ts = start
|
|
876
895
|
end
|
|
896
|
+
splits = []
|
|
877
897
|
else
|
|
878
|
-
using_dvd = true
|
|
879
|
-
end
|
|
880
|
-
if using_dvd
|
|
881
|
-
splits = descriptors['mplayer_dvd_splits']
|
|
882
898
|
if splits == nil
|
|
883
899
|
show_blocking_message_dialog("warning: edit list does not contain mplayer replay information [mplayer_dvd_splits] so edits past a certain time period might not won't work ( http://goo.gl/yMfqX ).")
|
|
884
900
|
splits = []
|
|
885
901
|
end
|
|
886
|
-
splits.map!{|s| EdlParser.translate_string_to_seconds(s) }
|
|
887
|
-
else
|
|
888
|
-
splits = []
|
|
889
902
|
end
|
|
890
|
-
edl_contents = MplayerEdl.convert_to_edl descriptors, add_secs_end = MplayerEndBuffer, MplayerBeginingBuffer, splits, start_add_this_to_all_ts # add a sec to mutes to accomodate for mplayer's oddness..
|
|
891
|
-
File.write(EdlTempFile, edl_contents)
|
|
892
903
|
|
|
893
|
-
|
|
894
|
-
|
|
904
|
+
if edl_path
|
|
905
|
+
splits.map!{|s| EdlParser.translate_string_to_seconds(s) }
|
|
906
|
+
edl_contents = MplayerEdl.convert_to_edl descriptors, add_secs_end = MplayerEndBuffer, add_secs_begin = MplayerBeginingBuffer, splits, start_add_this_to_all_ts # add a sec to mutes to accomodate for mplayer's oddness..
|
|
907
|
+
File.write(EdlTempFile, edl_contents)
|
|
908
|
+
extra_mplayer_commands << "-edl #{File.expand_path EdlTempFile}"
|
|
909
|
+
end
|
|
895
910
|
|
|
896
911
|
run_smplayer_non_blocking drive_or_file, title_track, extra_mplayer_commands.join(' '), false
|
|
897
912
|
end
|
|
@@ -1309,10 +1324,8 @@ module SensibleSwing
|
|
|
1309
1324
|
popup = show_non_blocking_message_dialog(popup_message, "OK")
|
|
1310
1325
|
|
|
1311
1326
|
# allow our popups to still be serviced while it is running
|
|
1312
|
-
@background_thread = Thread.new {
|
|
1313
|
-
|
|
1314
|
-
popup.dispose
|
|
1315
|
-
}
|
|
1327
|
+
@background_thread = Thread.new { run_batch_file_commands_and_use_output_somehow commands, save_to, file_from, run_mplayer }
|
|
1328
|
+
close_when_done(@background_thread, popup)
|
|
1316
1329
|
# LODO warn if they will overwrite a file in the end...
|
|
1317
1330
|
end
|
|
1318
1331
|
|
|
@@ -1496,6 +1509,7 @@ if $0 == __FILE__
|
|
|
1496
1509
|
EOL
|
|
1497
1510
|
else
|
|
1498
1511
|
a = SensibleSwing::MainWindow.new
|
|
1512
|
+
a.setup_default_buttons
|
|
1499
1513
|
a.set_visible true
|
|
1500
1514
|
puts 'Please use the Sensible Cinema GUI window popup...'
|
|
1501
1515
|
if ARGV.index('--exit-immediately')
|
|
@@ -115,7 +115,7 @@ module SensibleSwing
|
|
|
115
115
|
|
|
116
116
|
before do
|
|
117
117
|
ARGV << "--create-mode" # want all the buttons for some tests.
|
|
118
|
-
@subject = MainWindow.new
|
|
118
|
+
@subject = MainWindow.new.setup_default_buttons
|
|
119
119
|
ARGV.pop
|
|
120
120
|
FileUtils.touch "selected_file.fulli_unedited.tmp.mpg.done" # a few of them need this...
|
|
121
121
|
FileUtils.touch 'selected_file.avi'
|
|
@@ -252,24 +252,24 @@ module SensibleSwing
|
|
|
252
252
|
join_background_thread
|
|
253
253
|
@get_mencoder_commands_args[-2].should == "2"
|
|
254
254
|
@get_mencoder_commands_args[-3].should == "01:00"
|
|
255
|
-
if OS.doze?
|
|
256
|
-
@system_blocking_command.should =~ /smplayer/
|
|
257
|
-
else
|
|
258
|
-
@system_blocking_command.should =~ /mplayer/
|
|
259
|
-
end
|
|
260
255
|
@system_blocking_command.should_not match /fulli/
|
|
261
256
|
end
|
|
257
|
+
|
|
258
|
+
def assert_played_mplayer
|
|
259
|
+
Thread.join_all_others
|
|
260
|
+
if OS.doze?
|
|
261
|
+
@system_blocking_command.should =~ /smplayer/
|
|
262
|
+
else
|
|
263
|
+
@system_blocking_command.should =~ /mplayer/
|
|
264
|
+
end
|
|
265
|
+
end
|
|
262
266
|
|
|
263
267
|
def run_preview_section_button_successfully
|
|
264
268
|
click_button(:@preview_section)
|
|
265
269
|
join_background_thread
|
|
266
270
|
@get_mencoder_commands_args[-2].should == "2"
|
|
267
271
|
@get_mencoder_commands_args[-3].should == "01:00"
|
|
268
|
-
|
|
269
|
-
@system_blocking_command.should match /smplayer/
|
|
270
|
-
else
|
|
271
|
-
@system_blocking_command.should match /mplayer/
|
|
272
|
-
end
|
|
272
|
+
assert_played_mplayer
|
|
273
273
|
end
|
|
274
274
|
|
|
275
275
|
it "should prompt for start and end times" do
|
|
@@ -295,12 +295,7 @@ module SensibleSwing
|
|
|
295
295
|
|
|
296
296
|
it "should do something for fast preview" do
|
|
297
297
|
click_button(:@fast_preview)
|
|
298
|
-
|
|
299
|
-
@system_blocking_command.should =~ /smplayer/
|
|
300
|
-
else
|
|
301
|
-
@system_blocking_command.should =~ /mplayer/
|
|
302
|
-
end
|
|
303
|
-
|
|
298
|
+
assert_played_mplayer
|
|
304
299
|
end
|
|
305
300
|
|
|
306
301
|
it "should be able to rerun the latest start and end times with the rerun button" do
|
|
@@ -311,7 +306,7 @@ module SensibleSwing
|
|
|
311
306
|
click_button(:@rerun_preview).join
|
|
312
307
|
@get_mencoder_commands_args.should == old_args
|
|
313
308
|
join_background_thread
|
|
314
|
-
|
|
309
|
+
assert_played_mplayer
|
|
315
310
|
end
|
|
316
311
|
|
|
317
312
|
it "should not die if you pass it the same start and end time frames--graceful acceptance" do
|
|
@@ -517,17 +512,17 @@ module SensibleSwing
|
|
|
517
512
|
end
|
|
518
513
|
|
|
519
514
|
it "should show additional buttons in create mode" do
|
|
520
|
-
MainWindow.new.buttons.length.should be > 3
|
|
521
|
-
MainWindow.new.buttons.length.should be < 10
|
|
522
|
-
old_length = MainWindow.new.buttons.length
|
|
515
|
+
MainWindow.new.setup_default_buttons.buttons.length.should be > 3
|
|
516
|
+
MainWindow.new.setup_default_buttons.buttons.length.should be < 10
|
|
517
|
+
old_length = MainWindow.new.setup_default_buttons.buttons.length
|
|
523
518
|
ARGV << "--create-mode"
|
|
524
|
-
MainWindow.new.buttons.length.should be > (old_length + 5)
|
|
519
|
+
MainWindow.new.setup_default_buttons.buttons.length.should be > (old_length + 5)
|
|
525
520
|
ARGV.pop # post-test cleanup--why not :)
|
|
526
521
|
end
|
|
527
522
|
|
|
528
523
|
it "should show upconvert buttons" do
|
|
529
524
|
ARGV << "--upconvert-mode"
|
|
530
|
-
MainWindow.new.buttons.length.should be > 3
|
|
525
|
+
MainWindow.new.setup_default_buttons.buttons.length.should be > 3
|
|
531
526
|
ARGV.pop
|
|
532
527
|
end
|
|
533
528
|
|
|
@@ -536,7 +531,7 @@ module SensibleSwing
|
|
|
536
531
|
MplayerEdl.stub(:convert_to_edl) do |d,s,s2,splits|
|
|
537
532
|
splits1 = splits
|
|
538
533
|
end
|
|
539
|
-
@subject.
|
|
534
|
+
@subject.play_mplayer_edl_non_blocking
|
|
540
535
|
splits1.should == []
|
|
541
536
|
end
|
|
542
537
|
|
|
@@ -546,7 +541,7 @@ module SensibleSwing
|
|
|
546
541
|
@subject.stub!(:choose_dvd_drive_or_file) {
|
|
547
542
|
["mock_dvd_drive", "mockVolume", "abcdef1234"]
|
|
548
543
|
}
|
|
549
|
-
@subject.
|
|
544
|
+
@subject.play_mplayer_edl_non_blocking
|
|
550
545
|
@show_blocking_message_dialog_last_arg.should =~ /does not contain mplayer replay information \[mplayer_dvd_splits\]/
|
|
551
546
|
end
|
|
552
547
|
end
|
|
@@ -580,7 +575,44 @@ module SensibleSwing
|
|
|
580
575
|
assert prompted
|
|
581
576
|
end
|
|
582
577
|
|
|
578
|
+
it "should be able to upconvert at all" do
|
|
579
|
+
ARGV << "--upconvert-mode"
|
|
580
|
+
@subject = MainWindow.new.setup_default_buttons
|
|
581
|
+
ARGV.pop
|
|
582
|
+
click_button(:@show_upconvert_options) # reveal buttons...
|
|
583
|
+
@subject.stub(:display_current_upconvert_setting) {} # no popup ;)
|
|
584
|
+
@subject.stub(:show_mplayer_instructions_once) {}
|
|
585
|
+
click_button(:@medium_dvd)
|
|
586
|
+
storage = MainWindow::LocalStorage
|
|
587
|
+
key = MainWindow::UpConvertKey
|
|
588
|
+
storage[key].should =~ /hqdn3d/
|
|
589
|
+
click_button(:@none)
|
|
590
|
+
storage[key].should be_nil
|
|
591
|
+
click_button(:@medium_dvd)
|
|
592
|
+
|
|
593
|
+
# now it should use them on mplayer
|
|
594
|
+
got = nil
|
|
595
|
+
@subject.stub(:system_blocking) { |c|
|
|
596
|
+
got = c
|
|
597
|
+
}
|
|
598
|
+
@subject.run_smplayer_blocking 'selected_file.avi', nil, "", true
|
|
599
|
+
assert got =~ /hqdn3d/
|
|
600
|
+
|
|
601
|
+
# and on smplayer
|
|
602
|
+
MainWindow::SMPlayerIniFile.gsub!(/^.*$/, File.expand_path('./smplayer_ini_file')) # don't overwrite the real one...
|
|
603
|
+
@subject.run_smplayer_blocking 'selected_file.avi', nil, "", false
|
|
604
|
+
assert got =~ /mplayer/
|
|
605
|
+
assert File.read(MainWindow::SMPlayerIniFile) =~ /hqdn3d/
|
|
606
|
+
end
|
|
607
|
+
|
|
608
|
+
it "should be able to play upconverted stuff" do
|
|
609
|
+
@subject.setup_upconvert_buttons
|
|
610
|
+
click_button(:@watch_file_upconvert)
|
|
611
|
+
assert_played_mplayer
|
|
612
|
+
click_button(:@watch_dvd_upconvert)
|
|
613
|
+
assert_played_mplayer
|
|
614
|
+
end
|
|
583
615
|
|
|
584
|
-
|
|
616
|
+
end # describe MainWindow
|
|
585
617
|
|
|
586
618
|
end
|