1 package HTML5TV::Slides;
10 use Data::Dump qw/dump/;
21 my ( $self, $nr ) = @_;
23 if ( $self->{last_nr} == $nr ) {
24 $self->{app}->sync if $self->{app};
28 $self->{last_nr} = $nr;
32 my $n_a = $1 if $a =~ m{(\d+)};
33 my $n_b = $1 if $b =~ m{(\d+)};
34 $n_a <=> $n_b || $a cmp $b
35 } glob("media/_editing/s/1/*")
38 my $slide = SDL::Surface->new( -name => $subtitles[0] );
39 my $w = $slide->width;
40 my $h = $slide->height;
42 my @factors = ( qw/ 4 4 4 4 1 2 2 4 4 4 4 / );
44 my ( $x, $y ) = ( 0, 0 );
46 my $background = SDL::Color->new( -r => 0x11, -g => 0x11, -b => 0x33 );
48 foreach my $i ( 0 .. $#factors ) {
50 my $factor = $factors[$i] || die "no factor $i in ",dump @factors;
52 my $to = SDL::Rect->new(
53 -width => $w / $factor,
54 -height => $h / $factor,
59 my $pos = $nr + $i - 5;
63 $slide->fill( $to, $background );
67 my $path = $subtitles[ $pos ];
68 $path =~ s{/s/[124]/}{/s/$factor/};
70 my $slide = SDL::Surface->new( -name => $path );
72 my $rect = SDL::Rect->new(
73 -width => $slide->width(),
74 -height => $slide->height(),
79 # warn "$x $y $path\n";
81 if ( ! $self->{app} ) {
83 $self->{app} = SDL::App->new(
92 $slide->blit( $rect, $self->{app}, $to );
96 $self->{app}->update( $to ) if $self->{app};