blob: 54d0aabe3d568a2912f01f475a62f5a8510f38c9 [file] [log] [blame]
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% M M OOO N N IIIII TTTTT OOO RRRR %
% MM MM O O NN N I T O O R R %
% M M M O O N N N I T O O RRRR %
% M M O O N NN I T O O R R %
% M M OOO N N IIIII T OOO R R %
% %
% %
% MagickCore Progress Monitor Methods %
% %
% Software Design %
% John Cristy %
% December 1995 %
% %
% %
% Copyright 1999-2010 ImageMagick Studio LLC, a non-profit organization %
% dedicated to making software imaging solutions freely available. %
% %
% You may not use this file except in compliance with the License. You may %
% obtain a copy of the License at %
% %
% http://www.imagemagick.org/script/license.php %
% %
% Unless required by applicable law or agreed to in writing, software %
% distributed under the License is distributed on an "AS IS" BASIS, %
% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. %
% See the License for the specific language governing permissions and %
% limitations under the License. %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
%
%
*/
/*
Include declarations.
*/
#include "magick/studio.h"
#include "magick/image.h"
#include "magick/log.h"
#include "magick/monitor.h"
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% S e t I m a g e P r o g r e s s M o n i t o r %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% SetImageProgressMonitor() sets the image progress monitor to the specified
% method and returns the previous progress monitor if any. The progress
% monitor method looks like this:
%
% MagickBooleanType MagickProgressMonitor(const char *text,
% const MagickOffsetType offset,const MagickSizeType extent,
% void *client_data)
%
% If the progress monitor returns MagickFalse, the current operation is
% interrupted.
%
% The format of the SetImageProgressMonitor method is:
%
% MagickProgressMonitor SetImageProgressMonitor(Image *image,
% const MagickProgressMonitor progress_monitor,void *client_data)
%
% A description of each parameter follows:
%
% o image: the image.
%
% o progress_monitor: Specifies a pointer to a method to monitor progress of
% an image operation.
%
% o client_data: Specifies a pointer to any client data.
%
*/
MagickExport MagickProgressMonitor SetImageProgressMonitor(Image *image,
const MagickProgressMonitor progress_monitor,void *client_data)
{
MagickProgressMonitor
previous_monitor;
previous_monitor=image->progress_monitor;
image->progress_monitor=progress_monitor;
image->client_data=client_data;
return(previous_monitor);
}
/*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% %
% %
% %
% S e t I m a g e I n f o P r o g r e s s M o n i t o r %
% %
% %
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% SetImageInfoProgressMonitor() sets the image_info progress monitor to the
% specified method and returns the previous progress monitor if any. The
% progress monitor method looks like this:
%
% MagickBooleanType MagickProgressMonitor(const char *text,
% const MagickOffsetType offset,const MagickSizeType extent,
% void *client_data)
%
% If the progress monitor returns MagickFalse, the current operation is
% interrupted.
%
% The format of the SetImageInfoProgressMonitor method is:
%
% MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info,
% const MagickProgressMonitor progress_monitor,void *client_data)
%
% A description of each parameter follows:
%
% o image_info: the image info.
%
% o progress_monitor: Specifies a pointer to a method to monitor progress of
% an image operation.
%
% o client_data: Specifies a pointer to any client data.
%
*/
MagickExport MagickProgressMonitor SetImageInfoProgressMonitor(
ImageInfo *image_info,const MagickProgressMonitor progress_monitor,
void *client_data)
{
MagickProgressMonitor
previous_monitor;
previous_monitor=image_info->progress_monitor;
image_info->progress_monitor=progress_monitor;
image_info->client_data=client_data;
return(previous_monitor);
}