[packages/rhythmbox] - updated dependencies, added optional patch with libdmapsharing4 support
qboosh
qboosh at pld-linux.org
Sat Jul 27 10:52:37 CEST 2019
commit fb037d6074533130b215c538c6d69e68c929a53d
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Sat Jul 27 10:54:30 2019 +0200
- updated dependencies, added optional patch with libdmapsharing4 support
rhythmbox-libdmapsharing4.patch | 1196 +++++++++++++++++++++++++++++++++++++++
rhythmbox.spec | 145 +++--
2 files changed, 1296 insertions(+), 45 deletions(-)
---
diff --git a/rhythmbox.spec b/rhythmbox.spec
index 92f99ff..8dde397 100644
--- a/rhythmbox.spec
+++ b/rhythmbox.spec
@@ -3,7 +3,7 @@
%bcond_without ipod # build without iPod support
%bcond_without mtp # build without MTP support
%bcond_without daap # build without DAAP support
-%bcond_with webkit # build with gtk-webkit support
+%bcond_with libdmapsharing4 # libdmapsharing4 instead of libdmapsharing3
Summary: Music Management Application
Summary(hu.UTF-8): Zenelejátszó alkalmazás
@@ -15,73 +15,92 @@ License: GPL v2+
Group: X11/Applications
Source0: http://ftp.gnome.org/pub/GNOME/sources/rhythmbox/3.4/%{name}-%{version}.tar.xz
# Source0-md5: 79a775cffcf320fcdefa74bf6b2d1d32
+# https://gitlab.gnome.org/GNOME/rhythmbox/merge_requests/12.patch
+Patch0: %{name}-libdmapsharing4.patch
URL: http://projects.gnome.org/rhythmbox/
-BuildRequires: autoconf
-BuildRequires: automake
+BuildRequires: autoconf >= 2.63.2
+BuildRequires: automake >= 1:1.11
BuildRequires: brasero-devel >= 2.31.5
BuildRequires: docbook-dtd412-xml
BuildRequires: gdk-pixbuf2-devel >= 2.18.0
-BuildRequires: gettext-tools
-BuildRequires: glib2-devel >= 1:2.34.0
-BuildRequires: gnome-common
+BuildRequires: gettext-tools >= 0.18
+BuildRequires: glib2-devel >= 1:2.38.0
BuildRequires: gobject-introspection-devel >= 0.10.0
-BuildRequires: grilo-devel >= 0.1.17
-BuildRequires: gstreamer-devel >= 1.0.0
-BuildRequires: gstreamer-plugins-base-devel >= 1.0.0
-BuildRequires: gtk+3-devel >= 3.12.0
-BuildRequires: gtk-doc
-%{?with_webkit:BuildRequires: gtk-webkit3-devel >= 1.3.9}
+BuildRequires: grilo-devel >= 0.3.0
+BuildRequires: gstreamer-devel >= 1.4.0
+BuildRequires: gstreamer-plugins-base-devel >= 1.4.0
+BuildRequires: gtk+3-devel >= 3.20.0
+BuildRequires: gtk-doc >= 1.4
BuildRequires: intltool >= 0.35.0
BuildRequires: json-glib-devel
-%{?with_daap:BuildRequires: libdmapsharing-devel >= 2.9.19}
-%{?with_ipod:BuildRequires: libgpod-devel >= 0.6}
+%if %{with daap}
+%if %{with libdmapsharing4}
+BuildRequires: libdmapsharing-devel >= 3.9
+BuildRequires: libdmapsharing-devel < 4.9
+%else
+BuildRequires: libdmapsharing-devel >= 2.9.19
+BuildRequires: libdmapsharing-devel < 3.9
+%endif
+%endif
+%{?with_ipod:BuildRequires: libgpod-devel >= 0.8}
%{?with_mtp:BuildRequires: libmtp-devel >= 0.3.0}
BuildRequires: libnotify-devel >= 0.7.0
BuildRequires: libpeas-devel >= 0.7.3
BuildRequires: libpeas-gtk-devel >= 0.7.3
BuildRequires: libsecret-devel >= 0.18
-BuildRequires: libsoup-devel >= 2.34.0
-BuildRequires: libsoup-gnome-devel >= 2.34.0
-BuildRequires: libtool
+BuildRequires: libsoup-devel >= 2.42.0
+BuildRequires: libtool >= 2:2
BuildRequires: libxml2-devel >= 1:2.7.8
BuildRequires: lirc-devel
BuildRequires: pkgconfig
-BuildRequires: python3-pygobject3-devel
+BuildRequires: python3-pygobject3-devel >= 3.0
BuildRequires: rpm-pythonprov
BuildRequires: rpmbuild(find_lang) >= 1.23
BuildRequires: rpmbuild(macros) >= 1.311
BuildRequires: sed >= 4.0
+BuildRequires: tar >= 1:1.22
BuildRequires: tdb-devel >= 2:1.2.6
BuildRequires: totem-pl-parser-devel >= 3.2.0
BuildRequires: udev-glib-devel >= 143
BuildRequires: vala >= 0.9.4
-BuildRequires: xorg-lib-libSM-devel
+BuildRequires: xorg-lib-libX11-devel
BuildRequires: xz
+BuildRequires: yelp-tools
BuildRequires: zlib-devel
Requires: python3-modules
Requires(post,postun): desktop-file-utils
Requires(post,postun): gtk-update-icon-cache
Requires(post,postun): hicolor-icon-theme
-Requires(post,postun): glib2 >= 1:2.34.0
+Requires(post,postun): glib2 >= 1:2.38.0
+Requires: brasero >= 2.31.5
Requires: dbus >= 0.93
-Requires: glib2 >= 1:2.34.0
-Requires: gstreamer-audio-effects-base >= 1.0.0
-Requires: gstreamer-audio-formats >= 1.0.0
+Requires: glib2 >= 1:2.38.0
+Requires: gstreamer-audio-effects-base >= 1.4.0
+Requires: gstreamer-audio-formats >= 1.4.0
Requires: gstreamer-audiosink
-Requires: gstreamer-plugins-good >= 1.0.0
-Requires: gtk+3 >= 3.12.0
-Suggests: gstreamer-flac
-Suggests: gstreamer-mad
-Suggests: gstreamer-neon
-Suggests: gstreamer-vorbis
-Suggests: gtk-webkit3
+Requires: gstreamer-plugins-good >= 1.4.0
+Requires: gtk+3 >= 3.20.0
+%{?with_daap:Requires: libdmapsharing >= 2.9.19}
+%{?with_ipod:Requires: libgpod >= 0.8}
+%{?with_mtp:Requires: libmtp >= 0.3.0}
+Requires: libnotify >= 0.7.0
+Requires: libpeas >= 0.7.3
+Requires: libpeas-gtk >= 0.7.3
+Requires: libsecret >= 0.18
+Requires: libsoup >= 2.42.0
+Requires: libxml2 >= 1:2.7.8
+Requires: tdb >= 2:1.2.6
+Requires: totem-pl-parser >= 3.2.0
+Requires: udev-glib >= 143
+Suggests: gstreamer-flac >= 1.4.0
+Suggests: gstreamer-mad >= 1.4.0
+Suggests: gstreamer-neon >= 1.4.0
+Suggests: gstreamer-vorbis >= 1.4.0
Suggests: libpeas-gtk >= 0.7.3
Suggests: libpeas-loader-python3
Suggests: python3-Mako
Suggests: python3-zeitgeist
Obsoletes: net-rhythmbox
-# sr at Latn vs. sr at latin
-Conflicts: glibc-misc < 6:2.7
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
%description
@@ -115,33 +134,63 @@ Rhythmbox böngésző plugin.
%description -n browser-plugin-%{name} -l pl.UTF-8
Wtyczka Rhythmboksa do przeglądarek WWW.
+%package devel
+Summary: Header files for developing Rhythmbox plugins
+Summary(pl.UTF-8): Pliki nagłówkowe do tworzenia wtyczek Rhythmboksa
+Group: Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: glib2-devel >= 1:2.38.0
+Requires: gstreamer-devel >= 1.4.0
+Requires: gtk+3-devel >= 3.20.0
+Requires: libsoup-devel >= 2.42.0
+Requires: libxml2-devel >= 1:2.7.8
+Requires: totem-pl-parser-devel >= 3.2.0
+
+%description devel
+Header files for developing Rhythmbox plugins.
+
+%description devel -l pl.UTF-8
+Pliki nagłówkowe do tworzenia wtyczek Rhythmboksa.
+
+%package apidocs
+Summary: Documentation for Rhythmbox plugin API
+Summary(pl.UTF-8): Dokumentacja API wtyczek Rhythmboksa
+Group: Documentation
+
+%description apidocs
+Documentation for Rhythmbox plugin API.
+
+%description apidocs -l pl.UTF-8
+Dokumentacja API wtyczek Rhythmboksa.
+
%prep
%setup -q
+%if %{with libdmapsharing4}
+%patch0 -p1
+%endif
%build
%{__gtkdocize}
-%{__glib_gettextize}
%{__intltoolize}
%{__libtoolize}
%{__aclocal} -I macros
%{__autoheader}
%{__automake}
%{__autoconf}
-MOZILLA_PLUGINDIR=%{_browserpluginsdir} \
%configure \
+ MOZILLA_PLUGINDIR=%{_browserpluginsdir} \
--disable-static \
--disable-silent-rules \
--enable-browser-plugin \
+ %{?with_daap:--enable-daap} \
--enable-lirc \
--enable-python \
--enable-vala \
- %{!?with_ipod:--without-ipod} \
- %{?with_daap:--enable-daap} \
--with-gudev \
+ --with-html-dir=%{_gtkdocdir} \
+ %{!?with_ipod:--without-ipod} \
--with-mtp \
- --with%{!?with_webkit:out}-webkit \
- --with-x \
- --without-hal
+ --with-x
%{__make}
@@ -156,13 +205,7 @@ rm -rf $RPM_BUILD_ROOT
%{__rm} $RPM_BUILD_ROOT%{_libdir}/librhythmbox-core.la
%{__rm} $RPM_BUILD_ROOT%{_libdir}/rhythmbox/plugins/*/*.la
-# there is no -devel subpackage
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/gir-1.0
-%{__rm} -r $RPM_BUILD_ROOT%{_datadir}/gtk-doc
-%{__rm} -r $RPM_BUILD_ROOT%{_includedir}/rhythmbox
%{__rm} -r $RPM_BUILD_ROOT%{_libdir}/rhythmbox/sample-plugins
-%{__rm} $RPM_BUILD_ROOT%{_libdir}/librhythmbox-core.so
-%{__rm} $RPM_BUILD_ROOT%{_pkgconfigdir}/rhythmbox.pc
%clean
rm -rf $RPM_BUILD_ROOT
@@ -346,3 +389,15 @@ fi
%files -n browser-plugin-%{name}
%defattr(644,root,root,755)
%attr(755,root,root) %{_browserpluginsdir}/librhythmbox-itms-detection-plugin.so
+
+%files devel
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/librhythmbox-core.so
+%{_datadir}/gir-1.0/MPID-3.0.gir
+%{_datadir}/gir-1.0/RB-3.0.gir
+%{_includedir}/rhythmbox
+%{_pkgconfigdir}/rhythmbox.pc
+
+%files apidocs
+%defattr(644,root,root,755)
+%{_gtkdocdir}/rhythmbox
diff --git a/rhythmbox-libdmapsharing4.patch b/rhythmbox-libdmapsharing4.patch
new file mode 100644
index 0000000..bec195b
--- /dev/null
+++ b/rhythmbox-libdmapsharing4.patch
@@ -0,0 +1,1196 @@
+From 5c132de76fbd971cec00efb193a6e61d0ef3e447 Mon Sep 17 00:00:00 2001
+From: "W. Michael Petullo" <mike at flyn.org>
+Date: Thu, 12 Jul 2018 00:07:38 -0400
+Subject: [PATCH] Port DAAP plugin to libdmapsharing-4.0 API
+
+Signed-off-by: W. Michael Petullo <mike at flyn.org>
+---
+ configure.ac | 2 +-
+ plugins/daap/rb-daap-container-record.c | 14 +--
+ plugins/daap/rb-daap-container-record.h | 13 +-
+ plugins/daap/rb-daap-plugin.c | 112 ++++++++++++------
+ plugins/daap/rb-daap-record-factory.c | 13 +-
+ plugins/daap/rb-daap-record-factory.h | 2 +-
+ plugins/daap/rb-daap-record.c | 12 +-
+ plugins/daap/rb-daap-record.h | 12 +-
+ plugins/daap/rb-daap-sharing.c | 8 +-
+ plugins/daap/rb-daap-source.c | 44 +++----
+ plugins/daap/rb-dacp-pairing-page.c | 64 +++++-----
+ plugins/daap/rb-dacp-pairing-page.h | 4 +-
+ plugins/daap/rb-dacp-player.c | 54 ++++-----
+ plugins/daap/rb-dacp-player.h | 2 +-
+ plugins/daap/rb-dmap-container-db-adapter.c | 22 ++--
+ plugins/daap/rb-rhythmdb-dmap-db-adapter.c | 22 ++--
+ .../rb-rhythmdb-query-model-dmap-db-adapter.c | 22 ++--
+ 17 files changed, 230 insertions(+), 192 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index cf696e945..93634c6de 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -632,7 +632,7 @@ AC_ARG_ENABLE(daap,
+ [Disable DAAP support]),,
+ enable_daap=auto)
+ if test "x$enable_daap" != "xno"; then
+- PKG_CHECK_MODULES(DMAPSHARING, libdmapsharing-3.0 >= 2.9.19,
++ PKG_CHECK_MODULES(DMAPSHARING, libdmapsharing-4.0,
+ have_libdmapsharing=yes,
+ have_libdmapsharing=no)
+ if test "x$have_libdmapsharing" = "xno" -a "x$enable_daap" = "xyes"; then
+diff --git a/plugins/daap/rb-daap-container-record.c b/plugins/daap/rb-daap-container-record.c
+index 7bb63ab70..e167b6012 100644
+--- a/plugins/daap/rb-daap-container-record.c
++++ b/plugins/daap/rb-daap-container-record.c
+@@ -87,20 +87,20 @@ rb_daap_container_record_get_property (GObject *object,
+ }
+
+ guint
+-rb_daap_container_record_get_id (DMAPContainerRecord *record)
++rb_daap_container_record_get_id (DmapContainerRecord *record)
+ {
+ return GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (RB_DAAP_CONTAINER_RECORD (record)->priv->source), "daap_id"));
+ }
+
+ void
+-rb_daap_container_record_add_entry (DMAPContainerRecord *container_record,
+- DMAPRecord *record, gint id)
++rb_daap_container_record_add_entry (DmapContainerRecord *container_record,
++ DmapRecord *record, gint id, GError **error)
+ {
+ g_error ("Unimplemented");
+ }
+
+ guint64
+-rb_daap_container_record_get_entry_count (DMAPContainerRecord *record)
++rb_daap_container_record_get_entry_count (DmapContainerRecord *record)
+ {
+ RhythmDBQueryModel *model;
+ guint64 count;
+@@ -113,8 +113,8 @@ rb_daap_container_record_get_entry_count (DMAPContainerRecord *record)
+ return count;
+ }
+
+-DMAPDb *
+-rb_daap_container_record_get_entries (DMAPContainerRecord *record)
++DmapDb *
++rb_daap_container_record_get_entries (DmapContainerRecord *record)
+ {
+ RhythmDBQueryModel *model;
+ g_object_get (RB_DAAP_CONTAINER_RECORD (record)->priv->source,
+@@ -152,7 +152,7 @@ rb_daap_container_record_class_finalize (RBDAAPContainerRecordClass *klass)
+ static void
+ rb_daap_container_record_daap_iface_init (gpointer iface, gpointer data)
+ {
+- DMAPContainerRecordIface *dmap_container_record = iface;
++ DmapContainerRecordInterface *dmap_container_record = iface;
+
+ g_assert (G_TYPE_FROM_INTERFACE (dmap_container_record) == DMAP_TYPE_CONTAINER_RECORD);
+
+diff --git a/plugins/daap/rb-daap-container-record.h b/plugins/daap/rb-daap-container-record.h
+index fc068b321..b21d78c7b 100644
+--- a/plugins/daap/rb-daap-container-record.h
++++ b/plugins/daap/rb-daap-container-record.h
+@@ -57,15 +57,16 @@ typedef struct {
+
+ GType rb_daap_container_record_get_type (void);
+
+-guint rb_daap_container_record_get_id (DMAPContainerRecord *record);
++guint rb_daap_container_record_get_id (DmapContainerRecord *record);
+
+-void rb_daap_container_record_add_entry (DMAPContainerRecord *container_record,
+- DMAPRecord *record,
+- gint id);
++void rb_daap_container_record_add_entry (DmapContainerRecord *container_record,
++ DmapRecord *record,
++ gint id,
++ GError **error);
+
+-guint64 rb_daap_container_record_get_entry_count (DMAPContainerRecord *record);
++guint64 rb_daap_container_record_get_entry_count (DmapContainerRecord *record);
+
+-DMAPDb *rb_daap_container_record_get_entries (DMAPContainerRecord *record);
++DmapDb *rb_daap_container_record_get_entries (DmapContainerRecord *record);
+
+ RBDAAPContainerRecord *rb_daap_container_record_new (char *name,
+ RBPlaylistSource *model);
+diff --git a/plugins/daap/rb-daap-plugin.c b/plugins/daap/rb-daap-plugin.c
+index 5e5af17e8..acd292509 100644
+--- a/plugins/daap/rb-daap-plugin.c
++++ b/plugins/daap/rb-daap-plugin.c
+@@ -94,9 +94,9 @@ struct _RBDaapPlugin
+
+ GSimpleAction *new_share_action;
+
+- DMAPMdnsBrowser *mdns_browser;
++ DmapMdnsBrowser *mdns_browser;
+
+- DACPShare *dacp_share;
++ DmapControlShare *dacp_share;
+
+ GHashTable *source_lookup;
+
+@@ -207,7 +207,8 @@ impl_activate (PeasActivatable *bplugin)
+
+ plugin->dacp_share = rb_daap_create_dacp_share (G_OBJECT (plugin));
+ if (g_settings_get_boolean (plugin->dacp_settings, "enable-remote")) {
+- dacp_share_start_lookup (plugin->dacp_share);
++ GError *error = NULL;
++ dmap_control_share_start_lookup (plugin->dacp_share, &error);
+ }
+
+ register_daap_dbus_iface (plugin);
+@@ -291,33 +292,45 @@ find_source_by_service_name (RBDaapPlugin *plugin,
+ }
+
+ static void
+-mdns_service_added (DMAPMdnsBrowser *browser,
+- DMAPMdnsBrowserService *service,
++mdns_service_added (DmapMdnsBrowser *browser,
++ DmapMdnsService *service,
+ RBDaapPlugin *plugin)
+ {
+ RBSource *source;
+ RBShell *shell;
++ gchar *service_name = NULL;
++ gchar *name = NULL;
++ gchar *host = NULL;
++ guint port;
++ gboolean password_protected;
++
++ g_object_get(service, "service-name", &service_name,
++ "name", &name,
++ "host", &host,
++ "port", &port,
++ "password-protected", &password_protected,
++ NULL);
+
+ rb_debug ("New service: %s name=%s host=%s port=%u password=%d",
+- service->service_name,
+- service->name,
+- service->host,
+- service->port,
+- service->password_protected);
++ service_name,
++ name,
++ host,
++ port,
++ password_protected);
+
+- source = find_source_by_service_name (plugin, service->service_name);
++ source = find_source_by_service_name (plugin, service_name);
+
+ if (source == NULL) {
+ g_object_get (plugin, "object", &shell, NULL);
+
+ source = rb_daap_source_new (shell,
+ G_OBJECT (plugin),
+- service->service_name,
+- service->name,
+- service->host,
+- service->port,
+- service->password_protected);
+- g_hash_table_insert (plugin->source_lookup, g_strdup (service->service_name), source);
++ service_name,
++ name,
++ host,
++ port,
++ password_protected);
++ g_hash_table_insert (plugin->source_lookup, g_strdup(service_name), source);
+ rb_shell_append_display_page (shell,
+ RB_DISPLAY_PAGE (source),
+ RB_DISPLAY_PAGE_GROUP_SHARED);
+@@ -325,16 +338,20 @@ mdns_service_added (DMAPMdnsBrowser *browser,
+ g_object_unref (shell);
+ } else {
+ g_object_set (source,
+- "name", service->name,
+- "host", service->host,
+- "port", service->port,
+- "password-protected", service->password_protected,
++ "name", name,
++ "host", host,
++ "port", port,
++ "password-protected", password_protected,
+ NULL);
+ }
++
++ g_free (service_name);
++ g_free (name);
++ g_free (host);
+ }
+
+ static void
+-mdns_service_removed (DMAPMdnsBrowser *browser,
++mdns_service_removed (DmapMdnsBrowser *browser,
+ const char *service_name,
+ RBDaapPlugin *plugin)
+ {
+@@ -370,7 +387,7 @@ start_browsing (RBDaapPlugin *plugin)
+ return;
+ }
+
+- plugin->mdns_browser = dmap_mdns_browser_new (DMAP_MDNS_BROWSER_SERVICE_TYPE_DAAP);
++ plugin->mdns_browser = dmap_mdns_browser_new (DMAP_MDNS_SERVICE_TYPE_DAAP);
+ if (plugin->mdns_browser == NULL) {
+ g_warning ("Unable to start mDNS browsing");
+ return;
+@@ -432,10 +449,11 @@ static void
+ dacp_settings_changed_cb (GSettings *settings, const char *key, RBDaapPlugin *plugin)
+ {
+ if (g_strcmp0 (key, "enable-remote") == 0) {
++ GError *error = NULL;
+ if (g_settings_get_boolean (settings, key)) {
+- dacp_share_start_lookup (plugin->dacp_share);
++ dmap_control_share_start_lookup (plugin->dacp_share, &error);
+ } else {
+- dacp_share_stop_lookup (plugin->dacp_share);
++ dmap_control_share_stop_lookup (plugin->dacp_share, &error);
+ }
+ }
+ }
+@@ -473,7 +491,7 @@ new_daap_share_location_added_cb (RBURIDialog *dialog,
+ char *host;
+ char *p;
+ int port = 3689;
+- DMAPMdnsBrowserService service;
++ DmapMdnsService *service;
+
+ host = g_strdup (location);
+ p = strrchr (host, ':');
+@@ -483,17 +501,20 @@ new_daap_share_location_added_cb (RBURIDialog *dialog,
+ }
+
+ rb_debug ("adding manually specified DAAP share at %s", location);
+- service.name = (char *) location;
+- service.host = (char *) host;
+- service.service_name = service.name;
+- service.port = port;
+- service.password_protected = FALSE;
++ service = g_object_new (DMAP_TYPE_MDNS_SERVICE,
++ "service-name", location,
++ "name", location,
++ "host", host,
++ "port", port,
++ "password-protected", false,
++ NULL);
++
+ mdns_service_added (NULL,
+- &service,
++ service,
+ plugin);
+
+ g_free (host);
+-
++ g_object_unref(service);
+ }
+
+ static void
+@@ -778,16 +799,29 @@ daap_dbus_method_call (GDBusConnection *connection,
+ }
+
+ if (g_strcmp0 (method_name, "AddDAAPSource") == 0) {
+- DMAPMdnsBrowserService service = {0,};
+- g_variant_get (parameters, "(&s&su)", &service.name, &service.host, &service.port);
+- service.password_protected = FALSE;
+- service.service_name = service.name;
++ DmapMdnsService *service;
++ gchar *name = NULL;
++ gchar *host = NULL;
++ guint port;
++
++ g_variant_get (parameters, "(&s&su)", &name, &host, &port);
++
++ service = g_object_new (DMAP_TYPE_MDNS_SERVICE,
++ "service-name", name,
++ "name", name,
++ "host", host,
++ "port", port,
++ "password-protected", FALSE,
++ NULL);
+
+- rb_debug ("adding DAAP source %s (%s:%d)", service.name, service.host, service.port);
+- mdns_service_added (NULL, &service, plugin);
++ rb_debug ("adding DAAP source %s (%s:%d)", name, host, port);
++ mdns_service_added (NULL, service, plugin);
+
+ g_dbus_method_invocation_return_value (invocation, NULL);
+
++ g_free(name);
++ g_free(host);
++ g_object_unref(service);
+ } else if (g_strcmp0 (method_name, "RemoveDAAPSource") == 0) {
+ const char *service_name;
+
+diff --git a/plugins/daap/rb-daap-record-factory.c b/plugins/daap/rb-daap-record-factory.c
+index 35d920ead..2b56e4d4c 100644
+--- a/plugins/daap/rb-daap-record-factory.c
++++ b/plugins/daap/rb-daap-record-factory.c
+@@ -31,13 +31,14 @@
+ #include "rb-daap-record-factory.h"
+ #include "rb-daap-record.h"
+
+-DMAPRecord *
+-rb_daap_record_factory_create (DMAPRecordFactory *factory,
+- gpointer user_data)
++DmapRecord *
++rb_daap_record_factory_create (DmapRecordFactory *factory,
++ gpointer user_data,
++ GError **error)
+ {
+- DAAPRecord *record;
++ DmapAvRecord *record;
+
+- record = DAAP_RECORD (rb_daap_record_new ((RhythmDBEntry *) user_data));
++ record = DMAP_AV_RECORD (rb_daap_record_new ((RhythmDBEntry *) user_data));
+
+ return (DMAP_RECORD (record));
+ }
+@@ -60,7 +61,7 @@ rb_daap_record_factory_class_finalize (RBDAAPRecordFactoryClass *klass)
+ static void
+ rb_daap_record_factory_interface_init (gpointer iface, gpointer data)
+ {
+- DMAPRecordFactoryIface *factory = iface;
++ DmapRecordFactoryInterface *factory = iface;
+
+ g_assert (G_TYPE_FROM_INTERFACE (factory) == DMAP_TYPE_RECORD_FACTORY);
+
+diff --git a/plugins/daap/rb-daap-record-factory.h b/plugins/daap/rb-daap-record-factory.h
+index f0b6bf018..863fbe708 100644
+--- a/plugins/daap/rb-daap-record-factory.h
++++ b/plugins/daap/rb-daap-record-factory.h
+@@ -60,7 +60,7 @@ GType rb_daap_record_factory_get_type (void);
+
+ RBDAAPRecordFactory *rb_daap_record_factory_new (void);
+
+-DMAPRecord *rb_daap_record_factory_create (DMAPRecordFactory *factory, gpointer user_data);
++DmapRecord *rb_daap_record_factory_create (DmapRecordFactory *factory, gpointer user_data, GError **error);
+
+ void _rb_daap_record_factory_register_type (GTypeModule *module);
+
+diff --git a/plugins/daap/rb-daap-record.c b/plugins/daap/rb-daap-record.c
+index 5ecb885e7..1b92504b7 100644
+--- a/plugins/daap/rb-daap-record.c
++++ b/plugins/daap/rb-daap-record.c
+@@ -252,7 +252,7 @@ rb_daap_record_get_property (GObject *object,
+ }
+
+ gboolean
+-rb_daap_record_itunes_compat (DAAPRecord *record)
++rb_daap_record_itunes_compat (DmapAvRecord *record)
+ {
+ const gchar *format = RB_DAAP_RECORD (record)->priv->real_format;
+
+@@ -263,7 +263,7 @@ rb_daap_record_itunes_compat (DAAPRecord *record)
+ }
+
+ GInputStream *
+-rb_daap_record_read (DAAPRecord *record, GError **error)
++rb_daap_record_read (DmapAvRecord *record, GError **error)
+ {
+ GFile *file;
+ GInputStream *fnval = NULL;
+@@ -351,9 +351,9 @@ rb_daap_record_class_finalize (RBDAAPRecordClass *klass)
+ static void
+ rb_daap_record_daap_iface_init (gpointer iface, gpointer data)
+ {
+- DAAPRecordIface *daap_record = iface;
++ DmapAvRecordInterface *daap_record = iface;
+
+- g_assert (G_TYPE_FROM_INTERFACE (daap_record) == DAAP_TYPE_RECORD);
++ g_assert (G_TYPE_FROM_INTERFACE (daap_record) == DMAP_TYPE_AV_RECORD);
+
+ daap_record->itunes_compat = rb_daap_record_itunes_compat;
+ daap_record->read = rb_daap_record_read;
+@@ -362,7 +362,7 @@ rb_daap_record_daap_iface_init (gpointer iface, gpointer data)
+ static void
+ rb_daap_record_dmap_iface_init (gpointer iface, gpointer data)
+ {
+- DMAPRecordIface *dmap_record = iface;
++ DmapRecordInterface *dmap_record = iface;
+
+ g_assert (G_TYPE_FROM_INTERFACE (dmap_record) == DMAP_TYPE_RECORD);
+ }
+@@ -371,7 +371,7 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED (RBDAAPRecord,
+ rb_daap_record,
+ G_TYPE_OBJECT,
+ 0,
+- G_IMPLEMENT_INTERFACE_DYNAMIC (DAAP_TYPE_RECORD, rb_daap_record_daap_iface_init)
++ G_IMPLEMENT_INTERFACE_DYNAMIC (DMAP_TYPE_AV_RECORD, rb_daap_record_daap_iface_init)
+ G_IMPLEMENT_INTERFACE_DYNAMIC (DMAP_TYPE_RECORD, rb_daap_record_dmap_iface_init))
+
+ static void
+diff --git a/plugins/daap/rb-daap-record.h b/plugins/daap/rb-daap-record.h
+index 1f128a399..ba941cb6e 100644
+--- a/plugins/daap/rb-daap-record.h
++++ b/plugins/daap/rb-daap-record.h
+@@ -57,15 +57,15 @@ GType rb_daap_record_get_type (void);
+
+ RBDAAPRecord *rb_daap_record_new (RhythmDBEntry *entry);
+
+-gint rb_daap_record_get_id (DAAPRecord *record);
++gint rb_daap_record_get_id (DmapAvRecord *record);
+
+-gboolean rb_daap_record_itunes_compat (DAAPRecord *record);
++gboolean rb_daap_record_itunes_compat (DmapAvRecord *record);
+
+-void rb_daap_record_set_transcode_format (DAAPRecord *record,
+- const gint format);
++void rb_daap_record_set_transcode_format (DmapAvRecord *record,
++ const gint format);
+
+-GInputStream *rb_daap_record_read (DAAPRecord *record,
+- GError **err);
++GInputStream *rb_daap_record_read (DmapAvRecord *record,
++ GError **err);
+
+ void _rb_daap_record_register_type (GTypeModule *module);
+
+diff --git a/plugins/daap/rb-daap-sharing.c b/plugins/daap/rb-daap-sharing.c
+index 63e5dbc7e..80196661f 100644
+--- a/plugins/daap/rb-daap-sharing.c
++++ b/plugins/daap/rb-daap-sharing.c
+@@ -45,7 +45,7 @@
+
+ #include <libdmapsharing/dmap.h>
+
+-static DAAPShare *share = NULL;
++static DmapAvShare *share = NULL;
+ static GSettings *settings = NULL;
+
+ char *
+@@ -79,8 +79,8 @@ static void
+ create_share (RBShell *shell)
+ {
+ RhythmDB *rdb;
+- DMAPDb *db;
+- DMAPContainerDb *container_db;
++ DmapDb *db;
++ DmapContainerDb *container_db;
+ RBPlaylistManager *playlist_manager;
+ char *name;
+ char *password;
+@@ -108,7 +108,7 @@ create_share (RBShell *shell)
+ password = NULL;
+ }
+
+- share = daap_share_new (name, password, db, container_db, NULL);
++ share = dmap_av_share_new (name, password, db, container_db, NULL);
+
+ g_settings_bind_with_mapping (settings, "share-name",
+ share, "name",
+diff --git a/plugins/daap/rb-daap-source.c b/plugins/daap/rb-daap-source.c
+index ef30cd8fa..a43bf8513 100644
+--- a/plugins/daap/rb-daap-source.c
++++ b/plugins/daap/rb-daap-source.c
+@@ -377,7 +377,7 @@ rb_daap_source_new (RBShell *shell,
+
+ typedef struct {
+ RBDAAPSource *source;
+- DMAPConnection *connection;
++ DmapConnection *connection;
+ SoupSession *session;
+ SoupMessage *message;
+ SoupAuth *auth;
+@@ -479,7 +479,7 @@ ask_password (RBDAAPSource *source,
+ }
+
+ static void
+-connection_auth_cb (DMAPConnection *connection,
++connection_auth_cb (DmapConnection *connection,
+ const char *name,
+ SoupSession *session,
+ SoupMessage *msg,
+@@ -517,8 +517,8 @@ connection_auth_cb (DMAPConnection *connection,
+ }
+
+ static void
+-connection_connecting_cb (DMAPConnection *connection,
+- DMAPConnectionState state,
++connection_connecting_cb (DmapConnection *connection,
++ DmapConnectionState state,
+ float progress,
+ RBDAAPSource *source)
+ {
+@@ -535,7 +535,7 @@ connection_connecting_cb (DMAPConnection *connection,
+ case DMAP_GET_REVISION_NUMBER:
+ g_object_set (source, "load-status", RB_SOURCE_LOAD_STATUS_LOADING, NULL);
+ case DMAP_GET_DB_INFO:
+- case DMAP_GET_SONGS:
++ case DMAP_GET_MEDIA:
+ case DMAP_GET_PLAYLISTS:
+ case DMAP_GET_PLAYLIST_ENTRIES:
+ g_object_set (source->priv->connection_status,
+@@ -566,7 +566,7 @@ connection_connecting_cb (DMAPConnection *connection,
+ }
+
+ static void
+-connection_disconnected_cb (DMAPConnection *connection,
++connection_disconnected_cb (DmapConnection *connection,
+ RBDAAPSource *source)
+ {
+ GIcon *icon;
+@@ -605,7 +605,7 @@ _add_location_to_playlist (const char *uri, RBStaticPlaylistSource *source)
+ }
+
+ static void
+-rb_daap_source_connection_cb (DMAPConnection *connection,
++rb_daap_source_connection_cb (DmapConnection *connection,
+ gboolean result,
+ const char *reason,
+ RBSource *source)
+@@ -640,7 +640,7 @@ rb_daap_source_connection_cb (DMAPConnection *connection,
+ NULL);
+ playlists = dmap_connection_get_playlists (DMAP_CONNECTION (daap_source->priv->connection));
+ for (l = playlists; l != NULL; l = g_slist_next (l)) {
+- DMAPPlaylist *playlist = l->data;
++ DmapPlaylist *playlist = l->data;
+ RBSource *playlist_source;
+
+ playlist_source = rb_static_playlist_source_new (shell, playlist->name, settings, FALSE, entry_type);
+@@ -661,9 +661,9 @@ rb_daap_source_selected (RBDisplayPage *page)
+ {
+ RBDAAPSource *daap_source = RB_DAAP_SOURCE (page);
+ RBShell *shell = NULL;
+- DMAPRecordFactory *factory;
++ DmapRecordFactory *factory;
+ RhythmDB *rdb = NULL;
+- DMAPDb *db = NULL;
++ DmapDb *db = NULL;
+ char *name = NULL;
+ RhythmDBEntryType *entry_type;
+ RBTaskList *tasklist;
+@@ -695,11 +695,11 @@ rb_daap_source_selected (RBDisplayPage *page)
+ rb_task_list_add_task (tasklist, RB_TASK_PROGRESS (daap_source->priv->connection_status));
+ g_object_unref (tasklist);
+
+- daap_source->priv->connection = daap_connection_new (name,
+- daap_source->priv->host,
+- daap_source->priv->port,
+- db,
+- factory);
++ daap_source->priv->connection = dmap_av_connection_new (name,
++ daap_source->priv->host,
++ daap_source->priv->port,
++ db,
++ factory);
+ g_object_unref (entry_type);
+ g_object_add_weak_pointer (G_OBJECT (daap_source->priv->connection), (gpointer *)&daap_source->priv->connection);
+
+@@ -718,16 +718,16 @@ rb_daap_source_selected (RBDisplayPage *page)
+ G_CALLBACK (connection_disconnected_cb),
+ page);
+
+- dmap_connection_connect (DMAP_CONNECTION (daap_source->priv->connection),
+- (DMAPConnectionCallback) rb_daap_source_connection_cb,
+- page);
++ dmap_connection_start (DMAP_CONNECTION (daap_source->priv->connection),
++ (DmapConnectionFunc) rb_daap_source_connection_cb,
++ page);
+
+ g_object_unref (rdb);
+ g_object_unref (shell);
+ }
+
+ static void
+-rb_daap_source_disconnect_cb (DMAPConnection *connection,
++rb_daap_source_disconnect_cb (DmapConnection *connection,
+ gboolean result,
+ const char *reason,
+ RBSource *source)
+@@ -792,9 +792,9 @@ rb_daap_source_disconnect (RBDAAPSource *daap_source)
+
+ /* keep the source alive until the disconnect completes */
+ g_object_ref (daap_source);
+- dmap_connection_disconnect (daap_source->priv->connection,
+- (DMAPConnectionCallback) rb_daap_source_disconnect_cb,
+- daap_source);
++ dmap_connection_stop (daap_source->priv->connection,
++ (DmapConnectionFunc) rb_daap_source_disconnect_cb,
++ daap_source);
+
+ /* wait until disconnected */
+ rb_debug ("Waiting for DAAP connection to finish");
+diff --git a/plugins/daap/rb-dacp-pairing-page.c b/plugins/daap/rb-dacp-pairing-page.c
+index 93a5f98af..f020fc25f 100644
+--- a/plugins/daap/rb-dacp-pairing-page.c
++++ b/plugins/daap/rb-dacp-pairing-page.c
+@@ -73,16 +73,16 @@ static void impl_get_property (GObject *object,
+ static void rb_dacp_pairing_page_connecting (RBDACPPairingPage *page, gboolean connecting);
+ static gboolean entry_insert_text_cb (GtkWidget *entry, gchar *text, gint len, gint *position, RBDACPPairingPage *page);
+ static gboolean entry_backspace_cb (GtkWidget *entry, RBDACPPairingPage *page);
+-static void remote_paired_cb (DACPShare *share, gchar *service_name, gboolean connected, RBDACPPairingPage *page);
++static void remote_paired_cb (DmapControlShare *share, gchar *service_name, gboolean connected, RBDACPPairingPage *page);
+
+-static void dacp_remote_added (DACPShare *share, gchar *service_name, gchar *display_name, RBDaapPlugin *plugin);
+-static void dacp_remote_removed (DACPShare *share, gchar *service_name, RBDaapPlugin *plugin);
++static void dacp_remote_added (DmapControlShare *share, gchar *service_name, gchar *display_name, RBDaapPlugin *plugin);
++static void dacp_remote_removed (DmapControlShare *share, gchar *service_name, RBDaapPlugin *plugin);
+
+-/* DACPShare signals */
+-static gboolean dacp_lookup_guid (DACPShare *share, gchar *guid, GSettings *settings);
+-static void dacp_add_guid (DACPShare *share, gchar *guid, GSettings *settings);
++/* DmapControlShare signals */
++static gboolean dacp_lookup_guid (DmapControlShare *share, gchar *guid, GSettings *settings);
++static void dacp_add_guid (DmapControlShare *share, gchar *guid, GSettings *settings);
+
+-static void dacp_player_updated (RBDACPPlayer *player, DACPShare *share);
++static void dacp_player_updated (RBDACPPlayer *player, DmapControlShare *share);
+
+ struct RBDACPPairingPagePrivate
+ {
+@@ -90,7 +90,7 @@ struct RBDACPPairingPagePrivate
+
+ gboolean done_pairing;
+
+- DACPShare *dacp_share;
++ DmapControlShare *dacp_share;
+
+ GtkBuilder *builder;
+ GtkWidget *entries[4];
+@@ -138,10 +138,10 @@ entry_insert_text_cb (GtkWidget *entry, gchar *text, gint len, gint *position, R
+ /* The last character is still not in the entry */
+ passcode[3] = new_char;
+ rb_dacp_pairing_page_connecting (page, TRUE);
+- /* Let DACPShare do the heavy-lifting */
+- dacp_share_pair (page->priv->dacp_share,
+- page->priv->service_name,
+- passcode);
++ /* Let DmapControlShare do the heavy-lifting */
++ dmap_control_share_pair (page->priv->dacp_share,
++ page->priv->service_name,
++ passcode);
+ }
+ /* let the default handler display the number */
+ return FALSE;
+@@ -329,7 +329,7 @@ impl_get_property (GObject *object,
+ RBDACPPairingPage *
+ rb_dacp_pairing_page_new (GObject *plugin,
+ RBShell *shell,
+- DACPShare *dacp_share,
++ DmapControlShare *dacp_share,
+ const char *display_name,
+ const char *service_name)
+ {
+@@ -400,7 +400,7 @@ rb_dacp_pairing_page_connecting (RBDACPPairingPage *page, gboolean connecting) {
+ }
+
+ static void
+-remote_paired_cb (DACPShare *share, gchar *service_name, gboolean connected, RBDACPPairingPage *page)
++remote_paired_cb (DmapControlShare *share, gchar *service_name, gboolean connected, RBDACPPairingPage *page)
+ {
+ /* Check if this remote is the remote paired */
+ if (g_strcmp0 (service_name, page->priv->service_name) != 0)
+@@ -417,14 +417,14 @@ remote_paired_cb (DACPShare *share, gchar *service_name, gboolean connected, RBD
+ }
+ }
+
+-DACPShare *
++DmapControlShare *
+ rb_daap_create_dacp_share (GObject *plugin)
+ {
+- DACPShare *share;
+- DACPPlayer *player;
++ DmapControlShare *share;
++ DmapControlPlayer *player;
+ RhythmDB *rdb;
+- DMAPDb *db;
+- DMAPContainerDb *container_db;
++ DmapDb *db;
++ DmapContainerDb *container_db;
+ RBPlaylistManager *playlist_manager;
+ RBShell *shell;
+ GSettings *share_settings;
+@@ -441,7 +441,7 @@ rb_daap_create_dacp_share (GObject *plugin)
+ db = DMAP_DB (rb_rhythmdb_dmap_db_adapter_new (rdb, RHYTHMDB_ENTRY_TYPE_SONG));
+ container_db = DMAP_CONTAINER_DB (rb_dmap_container_db_adapter_new (playlist_manager));
+
+- player = DACP_PLAYER (rb_dacp_player_new (shell));
++ player = DMAP_CONTROL_PLAYER (rb_dacp_player_new (shell));
+
+ share_settings = g_settings_new ("org.gnome.rhythmbox.sharing");
+ name = g_settings_get_string (share_settings, "share-name");
+@@ -451,7 +451,7 @@ rb_daap_create_dacp_share (GObject *plugin)
+ }
+ g_object_unref (share_settings);
+
+- share = dacp_share_new (name, player, db, container_db);
++ share = dmap_control_share_new (name, player, db, container_db);
+
+ daap_settings = g_settings_new ("org.gnome.rhythmbox.plugins.daap");
+ settings = g_settings_get_child (daap_settings, "dacp");
+@@ -497,13 +497,13 @@ rb_daap_create_dacp_share (GObject *plugin)
+
+ static void
+ dacp_player_updated (RBDACPPlayer *player,
+- DACPShare *share)
++ DmapControlShare *share)
+ {
+- dacp_share_player_updated (share);
++ dmap_control_share_player_updated (share);
+ }
+
+ static void
+-dacp_add_guid (DACPShare *share,
++dacp_add_guid (DmapControlShare *share,
+ gchar *guid,
+ GSettings *settings)
+ {
+@@ -528,7 +528,7 @@ dacp_add_guid (DACPShare *share,
+ }
+
+ static gboolean
+-dacp_lookup_guid (DACPShare *share,
++dacp_lookup_guid (DmapControlShare *share,
+ gchar *guid,
+ GSettings *settings)
+ {
+@@ -589,10 +589,10 @@ find_dacp_page (RBShell *shell, const gchar *service_name)
+ }
+
+ static void
+-dacp_remote_added (DACPShare *share,
+- gchar *service_name,
+- gchar *display_name,
+- RBDaapPlugin *plugin)
++dacp_remote_added (DmapControlShare *share,
++ gchar *service_name,
++ gchar *display_name,
++ RBDaapPlugin *plugin)
+ {
+ RBDACPPairingPage *page;
+ RBShell *shell;
+@@ -625,9 +625,9 @@ dacp_remote_added (DACPShare *share,
+ }
+
+ static void
+-dacp_remote_removed (DACPShare *share,
+- gchar *service_name,
+- RBDaapPlugin *plugin)
++dacp_remote_removed (DmapControlShare *share,
++ gchar *service_name,
++ RBDaapPlugin *plugin)
+ {
+ RBDACPPairingPage *page;
+ RBShell *shell;
+diff --git a/plugins/daap/rb-dacp-pairing-page.h b/plugins/daap/rb-dacp-pairing-page.h
+index fc8e06d38..67e121942 100644
+--- a/plugins/daap/rb-dacp-pairing-page.h
++++ b/plugins/daap/rb-dacp-pairing-page.h
+@@ -60,14 +60,14 @@ GType rb_dacp_pairing_page_get_type (void);
+
+ RBDACPPairingPage *rb_dacp_pairing_page_new (GObject *plugin,
+ RBShell *shell,
+- DACPShare *dacp_share,
++ DmapControlShare *dacp_share,
+ const char *display_name,
+ const char *service_name);
+
+ void rb_dacp_pairing_page_remote_found (RBDACPPairingPage *page);
+ void rb_dacp_pairing_page_remote_lost (RBDACPPairingPage *page);
+
+-DACPShare *rb_daap_create_dacp_share (GObject *plugin);
++DmapControlShare *rb_daap_create_dacp_share (GObject *plugin);
+
+ void _rb_dacp_pairing_page_register_type (GTypeModule *module);
+
+diff --git a/plugins/daap/rb-dacp-player.c b/plugins/daap/rb-dacp-player.c
+index 89f13e131..7a3253c32 100644
+--- a/plugins/daap/rb-dacp-player.c
++++ b/plugins/daap/rb-dacp-player.c
+@@ -58,15 +58,15 @@ static void rb_dacp_player_set_property (GObject *object, guint prop_id,
+ static void playing_song_changed (RBShellPlayer *shell_player, RhythmDBEntry *entry, RBDACPPlayer *player);
+ static void elapsed_changed (RBShellPlayer *shell_player, guint elapsed, RBDACPPlayer *player);
+
+-static DAAPRecord *rb_dacp_player_now_playing_record (DACPPlayer *player);
+-static guchar *rb_dacp_player_now_playing_artwork (DACPPlayer *player, guint width, guint height);
+-static void rb_dacp_player_play_pause (DACPPlayer *player);
+-static void rb_dacp_player_pause (DACPPlayer *player);
+-static void rb_dacp_player_next_item (DACPPlayer *player);
+-static void rb_dacp_player_prev_item (DACPPlayer *player);
++static DmapAvRecord *rb_dacp_player_now_playing_record (DmapControlPlayer *player);
++static gchar *rb_dacp_player_now_playing_artwork (DmapControlPlayer *player, guint width, guint height);
++static void rb_dacp_player_play_pause (DmapControlPlayer *player);
++static void rb_dacp_player_pause (DmapControlPlayer *player);
++static void rb_dacp_player_next_item (DmapControlPlayer *player);
++static void rb_dacp_player_prev_item (DmapControlPlayer *player);
+
+-static void rb_dacp_player_cue_clear (DACPPlayer *player);
+-static void rb_dacp_player_cue_play (DACPPlayer *player, GList *records, guint index);
++static void rb_dacp_player_cue_clear (DmapControlPlayer *player);
++static void rb_dacp_player_cue_play (DmapControlPlayer *player, GList *records, guint index);
+
+ enum {
+ PROP_0,
+@@ -87,9 +87,9 @@ static guint signals[LAST_SIGNAL] = { 0 };
+ static void
+ rb_dacp_player_iface_init (gpointer iface, gpointer data)
+ {
+- DACPPlayerIface *dacp_player = iface;
++ DmapControlPlayerInterface *dacp_player = iface;
+
+- g_assert (G_TYPE_FROM_INTERFACE (dacp_player) == DACP_TYPE_PLAYER);
++ g_assert (G_TYPE_FROM_INTERFACE (dacp_player) == DMAP_TYPE_CONTROL_PLAYER);
+
+ dacp_player->now_playing_record = rb_dacp_player_now_playing_record;
+ dacp_player->now_playing_artwork = rb_dacp_player_now_playing_artwork;
+@@ -106,7 +106,7 @@ G_DEFINE_DYNAMIC_TYPE_EXTENDED (RBDACPPlayer,
+ rb_dacp_player,
+ G_TYPE_OBJECT,
+ 0,
+- G_IMPLEMENT_INTERFACE_DYNAMIC (DACP_TYPE_PLAYER,
++ G_IMPLEMENT_INTERFACE_DYNAMIC (DMAP_TYPE_CONTROL_PLAYER,
+ rb_dacp_player_iface_init))
+
+ static void
+@@ -188,16 +188,16 @@ rb_dacp_player_get_property (GObject *object,
+ break;
+ case PROP_REPEAT_STATE:
+ rb_shell_player_get_playback_state (player->priv->shell_player, &shuffle, &repeat);
+- g_value_set_enum (value, repeat ? DACP_REPEAT_ALL : DACP_REPEAT_NONE);
++ g_value_set_enum (value, repeat ? DMAP_CONTROL_REPEAT_ALL : DMAP_CONTROL_REPEAT_NONE);
+ break;
+ case PROP_PLAY_STATE:
+ entry = rb_shell_player_get_playing_entry (player->priv->shell_player);
+ if (entry) {
+ g_object_get (player->priv->shell_player, "playing", &playing, NULL);
+- g_value_set_enum (value, playing ? DACP_PLAY_PLAYING : DACP_PLAY_PAUSED);
++ g_value_set_enum (value, playing ? DMAP_CONTROL_PLAY_PLAYING : DMAP_CONTROL_PLAY_PAUSED);
+ rhythmdb_entry_unref (entry);
+ } else {
+- g_value_set_enum (value, DACP_PLAY_STOPPED);
++ g_value_set_enum (value, DMAP_CONTROL_PLAY_STOPPED);
+ }
+ break;
+ case PROP_VOLUME:
+@@ -234,7 +234,7 @@ rb_dacp_player_set_property (GObject *object,
+ break;
+ case PROP_REPEAT_STATE:
+ rb_shell_player_get_playback_state (player->priv->shell_player, &shuffle, &repeat);
+- rb_shell_player_set_playback_state (player->priv->shell_player, shuffle, g_value_get_enum (value) != DACP_REPEAT_NONE);
++ rb_shell_player_set_playback_state (player->priv->shell_player, shuffle, g_value_get_enum (value) != DMAP_CONTROL_REPEAT_NONE);
+ break;
+ case PROP_VOLUME:
+ volume = ((double) g_value_get_ulong (value)) / 100.0;
+@@ -289,54 +289,54 @@ rb_dacp_player_new (RBShell *shell)
+ return player;
+ }
+
+-static DAAPRecord *
+-rb_dacp_player_now_playing_record (DACPPlayer *player)
++static DmapAvRecord *
++rb_dacp_player_now_playing_record (DmapControlPlayer *player)
+ {
+ RhythmDBEntry *entry;
+- DAAPRecord *record;
++ DmapAvRecord *record;
+
+ entry = rb_shell_player_get_playing_entry (RB_DACP_PLAYER (player)->priv->shell_player);
+ if (entry == NULL) {
+ return NULL;
+ } else {
+- record = DAAP_RECORD (rb_daap_record_new (entry));
++ record = DMAP_AV_RECORD (rb_daap_record_new (entry));
+ rhythmdb_entry_unref (entry);
+ return record;
+ }
+ }
+
+-static guchar *
+-rb_dacp_player_now_playing_artwork (DACPPlayer *player, guint width, guint height)
++static gchar *
++rb_dacp_player_now_playing_artwork (DmapControlPlayer *player, guint width, guint height)
+ {
+ return NULL;
+ }
+
+ static void
+-rb_dacp_player_play_pause (DACPPlayer *player)
++rb_dacp_player_play_pause (DmapControlPlayer *player)
+ {
+ rb_shell_player_playpause (RB_DACP_PLAYER (player)->priv->shell_player, NULL);
+ }
+
+ static void
+-rb_dacp_player_pause (DACPPlayer *player)
++rb_dacp_player_pause (DmapControlPlayer *player)
+ {
+ rb_shell_player_pause (RB_DACP_PLAYER (player)->priv->shell_player, NULL);
+ }
+
+ static void
+-rb_dacp_player_next_item (DACPPlayer *player)
++rb_dacp_player_next_item (DmapControlPlayer *player)
+ {
+ rb_shell_player_do_next (RB_DACP_PLAYER (player)->priv->shell_player, NULL);
+ }
+
+ static void
+-rb_dacp_player_prev_item (DACPPlayer *player)
++rb_dacp_player_prev_item (DmapControlPlayer *player)
+ {
+ rb_shell_player_do_previous (RB_DACP_PLAYER (player)->priv->shell_player, NULL);
+ }
+
+ static void
+-rb_dacp_player_cue_clear (DACPPlayer *player)
++rb_dacp_player_cue_clear (DmapControlPlayer *player)
+ {
+ RBDACPPlayer *rbplayer;
+ rbplayer = RB_DACP_PLAYER (player);
+@@ -344,7 +344,7 @@ rb_dacp_player_cue_clear (DACPPlayer *player)
+ }
+
+ static void
+-rb_dacp_player_cue_play (DACPPlayer *player, GList *records, guint index)
++rb_dacp_player_cue_play (DmapControlPlayer *player, GList *records, guint index)
+ {
+ GList *record;
+ gint current = 0;
+diff --git a/plugins/daap/rb-dacp-player.h b/plugins/daap/rb-dacp-player.h
+index ff2aa18fd..aa929018d 100644
+--- a/plugins/daap/rb-dacp-player.h
++++ b/plugins/daap/rb-dacp-player.h
+@@ -52,7 +52,7 @@ struct _RBDACPPlayerClass
+ {
+ GObjectClass parent_class;
+
+- void (*player_updated) (DACPPlayer *player);
++ void (*player_updated) (DmapControlPlayer *player);
+ };
+
+ struct _RBDACPPlayer
+diff --git a/plugins/daap/rb-dmap-container-db-adapter.c b/plugins/daap/rb-dmap-container-db-adapter.c
+index 1340d3a12..20637a45a 100644
+--- a/plugins/daap/rb-dmap-container-db-adapter.c
++++ b/plugins/daap/rb-dmap-container-db-adapter.c
+@@ -42,7 +42,7 @@ struct RBDMAPContainerDbAdapterPrivate {
+
+ typedef struct ForeachAdapterData {
+ gpointer data;
+- GHFunc func;
++ DmapIdContainerRecordFunc func;
+ } ForeachAdapterData;
+
+ static guint find_by_id (gconstpointer a, gconstpointer b)
+@@ -50,12 +50,12 @@ static guint find_by_id (gconstpointer a, gconstpointer b)
+ return GPOINTER_TO_UINT (g_object_get_data (G_OBJECT (a), "daap_id")) != GPOINTER_TO_UINT (b);
+ }
+
+-static DMAPContainerRecord *
+-rb_dmap_container_db_adapter_lookup_by_id (DMAPContainerDb *db, guint id)
++static DmapContainerRecord *
++rb_dmap_container_db_adapter_lookup_by_id (DmapContainerDb *db, guint id)
+ {
+ gchar *name;
+ GList *playlists;
+- DMAPContainerRecord *fnval = NULL;
++ DmapContainerRecord *fnval = NULL;
+
+ playlists = rb_playlist_manager_get_playlists (RB_DMAP_CONTAINER_DB_ADAPTER (db)->priv->playlist_manager);
+
+@@ -78,15 +78,17 @@ rb_dmap_container_db_adapter_lookup_by_id (DMAPContainerDb *db, guint id)
+ static void
+ foreach_adapter (RBPlaylistSource *entry, gpointer data)
+ {
++ guint id;
+ gchar *name;
+- DMAPContainerRecord *record;
++ DmapContainerRecord *record;
+ ForeachAdapterData *foreach_adapter_data;
+
+ foreach_adapter_data = data;
+ g_object_get (entry, "name", &name, NULL);
+ record = DMAP_CONTAINER_RECORD (rb_daap_container_record_new (name, entry));
++ id = rb_daap_container_record_get_id (record);
+
+- foreach_adapter_data->func (GINT_TO_POINTER (rb_daap_container_record_get_id (record)),
++ foreach_adapter_data->func (GUINT_TO_POINTER(id),
+ record,
+ foreach_adapter_data->data);
+
+@@ -94,8 +96,8 @@ foreach_adapter (RBPlaylistSource *entry, gpointer data)
+ }
+
+ static void
+-rb_dmap_container_db_adapter_foreach (DMAPContainerDb *db,
+- GHFunc func,
++rb_dmap_container_db_adapter_foreach (DmapContainerDb *db,
++ DmapIdContainerRecordFunc func,
+ gpointer data)
+ {
+ ForeachAdapterData *foreach_adapter_data;
+@@ -113,7 +115,7 @@ rb_dmap_container_db_adapter_foreach (DMAPContainerDb *db,
+ }
+
+ static gint64
+-rb_dmap_container_db_adapter_count (DMAPContainerDb *db)
++rb_dmap_container_db_adapter_count (DmapContainerDb *db)
+ {
+ gint64 count = 0;
+ GList *playlists = rb_playlist_manager_get_playlists (
+@@ -143,7 +145,7 @@ rb_dmap_container_db_adapter_class_finalize (RBDMAPContainerDbAdapterClass *klas
+ static void
+ rb_dmap_container_db_adapter_interface_init (gpointer iface, gpointer data)
+ {
+- DMAPContainerDbIface *dmap_db = iface;
++ DmapContainerDbInterface *dmap_db = iface;
+
+ g_assert (G_TYPE_FROM_INTERFACE (dmap_db) == DMAP_TYPE_CONTAINER_DB);
+
+diff --git a/plugins/daap/rb-rhythmdb-dmap-db-adapter.c b/plugins/daap/rb-rhythmdb-dmap-db-adapter.c
+index 412fb2cfb..8d5d0a97e 100644
+--- a/plugins/daap/rb-rhythmdb-dmap-db-adapter.c
++++ b/plugins/daap/rb-rhythmdb-dmap-db-adapter.c
+@@ -45,11 +45,11 @@ struct RBRhythmDBDMAPDbAdapterPrivate {
+
+ typedef struct ForeachAdapterData {
+ gpointer data;
+- GHFunc func;
++ DmapIdRecordFunc func;
+ } ForeachAdapterData;
+
+-static DMAPRecord *
+-rb_rhythmdb_dmap_db_adapter_lookup_by_id (const DMAPDb *db, guint id)
++static DmapRecord *
++rb_rhythmdb_dmap_db_adapter_lookup_by_id (const DmapDb *db, guint id)
+ {
+ RhythmDBEntry *entry;
+
+@@ -66,7 +66,7 @@ static void
+ foreach_adapter (RhythmDBEntry *entry, gpointer data)
+ {
+ gulong id;
+- DMAPRecord *record;
++ DmapRecord *record;
+ ForeachAdapterData *foreach_adapter_data;
+ char *playback_uri;
+
+@@ -81,7 +81,7 @@ foreach_adapter (RhythmDBEntry *entry, gpointer data)
+ foreach_adapter_data = data;
+ record = DMAP_RECORD (rb_daap_record_new (entry));
+
+- foreach_adapter_data->func (GUINT_TO_POINTER (id),
++ foreach_adapter_data->func (GUINT_TO_POINTER(id),
+ record,
+ foreach_adapter_data->data);
+
+@@ -90,9 +90,9 @@ foreach_adapter (RhythmDBEntry *entry, gpointer data)
+ }
+
+ static void
+-rb_rhythmdb_dmap_db_adapter_foreach (const DMAPDb *db,
+- GHFunc func,
+- gpointer data)
++rb_rhythmdb_dmap_db_adapter_foreach (const DmapDb *db,
++ DmapIdRecordFunc func,
++ gpointer data)
+ {
+ ForeachAdapterData *foreach_adapter_data;
+
+@@ -111,7 +111,7 @@ rb_rhythmdb_dmap_db_adapter_foreach (const DMAPDb *db,
+ }
+
+ static gint64
+-rb_rhythmdb_dmap_db_adapter_count (const DMAPDb *db)
++rb_rhythmdb_dmap_db_adapter_count (const DmapDb *db)
+ {
+ g_assert (RB_RHYTHMDB_DMAP_DB_ADAPTER (db)->priv->db != NULL);
+ return rhythmdb_entry_count_by_type (
+@@ -141,7 +141,7 @@ entry_set_string_prop (RhythmDB *db,
+ }
+
+ static guint
+-rb_rhythmdb_dmap_db_adapter_add (DMAPDb *db, DMAPRecord *record)
++rb_rhythmdb_dmap_db_adapter_add (DmapDb *db, DmapRecord *record, GError **error)
+ {
+ gchar *uri = NULL;
+ const gchar *title = NULL;
+@@ -265,7 +265,7 @@ rb_rhythmdb_dmap_db_adapter_class_finalize (RBRhythmDBDMAPDbAdapterClass *klass)
+ static void
+ rb_rhythmdb_dmap_db_adapter_interface_init (gpointer iface, gpointer data)
+ {
+- DMAPDbIface *dmap_db = iface;
++ DmapDbInterface *dmap_db = iface;
+
+ g_assert (G_TYPE_FROM_INTERFACE (dmap_db) == DMAP_TYPE_DB);
+
+diff --git a/plugins/daap/rb-rhythmdb-query-model-dmap-db-adapter.c b/plugins/daap/rb-rhythmdb-query-model-dmap-db-adapter.c
+index 161b92a55..bedfc17cd 100644
+--- a/plugins/daap/rb-rhythmdb-query-model-dmap-db-adapter.c
++++ b/plugins/daap/rb-rhythmdb-query-model-dmap-db-adapter.c
+@@ -41,11 +41,11 @@ struct RBRhythmDBQueryModelDMAPDbAdapterPrivate {
+
+ typedef struct ForeachAdapterData {
+ gpointer data;
+- GHFunc func;
++ DmapIdRecordFunc func;
+ } ForeachAdapterData;
+
+-static DMAPRecord *
+-rb_rhythmdb_query_model_dmap_db_adapter_lookup_by_id (const DMAPDb *db,
++static DmapRecord *
++rb_rhythmdb_query_model_dmap_db_adapter_lookup_by_id (const DmapDb *db,
+ guint id)
+ {
+ g_error ("Not implemented");
+@@ -59,7 +59,7 @@ foreach_adapter (GtkTreeModel *model,
+ gpointer data)
+ {
+ gulong id;
+- DMAPRecord *record;
++ DmapRecord *record;
+ RhythmDBEntry *entry;
+ ForeachAdapterData *foreach_adapter_data;
+
+@@ -69,7 +69,7 @@ foreach_adapter (GtkTreeModel *model,
+ foreach_adapter_data = data;
+ record = DMAP_RECORD (rb_daap_record_new (entry));
+
+- foreach_adapter_data->func (GUINT_TO_POINTER (id),
++ foreach_adapter_data->func (GUINT_TO_POINTER(id),
+ record,
+ foreach_adapter_data->data);
+
+@@ -80,9 +80,9 @@ foreach_adapter (GtkTreeModel *model,
+ }
+
+ static void
+-rb_rhythmdb_query_model_dmap_db_adapter_foreach (const DMAPDb *db,
+- GHFunc func,
+- gpointer data)
++rb_rhythmdb_query_model_dmap_db_adapter_foreach (const DmapDb *db,
++ DmapIdRecordFunc func,
++ gpointer data)
+ {
+ ForeachAdapterData *foreach_adapter_data;
+
+@@ -100,7 +100,7 @@ rb_rhythmdb_query_model_dmap_db_adapter_foreach (const DMAPDb *db,
+ }
+
+ static gint64
+-rb_rhythmdb_query_model_dmap_db_adapter_count (const DMAPDb *db)
++rb_rhythmdb_query_model_dmap_db_adapter_count (const DmapDb *db)
+ {
+ g_assert (RB_RHYTHMDB_QUERY_MODEL_DMAP_DB_ADAPTER (db)->priv->model != NULL);
+ return gtk_tree_model_iter_n_children (
+@@ -108,7 +108,7 @@ rb_rhythmdb_query_model_dmap_db_adapter_count (const DMAPDb *db)
+ }
+
+ static guint
+-rb_rhythmdb_query_model_dmap_db_adapter_add (DMAPDb *db, DMAPRecord *record)
++rb_rhythmdb_query_model_dmap_db_adapter_add (DmapDb *db, DmapRecord *record, GError **error)
+ {
+ g_error ("Not implemented");
+ return 0;
+@@ -134,7 +134,7 @@ rb_rhythmdb_query_model_dmap_db_adapter_class_finalize (RBRhythmDBQueryModelDMAP
+ static void
+ rb_rhythmdb_query_model_dmap_db_adapter_interface_init (gpointer iface, gpointer data)
+ {
+- DMAPDbIface *dmap_db = iface;
++ DmapDbInterface *dmap_db = iface;
+
+ g_assert (G_TYPE_FROM_INTERFACE (dmap_db) == DMAP_TYPE_DB);
+
+--
+2.21.0
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/rhythmbox.git/commitdiff/fb037d6074533130b215c538c6d69e68c929a53d
More information about the pld-cvs-commit
mailing list