sort customEvents just once
[HTML5TV.git] / bin / mplayer.pl
index 3fd6c68..9dd342d 100755 (executable)
@@ -163,6 +163,7 @@ sub html5tv {
                return;
        }
 
+       warn "html5tv";
 
        my $sync;
 
@@ -335,21 +336,22 @@ sub html5tv {
                )
        ;
 
-       sub customEvents_sorted {
-
-               if ( ref $html5tv->{sync}->{customEvents} ne 'ARRAY' ) {
-                       my $max = 
-                       warn "ERROR: no slide markers [1] .. [", scalar @slides_hires, "] in subtitles\n";
-                       return;
-               }
+       my @customEvents_sorted;
 
+       if ( ref $html5tv->{sync}->{customEvents} ne 'ARRAY' ) {
+               my $max = 
+               warn "ERROR: no slide markers [1] .. [", scalar @slides_hires, "] in subtitles\n";
+               return;
+       } else {
+               @customEvents_sorted =
                sort { $a->{startTime} <=> $b->{startTime} }
                @{ $html5tv->{sync}->{customEvents} }
+               ;
        }
 
        my $index = 1;
 
-       $_->{args}->{index} = $index++ foreach customEvents_sorted;
+       $_->{args}->{index} = $index++ foreach @customEvents_sorted;
 
        warn "last customEvent $index\n";
 
@@ -367,7 +369,7 @@ sub html5tv {
                                </tr>
                                |
                        }
-                       customEvents_sorted
+                       @customEvents_sorted
                )
                . qq|</table><a href="$media_dir/video.srt">download subtitles</a>|
                ;
@@ -492,6 +494,8 @@ sub t_srt {
        return $srt;
 }
 
+my @to_mplayer;
+
 sub save_subtitles {
 
        html5tv || return;
@@ -509,9 +513,11 @@ sub save_subtitles {
        write_file $subtitles, $srt;
        YAML::DumpFile "$subtitles.yaml", sort { $a->[0] <=> $b->[0] } @subtitles;
 
-       print $to_mplayer "sub_remove\n";
-       print $to_mplayer qq|sub_load "$subtitles"\n|;
-       print $to_mplayer "sub_select 1\n";
+       push @to_mplayer
+               , "sub_remove\n"
+               , qq|sub_load "$subtitles"\n|
+               , "sub_select 1\n"
+               ;
 }
 
 sub load_subtitles {
@@ -676,7 +682,7 @@ sub from_mplayer {
 
 }
 
-print $to_mplayer "get_property $_\n" foreach grep { ! $prop->{$_} } ( qw/metadata video_codec video_bitrate width height fps length/ );
+push @to_mplayer, "get_property $_\n" foreach grep { ! $prop->{$_} } ( qw/metadata video_codec video_bitrate width height fps length/ );
 
 my $t = time;
 my $line;
@@ -705,5 +711,10 @@ warn "dt $dt\n";
                }
        }
 
+       if ( my $cmd = shift @to_mplayer ) {
+               warn ">>>> $cmd\n";
+               print $to_mplayer $cmd;
+       }
+
 }