App-Music-PlayTab

 view release on metacpan or  search on metacpan

lib/App/Music/PlayTab/Output/PDF.pm  view on Meta::CPAN

	if ( $arg =~ /^media=(.*)$/ ) {
	    my $media = $1;
	    if ( $media eq "800x1280" ) {
		# 800x1280 Samsung Galaxy Note 10.1 tablet.
		@delta_values = ( -4, 2, 4 );
		$condensed  = 1;
		$ps->{fonts}->{chord} = $ps->{fonts}->{chord_cn};
		@mediabox = map { $_ * (72/150) } 80, 435, 800, 1280;
		$mediabox[2] += $mediabox[0];
		$mediabox[3] += $mediabox[1];
	    }
	    elsif ( $media =~ /^(ipad|960x1280)$/ ) {
		# 768x1024 iPad2.
		@delta_values = ( -7, 2, -10 );
		$condensed = 0;
		$ps->{fonts}->{chord} = $ps->{fonts}->{chord_cn};
		@mediabox = map { $_ * (72/150) } 70, 440, 960, 1280;
		$mediabox[2] += $mediabox[0];
		$mediabox[3] += $mediabox[1];
	    }
	    elsif ( $media eq "768x1024" ) {
		# 768x1024 iPad2.
		@delta_values = ( -12, 3, -10 );
		$ps->{fonts}->{chord} = $ps->{fonts}->{chord_cn};
		@mediabox = map { $_ * (72/150) } 90, 685, 768, 1024;
		$mediabox[2] += $mediabox[0];
		$mediabox[3] += $mediabox[1];
	    }
	    else {
		warn("PDF backend: Unrecognized media type: $media\n");
	    }
	    next;
	}
	if ( $arg eq "narrow" ) { #### IN PROGRESS
	    @delta_values = ( -4, 1, 4 );
	    $condensed = 1;
	    $ps->{fonts}->{chord} = $ps->{fonts}->{chord_cn};
	    @mediabox = map { $_ * (72/150) } 70, 440, 800, 1280;
	    $mediabox[2] += $mediabox[0];
	    $mediabox[3] += $mediabox[1];
	    next;
	}
	if ( $arg eq "condensed" ) {
	    $ps->{fonts}->{chord} = $ps->{fonts}->{chord_cn};
	    next;
	}
    }
}


# New page.
sub setuppage {
    my ( $self, $title, $stitles ) = @_;
    $self->pdf_page( 1, $title, $stitles );
    undef $barno;
}

sub finish {
    my $self = shift;
    return unless $pr;
    $self->{fh}->binmode;
    $self->{fh}->print( $pr->finish );
    undef $pr;
}

# New print line.
sub setupline {
    my ( $self, $line ) = @_;
    $xd = $delta_values[0] + ( $line->{width}  || 0 );
    $yd = $delta_values[1] + ( $line->{height} || 0 );
    $md = $delta_values[2] + ( $line->{margin} || 0 );
    $barno  = $line->{barno};
    if ( $condensed ) {
	$_ *= 0.7 for $xd, $md;
    }
}

sub bar {
    my ( $self, $first ) = @_;
    $self->checkvspace;
    $pr->vline( $x + $md, $y + 13, 16 );
    $pr->rtext( $x + $md - 2, $y + 9, $barno, $ps->{fonts}->{barno} )
      if $first && defined($barno);
    $x += 4;
}

sub chord {
    my ( $self, $chord, $dup ) = ( @_, 0 );
    if ( ref($chord) =~ /::/ ) {
	my $save_x = $x;
	my $save_y = $y;
	$chord->render;
	$x = $save_x + $xd;
	$y = $save_y;
	$self->{_prev_chord} = $chord;
    }
    elsif ( ref($chord) eq 'ARRAY' ) {
	my $fun = "render__" . shift(@$chord);
	$self->$fun( @$chord );
    }
    else {
	my $fun = "render__$chord";
	$self->$fun;
    }
    while ( $dup-- > 1 ) {
	$self->render__space;
    }
}

sub newline {
    my ( $self, $xtra ) = @_;
    $x = $ps->{marginleft};
    $y += $yd;
    $y += ($xtra-1)*$yd if defined $xtra;
}

sub text {
    my ( $self, $text, $xxmd, $font ) = @_;
    $font ||= $ps->{fonts}->{subtitle};
    $xxmd ||= 0;
    $self->checkvspace;



( run in 0.604 second using v1.01-cache-2.11-cpan-98e64b0badf )