diff --git a/profiles/audio/vcp.c b/profiles/audio/vcp.c
index 52301db..608496a 100644
--- a/profiles/audio/vcp.c
+++ b/profiles/audio/vcp.c
static int vcp_disconnect(struct btd_service *service)
{
+ struct vcp_data *data = btd_service_get_user_data(service);
DBG("");
+
+ if (!data) {
+ error("VCP service not handled by profile");
+ return -EINVAL;
+ }
+ bt_vcp_detach(data->vcp);
+
+ btd_service_disconnecting_complete(service, 0);
return 0;
}
return FALSE;
}
-static void vcp_detached(struct bt_vcp *vcp, void *user_data)
+static void vcp_remote_client_detached(struct bt_vcp *vcp, void *user_data)
{
struct vcp_data *data;
vcp_data_remove(data);
}
-static void vcp_attached(struct bt_vcp *vcp, void *user_data)
+static void vcp_remote_client_attached(struct bt_vcp *vcp, void *user_data)
{
struct vcp_data *data;
struct bt_att *att;
if (err)
return err;
- vcp_id = bt_vcp_register(vcp_attached, vcp_detached, NULL);
+ vcp_id = bt_vcp_register(vcp_remote_client_attached,
+ vcp_remote_client_detached, NULL);
return 0;
}