13ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 23ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 33ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 43ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 53ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 63ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% M M OOO N N IIIII TTTTT OOO RRRR % 73ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% MM MM O O NN N I T O O R R % 83ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% M M M O O N N N I T O O RRRR % 93ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% M M O O N NN I T O O R R % 103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% M M OOO N N IIIII T OOO R R % 113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 133ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% MagickCore Progress Monitor Methods % 143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% Software Design % 16de984cdc3631106b1cbbb8d3972b76a0fc27e8e8cristy% Cristy % 173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% December 1995 % 183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 207ce65e7125a4e1df1a274ce373c537a9df9c16cdCristy% Copyright 1999-2016 ImageMagick Studio LLC, a non-profit organization % 213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% dedicated to making software imaging solutions freely available. % 223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% You may not use this file except in compliance with the License. You may % 243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% obtain a copy of the License at % 253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% http://www.imagemagick.org/script/license.php % 273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% Unless required by applicable law or agreed to in writing, software % 293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% distributed under the License is distributed on an "AS IS" BASIS, % 303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. % 313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% See the License for the specific language governing permissions and % 323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% limitations under the License. % 333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 343ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy Include declarations. 423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 434c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/studio.h" 444c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/image.h" 454c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/log.h" 464c08aed51c5899665ade97263692328eea4af106cristy#include "MagickCore/monitor.h" 473ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 483ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 493ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 503ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 513ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 523ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 533ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% S e t I m a g e P r o g r e s s M o n i t o r % 543ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 553ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 563ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 573ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 583ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 593ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% SetImageProgressMonitor() sets the image progress monitor to the specified 603ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% method and returns the previous progress monitor if any. The progress 613ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% monitor method looks like this: 623ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 633ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% MagickBooleanType MagickProgressMonitor(const char *text, 64b32b90a7e1ee2275333589072c496b5f69e17feccristy% const MagickOffsetType offset,const MagickSizeType extent, 653ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% void *client_data) 663ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 673ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% If the progress monitor returns MagickFalse, the current operation is 683ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% interrupted. 693ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 703ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% The format of the SetImageProgressMonitor method is: 713ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 723ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% MagickProgressMonitor SetImageProgressMonitor(Image *image, 733ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% const MagickProgressMonitor progress_monitor,void *client_data) 743ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 753ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% A description of each parameter follows: 763ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 773ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o image: the image. 783ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 793ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o progress_monitor: Specifies a pointer to a method to monitor progress of 803ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% an image operation. 813ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 823ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o client_data: Specifies a pointer to any client data. 833ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 843ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 853ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport MagickProgressMonitor SetImageProgressMonitor(Image *image, 863ed852eea50f9d4cd633efb8c2b054b8e33c253cristy const MagickProgressMonitor progress_monitor,void *client_data) 873ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 883ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickProgressMonitor 893ed852eea50f9d4cd633efb8c2b054b8e33c253cristy previous_monitor; 903ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 913ed852eea50f9d4cd633efb8c2b054b8e33c253cristy previous_monitor=image->progress_monitor; 923ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image->progress_monitor=progress_monitor; 933ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image->client_data=client_data; 943ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(previous_monitor); 953ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 963ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 973ed852eea50f9d4cd633efb8c2b054b8e33c253cristy/* 983ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 993ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 1003ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 1013ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 1023ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 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 % 1033ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 1043ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 1053ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% % 1063ed852eea50f9d4cd633efb8c2b054b8e33c253cristy%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1073ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1083ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% SetImageInfoProgressMonitor() sets the image_info progress monitor to the 1093ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% specified method and returns the previous progress monitor if any. The 1103ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% progress monitor method looks like this: 1113ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1123ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% MagickBooleanType MagickProgressMonitor(const char *text, 113b32b90a7e1ee2275333589072c496b5f69e17feccristy% const MagickOffsetType offset,const MagickSizeType extent, 1143ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% void *client_data) 1153ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1163ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% If the progress monitor returns MagickFalse, the current operation is 1173ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% interrupted. 1183ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1193ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% The format of the SetImageInfoProgressMonitor method is: 1203ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1213ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% MagickProgressMonitor SetImageInfoProgressMonitor(ImageInfo *image_info, 1223ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% const MagickProgressMonitor progress_monitor,void *client_data) 1233ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1243ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% A description of each parameter follows: 1253ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1263ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o image_info: the image info. 1273ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1283ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o progress_monitor: Specifies a pointer to a method to monitor progress of 1293ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% an image operation. 1303ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1313ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% o client_data: Specifies a pointer to any client data. 1323ed852eea50f9d4cd633efb8c2b054b8e33c253cristy% 1333ed852eea50f9d4cd633efb8c2b054b8e33c253cristy*/ 1343ed852eea50f9d4cd633efb8c2b054b8e33c253cristyMagickExport MagickProgressMonitor SetImageInfoProgressMonitor( 1353ed852eea50f9d4cd633efb8c2b054b8e33c253cristy ImageInfo *image_info,const MagickProgressMonitor progress_monitor, 1363ed852eea50f9d4cd633efb8c2b054b8e33c253cristy void *client_data) 1373ed852eea50f9d4cd633efb8c2b054b8e33c253cristy{ 1383ed852eea50f9d4cd633efb8c2b054b8e33c253cristy MagickProgressMonitor 1393ed852eea50f9d4cd633efb8c2b054b8e33c253cristy previous_monitor; 1403ed852eea50f9d4cd633efb8c2b054b8e33c253cristy 1413ed852eea50f9d4cd633efb8c2b054b8e33c253cristy previous_monitor=image_info->progress_monitor; 1423ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->progress_monitor=progress_monitor; 1433ed852eea50f9d4cd633efb8c2b054b8e33c253cristy image_info->client_data=client_data; 1443ed852eea50f9d4cd633efb8c2b054b8e33c253cristy return(previous_monitor); 1453ed852eea50f9d4cd633efb8c2b054b8e33c253cristy} 146