mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-22 08:56:59 -05:00
bluez5: backend-native: Add AT+CLCC support
This allows the HFP HF to retrieve the list of calls with their index, state and remote number (if available). This commit shared the list of calls between modemmanager.c and backend-native.c, and switches call state storage from ModemManager states to CLCC states
This commit is contained in:
parent
55075915ec
commit
20572a1789
3 changed files with 117 additions and 28 deletions
|
|
@ -25,6 +25,8 @@
|
|||
#ifndef SPA_BLUEZ5_MODEMMANAGER_H_
|
||||
#define SPA_BLUEZ5_MODEMMANAGER_H_
|
||||
|
||||
#include <spa/utils/list.h>
|
||||
|
||||
#include "defs.h"
|
||||
|
||||
enum cmee_error {
|
||||
|
|
@ -44,6 +46,35 @@ enum call_setup {
|
|||
CIND_CALLSETUP_ALERTING
|
||||
};
|
||||
|
||||
enum call_direction {
|
||||
CALL_OUTGOING,
|
||||
CALL_INCOMING
|
||||
};
|
||||
|
||||
enum call_state {
|
||||
CLCC_ACTIVE,
|
||||
CLCC_HELD,
|
||||
CLCC_DIALING,
|
||||
CLCC_ALERTING,
|
||||
CLCC_INCOMING,
|
||||
CLCC_WAITING,
|
||||
CLCC_RESPONSE_AND_HOLD
|
||||
};
|
||||
|
||||
struct call {
|
||||
struct spa_list link;
|
||||
unsigned int index;
|
||||
struct impl *this;
|
||||
DBusPendingCall *pending;
|
||||
|
||||
char *path;
|
||||
char *number;
|
||||
bool call_indicator;
|
||||
enum call_direction direction;
|
||||
enum call_state state;
|
||||
bool multiparty;
|
||||
};
|
||||
|
||||
struct mm_ops {
|
||||
void (*send_cmd_result)(bool success, enum cmee_error error, void *user_data);
|
||||
void (*set_modem_service)(bool available, void *user_data);
|
||||
|
|
@ -62,6 +93,7 @@ unsigned int mm_supported_features();
|
|||
bool mm_answer_call(void *modemmanager, void *user_data, enum cmee_error *error);
|
||||
bool mm_hangup_call(void *modemmanager, void *user_data, enum cmee_error *error);
|
||||
const char *mm_get_incoming_call_number(void *modemmanager);
|
||||
struct spa_list *mm_get_calls(void *modemmanager);
|
||||
#else
|
||||
void *mm_register(struct spa_log *log, void *dbus_connection, const struct mm_ops *ops, void *user_data)
|
||||
{
|
||||
|
|
@ -100,6 +132,11 @@ const char *mm_get_incoming_call_number(void *modemmanager)
|
|||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
struct spa_list *mm_get_calls(void *modemmanager)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue