OSDN Git Service

service: Add error-code btd_service
authorMikel Astiz <mikel.astiz@bmw-carit.de>
Fri, 26 Apr 2013 09:46:23 +0000 (11:46 +0200)
committerJohan Hedberg <johan.hedberg@intel.com>
Fri, 26 Apr 2013 11:48:31 +0000 (14:48 +0300)
The error-code represents the result of a connection/disconnection
procedure and can be useful when a state transition is detected.

src/service.c
src/service.h

index e03a412..6228de1 100644 (file)
@@ -52,6 +52,7 @@ struct btd_service {
        struct btd_profile      *profile;
        void                    *user_data;
        btd_service_state_t     state;
+       int                     err;
 };
 
 static const char *state2str(btd_service_state_t state)
@@ -85,6 +86,7 @@ static void change_state(struct btd_service *service, btd_service_state_t state,
        assert(service->profile != NULL);
 
        service->state = state;
+       service->err = err;
 
        ba2str(device_get_address(service->device), addr);
        DBG("%p: device %s profile %s state changed: %s -> %s (%d)", service,
@@ -256,6 +258,11 @@ btd_service_state_t btd_service_get_state(const struct btd_service *service)
        return service->state;
 }
 
+int btd_service_get_error(const struct btd_service *service)
+{
+       return service->err;
+}
+
 void btd_service_connecting_complete(struct btd_service *service, int err)
 {
        if (service->state != BTD_SERVICE_STATE_DISCONNECTED &&
index a89b524..e3bc6e5 100644 (file)
@@ -51,6 +51,7 @@ int btd_service_disconnect(struct btd_service *service);
 struct btd_device *btd_service_get_device(const struct btd_service *service);
 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);
 
 /* Functions used by profile implementation */
 void btd_service_connecting_complete(struct btd_service *service, int err);