[Rhythmbox-devel] State of ipod support?



Hi All,

Just wondering what the status of iPod support is in rhythmbox and to
report my experience to see if that's where it is or if i'm getting
something different to what others see.

When I plug my iPod (60Gb iPod photo) its detected OK and I get a
track listing.... good start! But if I got to play anything I get
exclamation marks near all the songs and they are unavailable.

There's also a problem where the initial load of the database doesn't
show a large amount of the list in the artist/album list although does
in the complete list below. It will update it if you select the ALL
option.

If I apply the hal 0.5 patch (with some slight updates to the
configure.ac as it doesn'y apply cleanly) it just crashes striaght
away (updated patch attached - may not be correct but I think its OK).
I can get gdb dumps if its wanted.

Cheers,
Pete
--- rhythmbox-0.9.0/configure.ac	2005-08-19 09:23:30.000000000 +0100
+++ rhythmbox-0.9.0-mod/configure.ac	2005-08-20 16:24:37.000000000 +0100
@@ -21,8 +21,6 @@
 NCB_MIN_REQS=2.9.0
 DBUS_MIN_REQS=0.23
 DBUS_MAX_REQS=0.30
-HAL_MIN_REQS=0.2.92
-HAL_MAX_REQS=0.5
 TOTEM_PLPARSER_REQS=1.1.3
 
 AC_MSG_CHECKING([for GNU extension fwrite_unlocked])
@@ -59,9 +57,9 @@
 if test x"$enable_ipod" = xyes; then
 	AC_DEFINE(WITH_IPOD_SUPPORT, 1, [Define if iPod support is enabled])
 	USE_HAL=""
-	PKG_CHECK_MODULES(HAL, hal >= $HAL_MIN_REQS hal < $HAL_MAX_REQS gnome-vfs-2.0 >= 2.7.4,
+	PKG_CHECK_MODULES(HAL, hal >= 0.5.0 gnome-vfs-2.0 >= 2.7.4,
 		[ AC_DEFINE([HAVE_HAL], 1, [Use the HAL library]) ]
-		[ USE_HAL="dbus-glib-1 hal >= $HAL_MIN_REQS hal < $HAL_MAX_REQS" ], :)
+		[ USE_HAL="dbus-glib-1 hal >= 0.5.0" ], :)
 fi
 
 PKG_CHECK_MODULES(RHYTHMBOX,				\
--- rhythmbox-0.9.0/sources/rb-ipod-source.c	2005-08-19 09:23:30.000000000 +0100
+++ rhythmbox-0.9.0-mod/sources/rb-ipod-source.c	2005-08-20 16:14:14.000000000 +0100
@@ -583,19 +583,20 @@
 	LibHalContext *ctx;
 	char *parent_udi, *parent_name;
 	gboolean result;
+	DBusError error;
 
 	result = FALSE;
-	ctx = hal_initialize (NULL, FALSE);
+	ctx = libhal_ctx_new ();
 	if (ctx == NULL) {
 		/* FIXME: should we return an error somehow so that we can 
 		 * fall back to a check for iTunesDB presence instead ?
 		 */
 		return FALSE;
 	}
-	parent_udi = hal_device_get_property_string (ctx, udi,
-			"info.parent");
-	parent_name = hal_device_get_property_string (ctx, parent_udi,
-			"storage.model");
+	parent_udi = libhal_device_get_property_string (ctx, udi,
+			"info.parent", &error);
+	parent_name = libhal_device_get_property_string (ctx, parent_udi,
+			"storage.model", &error);
 	g_free (parent_udi);
 
 	if (parent_name != NULL && strcmp (parent_name, "iPod") == 0) {
@@ -603,7 +604,8 @@
 	}
 
 	g_free (parent_name);
-	hal_shutdown (ctx);
+	libhal_ctx_shutdown (ctx, &error);
+	libhal_ctx_free(ctx);
 
 	return result;
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]