#------------------------------------------------------------------------
# Copyright 2008-2009 (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::Processor - self-contained bar code reader
=head1 SYNOPSIS
setup:
use Barcode::ZBar;
my $reader = Barcode::ZBar::Processor->new();
$reader->init("/dev/video1", 1);
$reader->parse_config('code39.disable');
$reader->set_data_handler(\&my_handler);
scan an image:
$reader->process_image($image);
scan from video:
$reader->set_visible();
$reader->set_active();
$reader->user_wait();
=head1 DESCRIPTION
A Barcode::ZBar::Processor may be used to quickly create stand-alone
bar code scanning applications. It has interfaces to scan images or
video and to optionally display a video/image preview to a window.
This interface is not well suited for integration with an existing
GUI, as the library manages the optional preview window and any user
interaction. Use a Barcode::ZBar::ImageScanner or Investigate the
avilable widget interfaces for GUI applications.
=head1 REFERENCE
=head2 Methods
=over 4
=item new()
Create a new bar code reader instance.
=item init([I<video_device>], [I<enable_display>])
Open a video input device and/or prepare to display output.
=item set_data_handler([I<handler>], [I<closure>])
Setup a callback to process results whenever new results are available
from the video stream or a static image. The specified callable will
be invoked with the associated Barcode::ZBar::Processor object and
I<closure> as arguments. Closure may be achieved either using
standard Perl closure or by manually passing a scalar via I<closure>.
=item is_visible()
=item set_visible([I<visible>])
Test/set visibility of the output window.
=item set_active([I<active>])
Enable/disable video streaming and scanning for bar codes.
=item get_results()
Return a list of Barcode::ZBar::Symbol results from the last scanned
image or video frame.
=item user_wait([I<timeout>])
Wait for the user to press a key/button or close the window. Bar
codes will continue to be processed if video is active.
=item process_one([I<timeout>])
Enable video and scan until at least one barcode is found. Note that
multiple results may still be returned.
=item process_image([I<image>])
Scan a Barcode::ZBar::Image for bar codes.
=item parse_config(I<configstr>)
Apply a decoder configuration setting. See the documentation for
C<zbarcam>/C<zbarimg> for available configuration options.
=item request_size(I<width>, I<height>)
Request a preferred size for the video image from the device. The
request may be adjusted or completely ignored by the driver. Must be
called before C<init()>
=back
=head1 SEE ALSO
Barcode::ZBar, Barcode::ZBar::Image, Barcode::ZBar::ImageScanner
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-2009 (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