Makes libexif a requirement to build beagle, and adds support for libexif 0.6. http://bugs.gnome.org/show_bug.cgi?id=166688 http://bugs.gnome.org/show_bug.cgi?id=167826 Index: configure.in =================================================================== RCS file: /cvs/gnome/beagle/configure.in,v retrieving revision 1.85 diff -u -B -r1.85 configure.in --- configure.in 18 Feb 2005 20:03:10 -0000 1.85 +++ configure.in 19 Feb 2005 14:47:36 -0000 @@ -255,6 +255,10 @@ PKG_CHECK_MODULES(GST_SHARP, gst-sharp, enable_gst_sharp=yes, enable_gst_sharp=no) AM_CONDITIONAL(ENABLE_GST_SHARP, test "x$enable_gst_sharp" = "xyes") +dnl Needed to index jpeg metadata +PKG_CHECK_MODULES(LIBEXIF, libexif >= 0.5) +PKG_CHECK_MODULES(LIBEXIF, libexif >= 0.6, have_old_libexif=no, have_old_libexif=yes) + PKG_CHECK_MODULES(BEAGLED, gmime-sharp >= 2.1.11 gtk-sharp dbus-sharp >= 0.23.1 gconf-sharp) BEAGLED_LIBS="$BEAGLED_LIBS $EVO_SHARP_LIBS $GSF_SHARP_LIBS" AC_SUBST(BEAGLED_LIBS) @@ -285,6 +289,10 @@ if test "$dbus_broken" = "yes"; then BEAGLE_DEFINES="$BEAGLE_DEFINES -define:DBUS_IS_BROKEN_BROKEN_BROKEN" +fi + +if test "$have_old_libexif" = "yes"; then + BEAGLE_DEFINES="$BEAGLE_DEFINES -define:HAVE_OLD_LIBEXIF" fi AC_SUBST(BEAGLE_DEFINES) Index: Util/ExifData.cs =================================================================== RCS file: /cvs/gnome/beagle/Util/ExifData.cs,v retrieving revision 1.1 diff -u -B -r1.1 ExifData.cs --- Util/ExifData.cs 11 Oct 2004 15:46:04 -0000 1.1 +++ Util/ExifData.cs 19 Feb 2005 14:48:38 -0000 @@ -241,10 +241,11 @@ readonly public _ExifContent *parent; [DllImport ("libexif.so")] +#if HAVE_OLD_LIBEXIF internal static extern IntPtr exif_entry_get_value (_ExifEntry *entry); - - [DllImport ("libexif.so")] - internal static extern IntPtr exif_entry_get_value_brief (_ExifEntry *entry); +#else + internal static extern IntPtr exif_entry_get_value (_ExifEntry *entry, byte [] value, int maxlen); +#endif } [StructLayout(LayoutKind.Sequential)] @@ -333,7 +334,12 @@ unsafe void AssembleContent (_ExifEntry *entry, void *callback_data) { tag_list.Add (entry->tag); +#if HAVE_OLD_LIBEXIF string_values [entry->tag] = Marshal.PtrToStringAnsi (_ExifEntry.exif_entry_get_value (entry)); +#else + byte [] value = new byte [1024]; + string_values [entry->tag] = Marshal.PtrToStringAnsi (_ExifEntry.exif_entry_get_value (entry, value, value.Length)); +#endif byte [] raw_data; if (entry->size > 0) {