summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarijn Suijten <marijns95@gmail.com>2022-05-19 22:38:26 +0200
committerPulseAudio Marge Bot <pulseaudio-maintainers@lists.freedesktop.org>2022-05-23 15:19:44 +0000
commit0adb12e099fa2fdf4a1753f2c8d729cbb26e928b (patch)
treea6ee6a1f3a44e47c15eb94bf06d2d78b174a9237
parent7f76edb9079f80f3f63ec70e24ef9b18e155f743 (diff)
downloadpulseaudio-0adb12e099fa2fdf4a1753f2c8d729cbb26e928b.tar.gz
bluetooth: Demote "No such property 'Volume'" error to warning
The AVRCP service is known to not be connected before the A2DP transport is, resulting in PulseAudio asking BlueZ for an initial 'Volume' value but not getting it because the property doesn't exist. To prevent end-users from conjecturing this to be the source of whatever issue they're observing, demote it to a warning. Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/707>
-rw-r--r--src/modules/bluetooth/bluez5-util.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
index 83f2932e9..596f008cb 100644
--- a/src/modules/bluetooth/bluez5-util.c
+++ b/src/modules/bluetooth/bluez5-util.c
@@ -788,6 +788,7 @@ static void get_volume_reply(DBusPendingCall *pending, void *userdata) {
pa_bluetooth_transport *t;
uint16_t gain;
pa_volume_t volume;
+ const char *error_name, *error_message;
pa_assert(pending);
pa_assert_se(p = userdata);
@@ -796,10 +797,18 @@ static void get_volume_reply(DBusPendingCall *pending, void *userdata) {
pa_assert_se(r = dbus_pending_call_steal_reply(pending));
if (dbus_message_get_type(r) == DBUS_MESSAGE_TYPE_ERROR) {
- pa_log_error(DBUS_INTERFACE_PROPERTIES ".Get %s Volume failed: %s: %s",
- dbus_message_get_path(p->message),
- dbus_message_get_error_name(r),
- pa_dbus_get_error_message(r));
+ error_name = dbus_message_get_error_name(r);
+ error_message = pa_dbus_get_error_message(r);
+
+ if (pa_streq(error_name, DBUS_ERROR_INVALID_ARGS) && pa_streq(error_message, "No such property 'Volume'")) {
+ pa_log_warn(DBUS_INTERFACE_PROPERTIES ".Get %s Volume property not (yet) available",
+ dbus_message_get_path(p->message));
+ } else {
+ pa_log_error(DBUS_INTERFACE_PROPERTIES ".Get %s Volume failed: %s: %s",
+ dbus_message_get_path(p->message),
+ error_name,
+ error_message);
+ }
goto finish;
}
dbus_message_iter_init(r, &iter);