sensible-cinema 0.24.7 → 0.24.8
Sign up to get free protection for your applications and to get access to all the features.
- 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
|