From df235d1f395b10654024979180c778777bd50c71 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Fri, 29 Jun 2007 23:19:36 +0000 Subject: Handle state machine in a better way and add disconnect code for plugin. --- audio/pcm_bluetooth.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'audio/pcm_bluetooth.c') diff --git a/audio/pcm_bluetooth.c b/audio/pcm_bluetooth.c index f95dcc9c..71daab4f 100644 --- a/audio/pcm_bluetooth.c +++ b/audio/pcm_bluetooth.c @@ -86,6 +86,26 @@ static snd_pcm_sframes_t bluetooth_pointer(snd_pcm_ioplug_t *io) static void bluetooth_exit(struct bluetooth_data *data) { + int ret, len = sizeof(struct ipc_packet) + sizeof(struct ipc_data_status); + struct ipc_packet *pkt; + struct ipc_data_status *status; + + DBG("Sending PKT_TYPE_STATUS_REQ..."); + + if ((pkt = malloc(len)) == 0) + goto done; + + memset(pkt, 0, len); + pkt->type = PKT_TYPE_STATUS_REQ; + pkt->role = PKT_ROLE_NONE; + pkt->error = PKT_ERROR_NONE; + + status = (struct ipc_data_status *) pkt->data; + status->status = STATUS_DISCONNECTED; + + if ((ret = send(data->sock, pkt, len, 0)) < 0) + DBG("OK"); +done: if (data == NULL) return; -- cgit