--- configure.ac	2006/07/15 02:11:16	1.1
+++ configure.ac	2006/07/15 02:20:54
@@ -332,16 +332,18 @@ AC_SUBST(DBUS_SOVERSION)
 
 
 dnl libnautilus-burn devel deps
+PKG_CHECK_MODULES(LIBNAUTILUS_BURN, libnautilus-burn >= 2.15, lnb15=yes, lnb15=no)
 PKG_CHECK_MODULES(LIBNAUTILUS_BURN, libnautilus-burn >= 2.13, lnb13=yes, lnb13=no)
-if test "x$lnb13" = "xyes"; then
+PKG_CHECK_MODULES(LIBNAUTILUS_BURN, libnautilus-burn >= 2.12, lnb12=yes, lnb12=no)
+if test "x$lnb15" = "xyes"; then
+	LNB_SOVERSION=4
+	AC_DEFINE(HAVE_LIBNAUTILUS_BURN_4, 1, [Define if libnautilus-burn is version 2.15 (soversion 4) or later])
+elif test "x$lnb13" = "xyes"; then
 	LNB_SOVERSION=3
+elif test "x$lnb12" = "xyes"; then
+	LNB_SOVERSION=2
 else
-	PKG_CHECK_MODULES(LIBNAUTILUS_BURN, libnautilus-burn >= 2.12, lnb12=yes, lnb12=no)
-	if test "x$lnb12" = "xyes"; then
-		LNB_SOVERSION=2
-	else
-		AC_MSG_ERROR([You need libnautilus-burn 2.12 or better])
-	fi
+	AC_MSG_ERROR([You need libnautilus-burn 2.12 or better])
 fi
 AC_SUBST(LNB_SOVERSION)
 AC_SUBST(LIBNAUTILUS_BURN_CFLAGS)
--- config.h.in	2006/07/15 02:11:16	1.1
+++ config.h.in	2006/07/15 02:20:53
@@ -24,6 +24,9 @@
 /* Define if your <locale.h> file defines LC_MESSAGES. */
 #undef HAVE_LC_MESSAGES
 
+/* Define if libnautilus-burn is version 2.15 (soversion 4) or later */
+#undef HAVE_LIBNAUTILUS_BURN_4
+
 /* Define to 1 if you have the <locale.h> header file. */
 #undef HAVE_LOCALE_H
 
--- burn-sharp/glue.c	2006/07/15 02:11:16	1.1
+++ burn-sharp/glue.c	2006/07/15 02:20:17
@@ -1,6 +1,10 @@
 
 #include <nautilus-burn-recorder.h>
 
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif /* HAVE_CONFIG_H */
+
 struct NautilusBurnRecorderTrack *
 nautilus_burn_glue_create_track (const char *filename,
 				 NautilusBurnRecorderTrackType type)
@@ -23,35 +27,59 @@ nautilus_burn_glue_create_track (const c
 char *
 nautilus_burn_glue_drive_get_id (NautilusBurnDrive *drive)
 {
+#ifndef HAVE_LIBNAUTILUS_BURN_4
 	return g_strdup (drive->cdrecord_id);
+#else /* HAVE_LIBNAUTILUS_BURN_4 */
+	return g_strdup (nautilus_burn_drive_get_device (drive));
+#endif /* HAVE_LIBNAUTILUS_BURN_4 */
 }
 
 NautilusBurnDriveType
 nautilus_burn_glue_drive_get_type (NautilusBurnDrive *drive)
 {
+#ifndef HAVE_LIBNAUTILUS_BURN_4
 	return drive->type;
+#else /* HAVE_LIBNAUTILUS_BURN_4 */
+	return nautilus_burn_drive_get_drive_type (drive);
+#endif /* HAVE_LIBNAUTILUS_BURN_4 */
 }
 
 char *
 nautilus_burn_glue_drive_get_display_name (NautilusBurnDrive *drive)
 {
+#ifndef HAVE_LIBNAUTILUS_BURN_4
 	return g_strdup (drive->display_name);
+#else /* HAVE_LIBNAUTILUS_BURN_4 */
+	return nautilus_burn_drive_get_name_for_display (drive);
+#endif /* HAVE_LIBNAUTILUS_BURN_4 */
 }
 
 int
 nautilus_burn_glue_drive_get_max_read_speed (NautilusBurnDrive *drive)
 {
+#ifndef HAVE_LIBNAUTILUS_BURN_4
 	return drive->max_speed_read;
+#else /* HAVE_LIBNAUTILUS_BURN_4 */
+	return nautilus_burn_drive_get_max_speed_read (drive);
+#endif /* HAVE_LIBNAUTILUS_BURN_4 */
 }
 
 int
 nautilus_burn_glue_drive_get_max_write_speed (NautilusBurnDrive *drive)
 {
+#ifndef HAVE_LIBNAUTILUS_BURN_4
 	return drive->max_speed_write;
+#else /* HAVE_LIBNAUTILUS_BURN_4 */
+	return nautilus_burn_drive_get_max_speed_write (drive);
+#endif /* HAVE_LIBNAUTILUS_BURN_4 */
 }
 
 char *
 nautilus_burn_glue_drive_get_device (NautilusBurnDrive *drive)
 {
+#ifndef HAVE_LIBNAUTILUS_BURN_4
 	return g_strdup (drive->device);
+#else /* HAVE_LIBNAUTILUS_BURN_4 */
+	return g_strdup (nautilus_burn_drive_get_device (drive));
+#endif /* HAVE_LIBNAUTILUS_BURN_4 */
 }
