bluez5: backend-native: Manage 3way commands asynchronously

The call's states should not be updated on 3ways commands but wait for
CIEV or CLCC events.
This allows to manage user actions on the phone.
This commit is contained in:
Frédéric Danis 2024-10-17 13:12:57 +02:00 committed by Wim Taymans
parent 8e7a1a5235
commit bd5de6eb1c
3 changed files with 66 additions and 70 deletions

View file

@ -228,6 +228,7 @@ static void dbus_iter_append_call_properties(DBusMessageIter *i, struct spa_bt_t
#define PW_TELEPHONY_ERROR_NOT_SUPPORTED "org.freedesktop.PipeWire.Telephony.Error.NotSupported"
#define PW_TELEPHONY_ERROR_INVALID_FORMAT "org.freedesktop.PipeWire.Telephony.Error.InvalidFormat"
#define PW_TELEPHONY_ERROR_INVALID_STATE "org.freedesktop.PipeWire.Telephony.Error.InvalidState"
#define PW_TELEPHONY_ERROR_IN_PROGRESS "org.freedesktop.PipeWire.Telephony.Error.InProgress"
static const char *telephony_error_to_dbus (enum spa_bt_telephony_error err)
{
@ -240,6 +241,8 @@ static const char *telephony_error_to_dbus (enum spa_bt_telephony_error err)
return PW_TELEPHONY_ERROR_INVALID_FORMAT;
case BT_TELEPHONY_ERROR_INVALID_STATE:
return PW_TELEPHONY_ERROR_INVALID_STATE;
case BT_TELEPHONY_ERROR_IN_PROGRESS:
return PW_TELEPHONY_ERROR_IN_PROGRESS;
default:
return "";
}
@ -256,6 +259,8 @@ static const char *telephony_error_to_description (enum spa_bt_telephony_error e
return "Invalid phone number or tones";
case BT_TELEPHONY_ERROR_INVALID_STATE:
return "The current state does not allow this method call";
case BT_TELEPHONY_ERROR_IN_PROGRESS:
return "Command already in progress";
default:
return "";
}