ext/RMagick/rmutil.c in rmagick-1.8.3 vs ext/RMagick/rmutil.c in rmagick-1.9.0
- old
+ new
@@ -1,6 +1,6 @@
-/* $Id: rmutil.c,v 1.51 2005/03/05 16:18:39 rmagick Exp $ */
+/* $Id: rmutil.c,v 1.53 2005/06/21 22:55:01 rmagick Exp $ */
/*============================================================================\
| Copyright (C) 2005 by Timothy P. Hunter
| Name: rmutil.c
| Author: Tim Hunter
| Purpose: Utility functions for RMagick
@@ -2758,12 +2758,43 @@
}
rm_handle_error(&badboy->exception);
}
}
+/*
+ Extern: rm_progress_monitor
+ Purpose: SetImage(Info)ProgressMonitor exit
+ Notes: ImageMagick's "tag" argument is unused. We pass along the method name instead.
+*/
+#if defined(HAVE_SETIMAGEPROGRESSMONITOR)
+MagickBooleanType rm_progress_monitor(
+ const char *tag,
+ const MagickOffsetType of,
+ const MagickSizeType sp,
+ void *client_data)
+{
+ volatile VALUE rval;
+ volatile VALUE method, offset, span;
+#if defined(HAVE_LONG_LONG) // defined in Ruby's defines.h
+ offset = rb_ll2inum(of);
+ span = rb_ull2inum(sp);
+#else
+ offset = rb_int2big((long)of);
+ span = rb_uint2big((unsigned long)sp);
+#endif
+
+ method = rb_str_new2(rb_id2name(rb_frame_last_func()));
+
+ rval = rb_funcall((VALUE)client_data, ID_call, 3, method, offset, span);
+
+ return RTEST(rval) ? MagickTrue : MagickFalse;
+}
+#endif
+
+
/*
- Extern: unseq
+ Extern: rm_split
Purpose: Remove the ImageMagick links between images in an scene
sequence.
Notes: The images remain grouped via the ImageList
*/
void