struct hf_device *dev;
dev = new0(struct hf_device, 1);
- if (!dev)
- return NULL;
bacpy(&dev->bdaddr, bdaddr);
dev->setup_state = HAL_HANDSFREE_CALL_STATE_IDLE;
init_codecs(dev);
- if (!queue_push_head(devices, dev)) {
- free(dev);
- return NULL;
- }
+ queue_push_head(devices, dev);
return dev;
}
void *user_data)
{
struct hf_device *dev = user_data;
+ struct hal_ev_handsfree_wbs ev;
unsigned int val;
DBG("");
break;
}
+ ev.wbs = val;
+ bdaddr2android(&dev->bdaddr, ev.bdaddr);
+
+ ipc_send_notif(hal_ipc, HAL_SERVICE_ID_HANDSFREE,
+ HAL_EV_HANDSFREE_WBS, sizeof(ev), &ev);
+
dev->proposed_codec = 0;
dev->negotiated_codec = val;
static const struct ipc_handler sco_handlers[] = {
/* SCO_OP_GET_FD */
- { bt_sco_get_fd, false, 0 }
+ { bt_sco_get_fd, false, sizeof(struct sco_cmd_get_fd) }
};
static void bt_sco_unregister(void)
return false;
devices = queue_new();
- if (!devices)
- return false;
if (!enable_hsp_ag())
goto failed_queue;