diff --git a/src/service.c b/src/service.c
index 84fbb20..14a4c29 100644
--- a/src/service.c
+++ b/src/service.c
btd_service_state_t state;
int err;
bool is_allowed;
+ bool initiator;
};
struct service_state_callback {
cb->cb(service, old, state, cb->user_data);
}
+
+ if (state == BTD_SERVICE_STATE_DISCONNECTED)
+ service->initiator = false;
}
struct btd_service *btd_service_ref(struct btd_service *service)
err = profile->connect(service);
if (err == 0) {
+ service->initiator = true;
change_state(service, BTD_SERVICE_STATE_CONNECTING, 0);
return 0;
}
return service->err;
}
+bool btd_service_is_initiator(const struct btd_service *service)
+{
+ return service->initiator;
+}
+
unsigned int btd_service_add_state_cb(btd_service_state_cb cb, void *user_data)
{
struct service_state_callback *state_cb;
diff --git a/src/service.h b/src/service.h
index 5a2a024..fa930f9 100644
--- a/src/service.h
+++ b/src/service.h
struct btd_profile *btd_service_get_profile(const struct btd_service *service);
btd_service_state_t btd_service_get_state(const struct btd_service *service);
int btd_service_get_error(const struct btd_service *service);
+bool btd_service_is_initiator(const struct btd_service *service);
unsigned int btd_service_add_state_cb(btd_service_state_cb cb,
void *user_data);