[pulseaudio-discuss] [PATCH v3] Use local icon for zeroconf shared devices
Sylvain Baubeau
lebauce at gmail.com
Thu Sep 1 08:58:57 UTC 2016
Hello,
2016-08-31 23:35 GMT+02:00 Tanu Kaskinen <tanuk at iki.fi>:
> On Wed, 2016-08-31 at 18:14 +0200, Sylvain Baubeau wrote:
> > systemd-hostnamed provides an icon for the machine it is running on.
> > If it is running, module-zeroconf-publish uses this icon for the
> > 'icon-name' attribute in the Avahi properties. module-zeroconf-discover
> > passes this icon to module-tunnel using the module parameter
> > {sink/source}_properties.
> >
> > This allows to display a portable, desktop or phone instead of
> > the generic sound card icon.
> > ---
> > src/Makefile.am | 4 +-
> > src/modules/module-zeroconf-discover.c | 9 ++++
> > src/modules/module-zeroconf-publish.c | 79
> +++++++++++++++++++++++++++++++++-
> > 3 files changed, 88 insertions(+), 4 deletions(-)
> >
> > diff --git a/src/Makefile.am b/src/Makefile.am
> > index 7b19497..2d5bdd4 100644
> > --- a/src/Makefile.am
> > +++ b/src/Makefile.am
> > @@ -1899,8 +1899,8 @@ module_solaris_la_LIBADD = $(MODULE_LIBADD)
> >
> > module_zeroconf_publish_la_SOURCES = modules/module-zeroconf-publish.c
> > module_zeroconf_publish_la_LDFLAGS = $(MODULE_LDFLAGS)
> > -module_zeroconf_publish_la_LIBADD = $(MODULE_LIBADD) $(AVAHI_LIBS)
> libavahi-wrap.la libprotocol-native.la
> > -module_zeroconf_publish_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
> > +module_zeroconf_publish_la_LIBADD = $(MODULE_LIBADD) $(AVAHI_LIBS)
> $(DBUS_LIBS) libavahi-wrap.la libprotocol-native.la
> > +module_zeroconf_publish_la_CFLAGS = $(AM_CFLAGS) $(AVAHI_CFLAGS)
> $(DBUS_CFLAGS)
>
> Sorry for not realizing this already with the first version, but the D-
> Bus functionality needs to be disabled if D-Bus support is not enabled.
>
Done.
>
> > +static char *get_icon_name(pa_module*m) {
> > + const char *interface = HOSTNAME_DBUS_INTERFACE;
> > + const char *property = HOSTNAME_DBUS_ICON_PROPERTY;
> > + char *icon_name;
> > + pa_dbus_connection *bus;
> > + DBusError error;
> > + DBusMessageIter args;
> > + DBusMessage *msg = NULL;
> > + DBusMessage *reply = NULL;
> > + DBusConnection *conn = NULL;
> > + DBusMessageIter sub;
> > +
> > + if (!(bus = pa_dbus_bus_get(m->core, DBUS_BUS_SYSTEM, &error))) {
> > + pa_log("Failed to get system bus connection: %s",
> error.message);
> > + goto out;
> > + }
> > +
> > + conn = pa_dbus_connection_get(bus);
> > +
> > + msg = dbus_message_new_method_call(HOSTNAME_DBUS_INTERFACE,
> > + HOSTNAME_DBUS_PATH,
> > + "org.freedesktop.DBus.
> Properties",
> > + "Get");
> > + dbus_message_append_args(msg, DBUS_TYPE_STRING, &interface,
> DBUS_TYPE_STRING, &property, DBUS_TYPE_INVALID);
> > +
> > + dbus_error_init(&error);
> > + if ((reply = dbus_connection_send_with_reply_and_block(conn, msg,
> -1, &error)) == NULL) {
> > + pa_log("Failed to send: %s:%s\n", error.name, error.message);
>
> No need for \n.
>
Done
>
> > + dbus_error_free(&error);
> > + goto out;
> > + }
> > +
> > + dbus_message_iter_init(reply, &args);
> > + if (dbus_message_iter_get_arg_type(&args) != DBUS_TYPE_VARIANT) {
> > + pa_log("Incorrect reply type\n");
>
> No need for \n.
>
Done
>
> > + goto out;
> > + }
> > +
> > + dbus_message_iter_recurse(&args, &sub);
> > +
> > + if (dbus_message_iter_get_arg_type(&sub) != DBUS_TYPE_STRING) {
> > + pa_log("Incorrect value type\n");
>
> No need for \n.
>
Done
>
> --
> Tanu
> _______________________________________________
> pulseaudio-discuss mailing list
> pulseaudio-discuss at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20160901/ee854818/attachment.html>
More information about the pulseaudio-discuss
mailing list