#------------------------------------------------------------------------
#  Copyright 2008-2010 (c) Jeff Brown <spadix@users.sourceforge.net>
#
#  This file is part of the ZBar Bar Code Reader.
#
#  The ZBar Bar Code Reader is free software; you can redistribute it
#  and/or modify it under the terms of the GNU Lesser Public License as
#  published by the Free Software Foundation; either version 2.1 of
#  the License, or (at your option) any later version.
#
#  The ZBar Bar Code Reader is distributed in the hope that it will be
#  useful, but WITHOUT ANY WARRANTY; without even the implied warranty
#  of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#  GNU Lesser Public License for more details.
#
#  You should have received a copy of the GNU Lesser Public License
#  along with the ZBar Bar Code Reader; if not, write to the Free
#  Software Foundation, Inc., 51 Franklin St, Fifth Floor,
#  Boston, MA  02110-1301  USA
#
#  http://sourceforge.net/projects/zbar
#------------------------------------------------------------------------

=pod

=head1 NAME

Barcode::ZBar::Symbol - bar code scan result object

=head1 SYNOPSIS

    my @symbols = $image->get_symbols();
    foreach my $sym (@symbols) {
        print("decoded: " . $sym->get_type() .
              ":" . $sym->get_data().
              "(" . $sym->get_count() . ")");
    }

=head1 DESCRIPTION

Barcode::ZBar::Symbol objects are constant results returned for each
bar code scanned from images or video.  This object wraps the raw
symbol data with additional information about the decode (symbology,
confidence, location, etc)

=head1 REFERENCE

=head2 Methods

=over 4

=item get_type()

The type of bar code "symbology" from which the data was decoded.

=item get_data()

The decoded data string.  Note that some symbologies can encode binary
data.

=item get_quality()

Confidence metric.  An unscaled integer value that indicates something
(intentionally unspecified) about the reliability of this result
relative to another.  Larger values are better than smaller values,
where "large" and "small" are application dependent.  Expect this
definition to become more specific as the metric is enhanced.

=item get_count()

Current cache count of the symbol.  This integer value provides
inter-scan reliability and redundancy information if enabled at the
Barcode::ZBar::ImageScanner.

=item get_orientation()

General orientation of decoded symbol.  This returns one of the
Barcode::ZBar::Orient constants, which provide a coarse, axis-aligned
indication of symbol orientation.

=item get_components()

Components of a composite result.  This yields an array of physical
component symbols that were combined to form a composite result.

=item get_configs()

Retrieve symbology boolean config settings.  Returns a bitmask
indicating which configs were set for the detected
symbology during decoding.

=item get_modifiers()

Retrieve symbology modifier flag settings.  Returns a bitmask
indicating which characteristics were detected during decoding.

=item get_loc()

Retrieve an array of symbol location points (x,y)

=over 2

=item *

A negative value indicates that this result is still uncertain

=item *

A zero value indicates the first occurrence of this result with high
confidence

=item *

A positive value indicates a duplicate scan

=back

=back

=head2 Constants

Bar code type "symbology" constants:

=over 4

=item NONE

=item PARTIAL

=item EAN13

=item EAN8

=item UPCA

=item UPCE

=item ISBN10

=item ISBN13

=item I25

=item CODABAR

=item CODE39

=item CODE93

=item CODE128

=item QRCODE

=item PDF417

=back

=head1 SEE ALSO

Barcode::ZBar, Barcode::ZBar::Image

zbarimg(1), zbarcam(1)

http://zbar.sf.net

=head1 AUTHOR

Jeff Brown, E<lt>spadix@users.sourceforge.netE<gt>

=head1 COPYRIGHT AND LICENSE

Copyright 2008-2010 (c) Jeff Brown E<lt>spadix@users.sourceforge.netE<gt>

The ZBar Bar Code Reader is free software; you can redistribute it
and/or modify it under the terms of the GNU Lesser Public License as
published by the Free Software Foundation; either version 2.1 of
the License, or (at your option) any later version.

=cut
