Image::ANSIMation::Parser - Reads in ANSI animation (ANSIMation) files


Image-ANSI documentation Contained in the Image-ANSI distribution.

Index


Code Index:

NAME

Top

Image::ANSIMation::Parser - Reads in ANSI animation (ANSIMation) files

SYNOPSIS

Top

	my $parser = Image::ANSIMation::Parser->new;
	my $anim   = $parser->parse( file => 'file.ans' );

DESCRIPTION

Top

This parser inherits from the regular Image::ANSI::Parser. The only extra functionality it adds in the ability to store frames.

METHODS

Top

set_position( $x, $y )

Sets the cursor position. If we're resetting it to (1, 1) we consider that a new frame.

parse( %options )

Parses a file and returns the ansimation.

store_frame( )

Stores the value of $self-<gtansi> as the next frame and resets the current ansi.

AUTHOR

Top

* Brian Cassidy <bricas@cpan.org>

COPYRIGHT AND LICENSE

Top


Image-ANSI documentation Contained in the Image-ANSI distribution.
package Image::ANSIMation::Parser;

use base qw( Image::ANSI::Parser Class::Accessor );

use strict;
use warnings;

use Image::ANSI;
use Image::ANSIMation;

our $VERSION = '0.10';

__PACKAGE__->mk_accessors( qw( ansimation ) );

sub set_position {
	my $self = shift;

	if( $_[ 0 ] == 1 && $_[ 1 ] == 1 ) {
		$self->store_frame;
	}

	$self->SUPER::set_position( @_ );
}

sub parse {
	my $self = shift;
	$self->ansimation( undef );
	$self->SUPER::parse( @_ );
	$self->store_frame;
	return $self->ansimation;
}

sub store_frame {
	my $self       = shift;
	my $ansimation = $self->ansimation;

	unless( defined $ansimation ) {
		$ansimation = Image::ANSIMation->new;
		$self->ansimation( $ansimation );
	}

	return unless $self->ansi->height > 0;

	$ansimation->add_frame( $self->ansi );
	$self->ansi( Image::ANSI->new );
}

1;