summaryrefslogtreecommitdiff
path: root/src/av-cp/server-device.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/av-cp/server-device.c')
-rw-r--r--src/av-cp/server-device.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/av-cp/server-device.c b/src/av-cp/server-device.c
index dd312ef..e767447 100644
--- a/src/av-cp/server-device.c
+++ b/src/av-cp/server-device.c
@@ -150,8 +150,9 @@ av_cp_media_server_get_property (GObject *obj,
}
static void
-av_cp_media_server_on_icon_updated (GUPnPDeviceInfo *info,
- GdkPixbuf *icon);
+av_cp_media_server_on_icon_updated (GObject *source,
+ GAsyncResult *res,
+ gpointer user_data);
static void
av_cp_media_server_on_get_sort_caps (GObject *object,
@@ -308,13 +309,20 @@ av_cp_media_server_init (AVCPMediaServer *self)
}
static void
-av_cp_media_server_on_icon_updated (GUPnPDeviceInfo *info,
- GdkPixbuf *icon)
+av_cp_media_server_on_icon_updated (GObject *source,
+ GAsyncResult *res,
+ gpointer user_data)
{
- AVCPMediaServer *self = AV_CP_MEDIA_SERVER (info);
+ AVCPMediaServer *self = AV_CP_MEDIA_SERVER (source);
AVCPMediaServerPrivate *priv = av_cp_media_server_get_instance_private (self);
+ g_autoptr (GError) error = NULL;
+
+ priv->icon =
+ update_icon_finish (GUPNP_DEVICE_INFO (source), res, &error);
+ if (error != NULL) {
+ g_debug ("Failed to download device icon: %s", error->message);
+ }
- priv->icon = icon;
av_cp_media_server_get_content_directory (self);
if (priv->content_directory != NULL) {
@@ -401,8 +409,10 @@ av_cp_media_server_init_finish (GAsyncInitable *initable,
static void
av_cp_media_server_introspect (AVCPMediaServer *self)
{
- schedule_icon_update (GUPNP_DEVICE_INFO (self),
- av_cp_media_server_on_icon_updated);
+ update_icon_async (GUPNP_DEVICE_INFO (self),
+ NULL,
+ av_cp_media_server_on_icon_updated,
+ NULL);
}
static void