diff --git a/profiles/audio/a2dp.c b/profiles/audio/a2dp.c
index 2471954..8b812c3 100644
--- a/profiles/audio/a2dp.c
+++ b/profiles/audio/a2dp.c
struct a2dp_sep {
struct a2dp_server *server;
+ struct avdtp_server *avdtp_server;
struct a2dp_endpoint *endpoint;
uint8_t type;
uint8_t codec;
g_free(server);
}
-static void a2dp_clean_lsep(struct avdtp_local_sep *lsep)
+static void a2dp_clean_lsep(struct a2dp_sep *sep)
{
- struct avdtp_server *server = avdtp_get_server(lsep);
-
+ struct avdtp_local_sep *lsep = sep->lsep;
+ struct avdtp_server *server = sep->avdtp_server;
queue_remove(server->seps, lsep);
if (queue_isempty(server->seps))
sep->endpoint = NULL;
}
- a2dp_clean_lsep(sep->lsep);
+ a2dp_clean_lsep(sep);
g_free(sep);
}
}
sep->server = server;
+ sep->avdtp_server = avdtp_server;
sep->endpoint = endpoint;
sep->codec = codec;
sep->type = type;
record = a2dp_record(type);
if (!record) {
error("Unable to allocate new service record");
- a2dp_clean_lsep(sep->lsep);
+ a2dp_clean_lsep(sep);
g_free(sep);
if (err)
*err = -EINVAL;
if (adapter_service_add(server->adapter, record) < 0) {
error("Unable to register A2DP service record");
sdp_record_free(record);
- a2dp_clean_lsep(sep->lsep);
+ a2dp_clean_lsep(sep);
g_free(sep);
if (err)
*err = -EINVAL;
diff --git a/profiles/audio/avdtp.c b/profiles/audio/avdtp.c
index 39b0dd1..882e20d 100644
--- a/profiles/audio/avdtp.c
+++ b/profiles/audio/avdtp.c
struct avdtp_sep_ind *ind;
struct avdtp_sep_cfm *cfm;
void *user_data;
- struct avdtp_server *server;
};
struct stream_callback {
sep->ind = ind;
sep->cfm = cfm;
sep->user_data = user_data;
- sep->server = server;
sep->delay_reporting = delay_reporting;
DBG("SEP %p registered: type:%d codec:%d seid:%d", sep,
return session->device;
}
-struct avdtp_server *avdtp_get_server(struct avdtp_local_sep *lsep)
-{
- return lsep->server;
-}
-
gboolean avdtp_has_stream(struct avdtp *session, struct avdtp_stream *stream)
{
return g_slist_find(session->streams, stream) ? TRUE : FALSE;