Diff between a385cf82957dcae4405eec1e95689d1518d66032 and 31993b0a0e47423796f77dc6d263b9ea9a40ba5e

Changed Files

File Additions Deletions Status
android/a2dp.c +22 -1 modified

Full Patch

diff --git a/android/a2dp.c b/android/a2dp.c
index b26d727..ece5e47 100644
--- a/android/a2dp.c
+++ b/android/a2dp.c
@@ -752,8 +752,29 @@ static void bt_stream_open(const void *buf, uint16_t len)
 
 static void bt_stream_close(const void *buf, uint16_t len)
 {
-	DBG("Not Implemented");
+	const struct audio_cmd_close_stream *cmd = buf;
+	struct a2dp_setup *setup;
+	int err;
 
+	DBG("");
+
+	setup = find_setup(cmd->id);
+	if (!setup) {
+		error("Unable to find stream for endpoint %u", cmd->id);
+		goto failed;
+	}
+
+	err = avdtp_close(setup->dev->session, setup->stream, FALSE);
+	if (err < 0) {
+		error("avdtp_close: %s", strerror(-err));
+		goto failed;
+	}
+
+	audio_ipc_send_rsp(AUDIO_OP_CLOSE_STREAM, AUDIO_STATUS_SUCCESS);
+
+	return;
+
+failed:
 	audio_ipc_send_rsp(AUDIO_OP_CLOSE_STREAM, AUDIO_STATUS_FAILED);
 }