Merge branch '0.9.20-stable' into stable-queue

Conflicts:
	src/Makefile.am
This commit is contained in:
Colin Guthrie 2009-11-20 16:58:28 +00:00
commit 3014081136
2 changed files with 61 additions and 50 deletions

View file

@ -107,27 +107,12 @@ MODULE_LDFLAGS = -module -disable-static -avoid-version $(LDFLAGS_NOUNDEFINED)
# Extra files # # Extra files #
################################### ###################################
EXTRA_DIST = \ ALSA_PROFILES = \
pulse/client.conf.in \
pulse/version.h.in \
daemon/daemon.conf.in \
daemon/default.pa.in \
daemon/system.pa.in \
daemon/default.pa.win32 \
depmod.py \
daemon/esdcompat.in \
daemon/start-pulseaudio-x11.in \
daemon/start-pulseaudio-kde.in \
utils/padsp \
modules/module-defs.h.m4 \
daemon/pulseaudio.desktop.in \
daemon/pulseaudio-kde.desktop.in \
map-file \
daemon/pulseaudio-system.conf \
modules/alsa/mixer/profile-sets/default.conf \ modules/alsa/mixer/profile-sets/default.conf \
modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \ modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \
modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf \ modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf
modules/alsa/mixer/profile-sets/90-pulseaudio.rules \
ALSA_PATHS = \
modules/alsa/mixer/paths/analog-input-aux.conf \ modules/alsa/mixer/paths/analog-input-aux.conf \
modules/alsa/mixer/paths/analog-input.conf \ modules/alsa/mixer/paths/analog-input.conf \
modules/alsa/mixer/paths/analog-input.conf.common \ modules/alsa/mixer/paths/analog-input.conf.common \
@ -146,6 +131,27 @@ EXTRA_DIST = \
modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf \ modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf \
modules/alsa/mixer/paths/analog-output-mono.conf modules/alsa/mixer/paths/analog-output-mono.conf
EXTRA_DIST = \
pulse/client.conf.in \
pulse/version.h.in \
daemon/daemon.conf.in \
daemon/default.pa.in \
daemon/system.pa.in \
daemon/default.pa.win32 \
depmod.py \
daemon/esdcompat.in \
daemon/start-pulseaudio-x11.in \
daemon/start-pulseaudio-kde.in \
utils/padsp \
modules/module-defs.h.m4 \
daemon/pulseaudio.desktop.in \
daemon/pulseaudio-kde.desktop.in \
map-file \
daemon/pulseaudio-system.conf \
modules/alsa/mixer/profile-sets/90-pulseaudio.rules \
${ALSA_PROFILES} \
${ALSA_PATHS}
pulseconf_DATA = \ pulseconf_DATA = \
default.pa \ default.pa \
system.pa \ system.pa \
@ -1078,32 +1084,14 @@ modlibexec_LTLIBRARIES += \
module-alsa-source.la \ module-alsa-source.la \
module-alsa-card.la module-alsa-card.la
alsaprofilesets_DATA = \ alsaprofilesets_DATA = ${ALSA_PROFILES}
modules/alsa/mixer/profile-sets/default.conf \
modules/alsa/mixer/profile-sets/native-instruments-audio4dj.conf \
modules/alsa/mixer/profile-sets/native-instruments-audio8dj.conf
if HAVE_UDEV if HAVE_UDEV
udevrules_DATA = \ udevrules_DATA = \
modules/alsa/mixer/profile-sets/90-pulseaudio.rules modules/alsa/mixer/profile-sets/90-pulseaudio.rules
endif endif
alsapaths_DATA = \ alsapaths_DATA = ${ALSA_PATHS}
modules/alsa/mixer/paths/analog-input-aux.conf \
modules/alsa/mixer/paths/analog-input.conf \
modules/alsa/mixer/paths/analog-input.conf.common \
modules/alsa/mixer/paths/analog-input-fm.conf \
modules/alsa/mixer/paths/analog-input-linein.conf \
modules/alsa/mixer/paths/analog-input-mic.conf \
modules/alsa/mixer/paths/analog-input-mic.conf.common \
modules/alsa/mixer/paths/analog-input-mic-line.conf \
modules/alsa/mixer/paths/analog-input-tvtuner.conf \
modules/alsa/mixer/paths/analog-input-video.conf \
modules/alsa/mixer/paths/analog-output.conf \
modules/alsa/mixer/paths/analog-output.conf.common \
modules/alsa/mixer/paths/analog-output-headphones.conf \
modules/alsa/mixer/paths/analog-output-lfe-on-mono.conf \
modules/alsa/mixer/paths/analog-output-mono.conf
endif endif

View file

@ -464,8 +464,18 @@ static char **child_array(struct userdata *u, const char *path, unsigned *n) {
if (pa_streq(path, OBJECT_SINKS)) if (pa_streq(path, OBJECT_SINKS))
m = pa_idxset_size(u->core->sinks); m = pa_idxset_size(u->core->sinks);
else else {
unsigned k;
m = pa_idxset_size(u->core->sources); m = pa_idxset_size(u->core->sources);
k = pa_idxset_size(u->core->sinks);
pa_assert(m >= k);
/* Subtract the monitor sources from the numbers of
* sources. There is one monitor source for each sink */
m -= k;
}
array = pa_xnew(char*, m); array = pa_xnew(char*, m);
*n = 0; *n = 0;
@ -473,14 +483,20 @@ static char **child_array(struct userdata *u, const char *path, unsigned *n) {
if (pa_streq(path, OBJECT_SINKS)) { if (pa_streq(path, OBJECT_SINKS)) {
pa_sink *sink; pa_sink *sink;
PA_IDXSET_FOREACH(sink, u->core->sinks, idx) PA_IDXSET_FOREACH(sink, u->core->sinks, idx) {
pa_assert((*n) < m);
array[(*n)++] = pa_sprintf_malloc(OBJECT_SINKS "/%u", sink->index); array[(*n)++] = pa_sprintf_malloc(OBJECT_SINKS "/%u", sink->index);
}
} else { } else {
pa_source *source; pa_source *source;
PA_IDXSET_FOREACH(source, u->core->sources, idx) PA_IDXSET_FOREACH(source, u->core->sources, idx) {
if (!source->monitor_of)
if (!source->monitor_of) {
pa_assert((*n) < m);
array[(*n)++] = pa_sprintf_malloc(OBJECT_SOURCES "/%u", source->index); array[(*n)++] = pa_sprintf_malloc(OBJECT_SOURCES "/%u", source->index);
}
}
} }
pa_assert((*n) <= m); pa_assert((*n) <= m);
@ -529,16 +545,20 @@ static DBusHandlerResult sinks_and_sources_handler(DBusConnection *c, DBusMessag
free_child_array(array, n); free_child_array(array, n);
} else if (message_is_property_get(m, "org.gnome.UPnP.MediaContainer1", "ItemCount")) { } else if (message_is_property_get(m, "org.gnome.UPnP.MediaContainer1", "ItemCount")) {
unsigned n, k;
n = pa_idxset_size(u->core->sinks);
k = pa_idxset_size(u->core->sources);
pa_assert(k >= n);
pa_assert_se(r = dbus_message_new_method_return(m)); pa_assert_se(r = dbus_message_new_method_return(m));
append_variant_unsigned(r, NULL, append_variant_unsigned(r, NULL,
pa_streq(path, OBJECT_SINKS) ? pa_streq(path, OBJECT_SINKS) ? n : k - n);
pa_idxset_size(u->core->sinks) :
pa_idxset_size(u->core->sources));
} else if (message_is_property_get_all(m, "org.gnome.UPnP.MediaContainer1")) { } else if (message_is_property_get_all(m, "org.gnome.UPnP.MediaContainer1")) {
DBusMessageIter iter, sub; DBusMessageIter iter, sub;
char **array; char **array;
unsigned n; unsigned n, k;
pa_assert_se(r = dbus_message_new_method_return(m)); pa_assert_se(r = dbus_message_new_method_return(m));
dbus_message_iter_init_append(r, &iter); dbus_message_iter_init_append(r, &iter);
@ -550,10 +570,13 @@ static DBusHandlerResult sinks_and_sources_handler(DBusConnection *c, DBusMessag
array = child_array(u, path, &n); array = child_array(u, path, &n);
append_property_dict_entry_object_array(r, &sub, "Items", (const char**) array, n); append_property_dict_entry_object_array(r, &sub, "Items", (const char**) array, n);
free_child_array(array, n); free_child_array(array, n);
n = pa_idxset_size(u->core->sinks);
k = pa_idxset_size(u->core->sources);
pa_assert(k >= n);
append_property_dict_entry_unsigned(r, &sub, "ItemCount", append_property_dict_entry_unsigned(r, &sub, "ItemCount",
pa_streq(path, OBJECT_SINKS) ? pa_streq(path, OBJECT_SINKS) ? n : k - n);
pa_idxset_size(u->core->sinks) :
pa_idxset_size(u->core->sources));
pa_assert_se(dbus_message_iter_close_container(&iter, &sub)); pa_assert_se(dbus_message_iter_close_container(&iter, &sub));