43 #include "MagickCore/studio.h"
44 #include "MagickCore/image.h"
45 #include "MagickCore/log.h"
46 #include "MagickCore/monitor.h"
47 #include "MagickCore/monitor-private.h"
73 MagickPrivate MagickBooleanType MonitorComponentGenesis(
void)
76 monitor_semaphore=AcquireSemaphoreInfo();
98 MagickPrivate
void MonitorComponentTerminus(
void)
101 ActivateSemaphoreInfo(&monitor_semaphore);
102 LockSemaphoreInfo(monitor_semaphore);
103 UnlockSemaphoreInfo(monitor_semaphore);
104 RelinquishSemaphoreInfo(&monitor_semaphore);
136 MagickExport MagickBooleanType SetImageProgress(
const Image *image,
137 const char *tag,
const MagickOffsetType offset,
const MagickSizeType extent)
140 message[MagickPathExtent];
145 if (image->progress_monitor == (MagickProgressMonitor) NULL)
147 (void) FormatLocaleString(message,MagickPathExtent,
"%s/%s",tag,
150 ActivateSemaphoreInfo(&monitor_semaphore);
151 LockSemaphoreInfo(monitor_semaphore);
152 status=image->progress_monitor(message,offset,extent,image->client_data);
153 UnlockSemaphoreInfo(monitor_semaphore);
194 MagickExport MagickProgressMonitor SetImageProgressMonitor(
Image *image,
195 const MagickProgressMonitor progress_monitor,
void *client_data)
197 MagickProgressMonitor
200 previous_monitor=image->progress_monitor;
201 image->progress_monitor=progress_monitor;
202 image->client_data=client_data;
203 return(previous_monitor);
243 MagickExport MagickProgressMonitor SetImageInfoProgressMonitor(
244 ImageInfo *image_info,
const MagickProgressMonitor progress_monitor,
247 MagickProgressMonitor
250 previous_monitor=image_info->progress_monitor;
251 image_info->progress_monitor=progress_monitor;
252 image_info->client_data=client_data;
253 return(previous_monitor);