+++ /dev/null
-package Font::TTF::Kern::StateTable;
-
-=head1 NAME
-
-Font::TTF::Kern::StateTable - State Table Kern subtable for AAT
-
-=head1 METHODS
-
-=cut
-
-use strict;
-use vars qw(@ISA);
-use Font::TTF::Utils;
-use Font::TTF::AATutils;
-use Font::TTF::Kern::Subtable;
-use IO::File;
-
-@ISA = qw(Font::TTF::Kern::Subtable);
-
-sub new
-{
- my ($class) = @_;
- my ($self) = {};
-
- $class = ref($class) || $class;
- bless $self, $class;
-}
-
-=head2 $t->read
-
-Reads the table into memory
-
-=cut
-
-sub read
-{
- my ($self, $fh) = @_;
- my ($dat);
-
- my $stTableStart = $fh->tell();
-
- my ($classes, $states, $entries) = AAT_read_state_table($fh, 0);
-
- foreach (@$entries) {
- my $flags = $_->{'flags'};
- delete $_->{'flags'};
- $_->{'push'} = 1 if $flags & 0x8000;
- $_->{'noAdvance'} = 1 if $flags & 0x4000;
- $flags &= ~0xC000;
- if ($flags != 0) {
- my $kernList = [];
- $fh->seek($stTableStart + $flags, IO::File::SEEK_SET);
- while (1) {
- $fh->read($dat, 2);
- my $k = TTF_Unpack("s", $dat);
- push @$kernList, ($k & ~1);
- last if ($k & 1) != 0;
- }
- $_->{'kernList'} = $kernList;
- }
- }
-
- $self->{'classes'} = $classes;
- $self->{'states'} = $states;
- $self->{'entries'} = $entries;
-
- $fh->seek($stTableStart - 8 + $self->{'length'}, IO::File::SEEK_SET);
-
- $self;
-}
-
-=head2 $t->out_sub($fh)
-
-Writes the table to a file
-
-=cut
-
-sub out_sub
-{
-}
-
-=head2 $t->print($fh)
-
-Prints a human-readable representation of the table
-
-=cut
-
-sub print
-{
-}
-
-sub dumpXML
-{
- my ($self, $fh) = @_;
-
- $fh->printf("<classes>\n");
- $self->dumpClasses($self->{'classes'}, $fh);
- $fh->printf("</classes>\n");
-
- $fh->printf("<states>\n");
- my $states = $self->{'states'};
- foreach (0 .. $#$states) {
- $fh->printf("<state index=\"%s\">\n", $_);
- my $members = $states->[$_];
- foreach (0 .. $#$members) {
- my $m = $members->[$_];
- $fh->printf("<m index=\"%s\" nextState=\"%s\"", $_, $m->{'nextState'});
- $fh->printf(" push=\"1\"") if $m->{'push'};
- $fh->printf(" noAdvance=\"1\"") if $m->{'noAdvance'};
- if (exists $m->{'kernList'}) {
- $fh->printf(">");
- foreach (@{$m->{'kernList'}}) {
- $fh->printf("<kern v=\"%s\"/>", $_);
- }
- $fh->printf("</m>\n");
- }
- else {
- $fh->printf("/>\n");
- }
- }
- $fh->printf("</state>\n");
- }
- $fh->printf("</states>\n");
-}
-
-sub type
-{
- return 'kernStateTable';
-}
-
-1;
-
-=head1 BUGS
-
-None known
-
-=head1 AUTHOR
-
-Jonathan Kew L<Jonathan_Kew@sil.org>. See L<Font::TTF::Font> for copyright and
-licensing.
-
-=cut
-