diff options
-rw-r--r-- | audio/main.c | 18 | ||||
-rw-r--r-- | hcid/adapter.c | 32 | ||||
-rw-r--r-- | hcid/adapter.h | 8 | ||||
-rw-r--r-- | hcid/agent.c | 8 | ||||
-rw-r--r-- | hcid/agent.h | 8 | ||||
-rw-r--r-- | hcid/dbus-hci.c | 36 | ||||
-rw-r--r-- | hcid/dbus-service.c | 4 | ||||
-rw-r--r-- | hcid/device.c | 83 | ||||
-rw-r--r-- | hcid/device.h | 38 | ||||
-rw-r--r-- | input/main.c | 10 | ||||
-rw-r--r-- | network/main.c | 10 | ||||
-rw-r--r-- | serial/main.c | 17 |
12 files changed, 137 insertions, 135 deletions
diff --git a/audio/main.c b/audio/main.c index 607e3ca9..2ea2a1a3 100644 --- a/audio/main.c +++ b/audio/main.c @@ -45,14 +45,16 @@ static DBusConnection *conn; static int headset_probe(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); return 0; } static void headset_remove(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); } static struct btd_device_driver headset_driver = { @@ -64,14 +66,16 @@ static struct btd_device_driver headset_driver = { static int a2dp_probe(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); return 0; } static void a2dp_remove(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); } static struct btd_device_driver a2dp_driver = { @@ -83,14 +87,16 @@ static struct btd_device_driver a2dp_driver = { static int audio_probe(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); return 0; } static void audio_remove(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); } static struct btd_device_driver audio_driver = { diff --git a/hcid/adapter.c b/hcid/adapter.c index 029823f4..117536b6 100644 --- a/hcid/adapter.c +++ b/hcid/adapter.c @@ -251,7 +251,7 @@ static int auth_info_agent_cmp(const void *a, const void *b) static void device_agent_removed(struct agent *agent, void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; struct pending_auth_info *auth; GSList *l; struct adapter *adapter; @@ -276,7 +276,7 @@ static struct bonding_request_info *bonding_request_new(DBusConnection *conn, uint8_t capability) { struct bonding_request_info *bonding; - struct device *device; + struct btd_device *device; const char *name = dbus_message_get_sender(msg); const gchar *destination; struct agent *agent; @@ -621,9 +621,9 @@ static void reply_authentication_failure(struct bonding_request_info *bonding) } } -struct device *adapter_find_device(struct adapter *adapter, const char *dest) +struct btd_device *adapter_find_device(struct adapter *adapter, const char *dest) { - struct device *device; + struct btd_device *device; GSList *l; if (!adapter) @@ -639,10 +639,10 @@ struct device *adapter_find_device(struct adapter *adapter, const char *dest) return device; } -struct device *adapter_create_device(DBusConnection *conn, +struct btd_device *adapter_create_device(DBusConnection *conn, struct adapter *adapter, const char *address) { - struct device *device; + struct btd_device *device; debug("adapter_create_device(%s)", address); @@ -661,7 +661,7 @@ static DBusMessage *remove_bonding(DBusConnection *conn, DBusMessage *msg, const char *address, void *data) { struct adapter *adapter = data; - struct device *device; + struct btd_device *device; char filename[PATH_MAX + 1]; char *str; bdaddr_t src, dst; @@ -745,7 +745,7 @@ done: void adapter_remove_device(DBusConnection *conn, struct adapter *adapter, - struct device *device) + struct btd_device *device) { bdaddr_t src; const gchar *destination = device_get_address(device); @@ -777,10 +777,10 @@ void adapter_remove_device(DBusConnection *conn, struct adapter *adapter, device_remove(conn, device); } -struct device *adapter_get_device(DBusConnection *conn, +struct btd_device *adapter_get_device(DBusConnection *conn, struct adapter *adapter, const gchar *address) { - struct device *device; + struct btd_device *device; debug("adapter_get_device(%s)", address); @@ -796,7 +796,7 @@ struct device *adapter_get_device(DBusConnection *conn, void remove_pending_device(struct adapter *adapter) { - struct device *device; + struct btd_device *device; char address[18]; ba2str(&adapter->bonding->bdaddr, address); @@ -1559,7 +1559,7 @@ static DBusMessage *list_devices(DBusConnection *conn, DBUS_TYPE_OBJECT_PATH_AS_STRING, &array_iter); for (l = adapter->devices; l; l = l->next) { - struct device *device = l->data; + struct btd_device *device = l->data; if (device_is_temporary(device)) continue; @@ -1579,7 +1579,7 @@ static DBusMessage *create_device(DBusConnection *conn, DBusMessage *msg, void *data) { struct adapter *adapter = data; - struct device *device; + struct btd_device *device; const gchar *address; if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &address, @@ -1646,7 +1646,7 @@ static DBusMessage *create_paired_device(DBusConnection *conn, return create_bonding(conn, msg, address, agent_path, cap, data); } -static gint device_path_cmp(struct device *device, const gchar *path) +static gint device_path_cmp(struct btd_device *device, const gchar *path) { const gchar *dev_path = device_get_path(device); @@ -1657,7 +1657,7 @@ static DBusMessage *remove_device(DBusConnection *conn, DBusMessage *msg, void *data) { struct adapter *adapter = data; - struct device *device; + struct btd_device *device; const char *path; GSList *l; @@ -1687,7 +1687,7 @@ static DBusMessage *find_device(DBusConnection *conn, DBusMessage *msg, void *data) { struct adapter *adapter = data; - struct device *device; + struct btd_device *device; DBusMessage *reply; const gchar *address; GSList *l; diff --git a/hcid/adapter.h b/hcid/adapter.h index 5488c105..772f3599 100644 --- a/hcid/adapter.h +++ b/hcid/adapter.h @@ -122,14 +122,14 @@ dbus_bool_t adapter_init(DBusConnection *conn, dbus_bool_t adapter_cleanup(DBusConnection *conn, const char *path); -struct device *adapter_get_device(DBusConnection *conn, +struct btd_device *adapter_get_device(DBusConnection *conn, struct adapter *adapter, const gchar *address); -struct device *adapter_find_device(struct adapter *adapter, const char *dest); +struct btd_device *adapter_find_device(struct adapter *adapter, const char *dest); void adapter_remove_device(DBusConnection *conn, struct adapter *adapter, - struct device *device); -struct device *adapter_create_device(DBusConnection *conn, + struct btd_device *device); +struct btd_device *adapter_create_device(DBusConnection *conn, struct adapter *adapter, const char *address); const char *mode2str(uint8_t mode); diff --git a/hcid/agent.c b/hcid/agent.c index a2b04be2..3a46043c 100644 --- a/hcid/agent.c +++ b/hcid/agent.c @@ -437,7 +437,7 @@ done: agent_request_free(req); } -int agent_request_pincode(struct agent *agent, struct device *device, +int agent_request_pincode(struct agent *agent, struct btd_device *device, agent_pincode_cb cb, void *user_data) { struct agent_request *req; @@ -590,7 +590,7 @@ done: agent_request_free(req); } -int agent_request_passkey(struct agent *agent, struct device *device, +int agent_request_passkey(struct agent *agent, struct btd_device *device, agent_passkey_cb cb, void *user_data) { struct agent_request *req; @@ -650,7 +650,7 @@ static DBusPendingCall *confirmation_request_new(struct agent *agent, return call; } -int agent_request_confirmation(struct agent *agent, struct device *device, +int agent_request_confirmation(struct agent *agent, struct btd_device *device, uint32_t passkey, agent_cb cb, void *user_data) { @@ -681,7 +681,7 @@ failed: return -1; } -int agent_display_passkey(struct agent *agent, struct device *device, +int agent_display_passkey(struct agent *agent, struct btd_device *device, uint32_t passkey) { DBusMessage *message; diff --git a/hcid/agent.h b/hcid/agent.h index 37ee5edd..291e7a15 100644 --- a/hcid/agent.h +++ b/hcid/agent.h @@ -44,20 +44,20 @@ int agent_destroy(struct agent *agent, gboolean exited); int agent_authorize(struct agent *agent, const char *path, const char *uuid, agent_cb cb, void *user_data); -int agent_request_pincode(struct agent *agent, struct device *device, +int agent_request_pincode(struct agent *agent, struct btd_device *device, agent_pincode_cb cb, void *user_data); int agent_confirm_mode_change(struct agent *agent, const char *new_mode, agent_cb cb, void *user_data); -int agent_request_passkey(struct agent *agent, struct device *device, +int agent_request_passkey(struct agent *agent, struct btd_device *device, agent_passkey_cb cb, void *user_data); -int agent_request_confirmation(struct agent *agent, struct device *device, +int agent_request_confirmation(struct agent *agent, struct btd_device *device, uint32_t passkey, agent_cb cb, void *user_data); -int agent_display_passkey(struct agent *agent, struct device *device, +int agent_display_passkey(struct agent *agent, struct btd_device *device, uint32_t passkey); int agent_cancel(struct agent *agent); diff --git a/hcid/dbus-hci.c b/hcid/dbus-hci.c index 389a0b56..4dbbdf34 100644 --- a/hcid/dbus-hci.c +++ b/hcid/dbus-hci.c @@ -60,7 +60,7 @@ static DBusConnection *connection = NULL; void bonding_request_free(struct bonding_request_info *bonding) { - struct device *device; + struct btd_device *device; char address[18]; struct agent *agent; @@ -363,7 +363,7 @@ static void reply_pending_requests(const char *path, struct adapter *adapter) static void do_unregister(gpointer data, gpointer user_data) { DBusConnection *conn = user_data; - struct device *device = data; + struct btd_device *device = data; device_remove(conn, device); } @@ -504,7 +504,7 @@ static void create_stored_device_from_profiles(char *key, char *value, { struct adapter *adapter = user_data; GSList *uuids = bt_string2list(value); - struct device *device; + struct btd_device *device; device = device_create(connection, adapter, key); if (device) { @@ -519,7 +519,7 @@ static void create_stored_device_from_linkkeys(char *key, char *value, void *user_data) { struct adapter *adapter = user_data; - struct device *device; + struct btd_device *device; if (g_slist_find_custom(adapter->devices, key, (GCompareFunc) device_address_cmp)) @@ -721,7 +721,7 @@ int hcid_dbus_stop_device(uint16_t id) } static void pincode_cb(struct agent *agent, DBusError *err, const char *pincode, - struct device *device) + struct btd_device *device) { struct adapter *adapter = device_get_adapter(device); pin_code_reply_cp pr; @@ -775,7 +775,7 @@ int hcid_dbus_request_pin(int dev, bdaddr_t *sba, struct hci_conn_info *ci) { char addr[18]; struct adapter *adapter; - struct device *device; + struct btd_device *device; struct agent *agent; int ret; @@ -819,7 +819,7 @@ int hcid_dbus_request_pin(int dev, bdaddr_t *sba, struct hci_conn_info *ci) static void confirm_cb(struct agent *agent, DBusError *err, void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; struct adapter *adapter = device_get_adapter(device); user_confirm_reply_cp cp; int dd; @@ -859,7 +859,7 @@ static void confirm_cb(struct agent *agent, DBusError *err, void *user_data) static void passkey_cb(struct agent *agent, DBusError *err, uint32_t passkey, void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; struct adapter *adapter = device_get_adapter(device); user_passkey_reply_cp cp; bdaddr_t dba; @@ -939,7 +939,7 @@ static int get_auth_requirements(bdaddr_t *local, bdaddr_t *remote, int hcid_dbus_user_confirm(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey) { struct adapter *adapter; - struct device *device; + struct btd_device *device; struct agent *agent; char addr[18]; uint8_t type; @@ -1019,7 +1019,7 @@ int hcid_dbus_user_confirm(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey) int hcid_dbus_user_passkey(bdaddr_t *sba, bdaddr_t *dba) { struct adapter *adapter; - struct device *device; + struct btd_device *device; struct agent *agent; char addr[18]; struct pending_auth_info *auth; @@ -1059,7 +1059,7 @@ int hcid_dbus_user_passkey(bdaddr_t *sba, bdaddr_t *dba) int hcid_dbus_user_notify(bdaddr_t *sba, bdaddr_t *dba, uint32_t passkey) { struct adapter *adapter; - struct device *device; + struct btd_device *device; struct agent *agent; char addr[18]; struct pending_auth_info *auth; @@ -1102,7 +1102,7 @@ void hcid_dbus_bonding_process_complete(bdaddr_t *local, bdaddr_t *peer, char peer_addr[18]; const char *paddr = peer_addr; DBusMessage *reply; - struct device *device; + struct btd_device *device; struct bonding_request_info *bonding; gboolean paired = TRUE; struct pending_auth_info *auth; @@ -1671,7 +1671,7 @@ void hcid_dbus_remote_class(bdaddr_t *local, bdaddr_t *peer, uint32_t class) uint32_t old_class = 0; struct adapter *adapter; GSList *l; - struct device *device; + struct btd_device *device; const gchar *dev_path; read_remote_class(local, peer, &old_class); @@ -1718,7 +1718,7 @@ void hcid_dbus_remote_name(bdaddr_t *local, bdaddr_t *peer, uint8_t status, ba2str(peer, peer_addr); if (!status) { - struct device *device; + struct btd_device *device; device = adapter_find_device(adapter, paddr); if (device) { @@ -1803,7 +1803,7 @@ void hcid_dbus_conn_complete(bdaddr_t *local, uint8_t status, uint16_t handle, if (adapter->bonding) adapter->bonding->hci_status = status; } else { - struct device *device; + struct btd_device *device; gboolean connected = TRUE; device = adapter_find_device(adapter, paddr); @@ -1829,7 +1829,7 @@ void hcid_dbus_disconn_complete(bdaddr_t *local, uint8_t status, char peer_addr[18]; const char *paddr = peer_addr; struct adapter *adapter; - struct device *device; + struct btd_device *device; struct active_conn_info *dev; GSList *l; gboolean connected = FALSE; @@ -2184,7 +2184,7 @@ int hcid_dbus_get_io_cap(bdaddr_t *local, bdaddr_t *remote, uint8_t *cap, uint8_t *auth) { struct adapter *adapter; - struct device *device; + struct btd_device *device; struct agent *agent; char addr[18]; @@ -2227,7 +2227,7 @@ int hcid_dbus_set_io_cap(bdaddr_t *local, bdaddr_t *remote, uint8_t cap, uint8_t auth) { struct adapter *adapter; - struct device *device; + struct btd_device *device; char addr[18]; adapter = manager_find_adapter(local); diff --git a/hcid/dbus-service.c b/hcid/dbus-service.c index 66575d33..b6a13573 100644 --- a/hcid/dbus-service.c +++ b/hcid/dbus-service.c @@ -75,7 +75,7 @@ int service_req_auth(const bdaddr_t *src, const bdaddr_t *dst, { struct service_auth *auth; struct adapter *adapter; - struct device *device; + struct btd_device *device; struct agent *agent; char address[18]; gboolean trusted; @@ -125,7 +125,7 @@ int service_req_auth(const bdaddr_t *src, const bdaddr_t *dst, int service_cancel_auth(const bdaddr_t *src, const bdaddr_t *dst) { struct adapter *adapter = manager_find_adapter(src); - struct device *device; + struct btd_device *device; struct agent *agent; char address[18]; diff --git a/hcid/device.c b/hcid/device.c index 966d9ec0..be34eda8 100644 --- a/hcid/device.c +++ b/hcid/device.c @@ -68,8 +68,7 @@ #define DEVICE_INTERFACE "org.bluez.Device" -struct device { - struct btd_device dev; +struct btd_device { gchar *address; gchar *path; struct adapter *adapter; @@ -90,7 +89,7 @@ struct device { struct browse_req { DBusConnection *conn; DBusMessage *msg; - struct device *device; + struct btd_device *device; GSList *uuids_added; GSList *uuids_removed; int search_uuid; @@ -110,7 +109,7 @@ static uint16_t uuid_list[] = { static void device_free(gpointer user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; if (device->agent) agent_destroy(device->agent, FALSE); @@ -126,7 +125,7 @@ static void device_free(gpointer user_data) g_free(device); } -static gboolean device_is_paired(struct device *device) +static gboolean device_is_paired(struct btd_device *device) { struct adapter *adapter = device->adapter; char filename[PATH_MAX + 1], *str; @@ -141,7 +140,7 @@ static gboolean device_is_paired(struct device *device) return ret; } -static char *device_get_name(struct device *device) +static char *device_get_name(struct btd_device *device) { struct adapter *adapter = device->adapter; char filename[PATH_MAX + 1]; @@ -153,7 +152,7 @@ static char *device_get_name(struct device *device) static DBusMessage *get_properties(DBusConnection *conn, DBusMessage *msg, void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; struct adapter *adapter = device->adapter; DBusMessage *reply; DBusMessageIter iter; @@ -262,7 +261,7 @@ static int remove_device_alias(const char *source, const char *destination) static DBusMessage *set_alias(DBusConnection *conn, DBusMessage *msg, const char *alias, void *data) { - struct device *device = data; + struct btd_device *device = data; struct adapter *adapter = device->adapter; bdaddr_t bdaddr; int ecode; @@ -298,7 +297,7 @@ static DBusMessage *set_alias(DBusConnection *conn, DBusMessage *msg, static DBusMessage *set_trust(DBusConnection *conn, DBusMessage *msg, dbus_bool_t value, void *data) { - struct device *device = data; + struct btd_device *device = data; struct adapter *adapter = device->adapter; bdaddr_t local; @@ -363,7 +362,7 @@ static DBusMessage *set_property(DBusConnection *conn, static void discover_services_req_exit(void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; struct adapter *adapter = device->adapter; bdaddr_t src, dst; @@ -378,7 +377,7 @@ static void discover_services_req_exit(void *user_data) static DBusMessage *discover_services(DBusConnection *conn, DBusMessage *msg, void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; const char *pattern; int err; @@ -415,7 +414,7 @@ fail: static DBusMessage *cancel_discover(DBusConnection *conn, DBusMessage *msg, void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; struct adapter *adapter = device->adapter; bdaddr_t src, dst; @@ -444,7 +443,7 @@ static DBusMessage *cancel_discover(DBusConnection *conn, static gboolean disconnect_timeout(gpointer user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; struct active_conn_info *ci; GSList *l; disconnect_cp cp; @@ -480,7 +479,7 @@ fail: static DBusMessage *disconnect(DBusConnection *conn, DBusMessage *msg, void *user_data) { - struct device *device = user_data; + struct btd_device *device = user_data; GSList *l; bdaddr_t bda; @@ -518,13 +517,13 @@ static GDBusSignalTable device_signals[] = { { } }; -struct device *device_create(DBusConnection *conn, struct adapter *adapter, +struct btd_device *device_create(DBusConnection *conn, struct adapter *adapter, const gchar *address) { gchar *address_up; - struct device *device; + struct btd_device *device; - device = g_try_malloc0(sizeof(struct device)); + device = g_try_malloc0(sizeof(struct btd_device)); if (device == NULL) return NULL; @@ -546,14 +545,10 @@ struct device *device_create(DBusConnection *conn, struct adapter *adapter, device->address = g_strdup(address); device->adapter = adapter; - device->dev.path = device->path; - str2ba(device->address, &device->dev.dst); - str2ba(adapter->address, &device->dev.src); - return device; } -void device_remove(DBusConnection *conn, struct device *device) +void device_remove(DBusConnection *conn, struct btd_device *device) { GSList *list; struct btd_device_driver *driver; @@ -564,7 +559,7 @@ void device_remove(DBusConnection *conn, struct device *device) for (list = device->drivers; list; list = list->next) { driver = (struct btd_device_driver *) list->data; - driver->remove(&device->dev); + driver->remove(device); } g_dbus_unregister_interface(conn, path, DEVICE_INTERFACE); @@ -572,7 +567,7 @@ void device_remove(DBusConnection *conn, struct device *device) g_free(path); } -gint device_address_cmp(struct device *device, const gchar *address) +gint device_address_cmp(struct btd_device *device, const gchar *address) { return strcasecmp(device->address, address); } @@ -584,7 +579,7 @@ static int cmp_by_name(const void *data, const void *user_data) return (strcmp(dev_driver->name, driver->name)); } -void device_probe_drivers(struct device *device, GSList *uuids) +void device_probe_drivers(struct btd_device *device, GSList *uuids) { GSList *list; const char **uuid; @@ -608,7 +603,7 @@ void device_probe_drivers(struct device *device, GSList *uuids) if (do_probe == TRUE && !g_slist_find_custom(device->drivers, driver, (GCompareFunc) cmp_by_name)) { - err = driver->probe(&device->dev); + err = driver->probe(device); if (err < 0) { error("probe failed for driver %s", driver->name); @@ -625,7 +620,7 @@ void device_probe_drivers(struct device *device, GSList *uuids) list->data, (GCompareFunc) strcmp); } -void device_remove_drivers(struct device *device, GSList *uuids) +void device_remove_drivers(struct btd_device *device, GSList *uuids) { GSList *list; @@ -642,7 +637,7 @@ void device_remove_drivers(struct device *device, GSList *uuids) if (!match) continue; - driver->remove(&device->dev); + driver->remove(device); device->drivers = g_slist_remove(device->drivers, driver); } @@ -746,7 +741,7 @@ static void discover_device_reply(struct browse_req *req, sdp_list_t *recs) static void services_changed(struct browse_req *req) { - struct device *device = req->device; + struct btd_device *device = req->device; char **uuids; GSList *l; int i; @@ -764,7 +759,7 @@ static void services_changed(struct browse_req *req) static void update_services(struct browse_req *req, sdp_list_t *recs) { - struct device *device = req->device; + struct btd_device *device = req->device; sdp_list_t *seq; for (seq = recs; seq; seq = seq->next) { @@ -799,7 +794,7 @@ static void update_services(struct browse_req *req, sdp_list_t *recs) } } -static void store(struct device *device) +static void store(struct btd_device *device) { struct adapter *adapter = device->adapter; bdaddr_t src, dst; @@ -821,7 +816,7 @@ static void store(struct device *device) static void browse_cb(sdp_list_t *recs, int err, gpointer user_data) { struct browse_req *req = user_data; - struct device *device = req->device; + struct btd_device *device = req->device; struct adapter *adapter = device->adapter; bdaddr_t src, dst; uuid_t uuid; @@ -906,7 +901,7 @@ cleanup: g_free(req); } -int device_browse(struct device *device, DBusConnection *conn, +int device_browse(struct btd_device *device, DBusConnection *conn, DBusMessage *msg, uuid_t *search) { struct adapter *adapter = device->adapter; @@ -947,7 +942,7 @@ int device_browse(struct device *device, DBusConnection *conn, return bt_search_service(&src, &dst, &uuid, browse_cb, req, NULL); } -struct adapter *device_get_adapter(struct device *device) +struct adapter *device_get_adapter(struct btd_device *device) { if (!device) return NULL; @@ -955,7 +950,7 @@ struct adapter *device_get_adapter(struct device *device) return device->adapter; } -const gchar *device_get_address(struct device *device) +const gchar *device_get_address(struct btd_device *device) { if (!device) return NULL; @@ -963,7 +958,7 @@ const gchar *device_get_address(struct device *device) return device->address; } -const gchar *device_get_path(struct device *device) +const gchar *device_get_path(struct btd_device *device) { if (!device) return NULL; @@ -971,7 +966,7 @@ const gchar *device_get_path(struct device *device) return device->path; } -struct agent *device_get_agent(struct device *device) +struct agent *device_get_agent(struct btd_device *device) { if (!device) return NULL; @@ -979,7 +974,7 @@ struct agent *device_get_agent(struct device *device) return device->agent; } -void device_set_agent(struct device *device, struct agent *agent) +void device_set_agent(struct btd_device *device, struct agent *agent) { if (!device) return; @@ -987,17 +982,17 @@ void device_set_agent(struct device *device, struct agent *agent) device->agent = agent; } -gboolean device_is_busy(struct device *device) +gboolean device_is_busy(struct btd_device *device) { return device->discov_active ? TRUE : FALSE; } -gboolean device_is_temporary(struct device *device) +gboolean device_is_temporary(struct btd_device *device) { return device->temporary; } -void device_set_temporary(struct device *device, gboolean temporary) +void device_set_temporary(struct btd_device *device, gboolean temporary) { if (!device) return; @@ -1005,7 +1000,7 @@ void device_set_temporary(struct device *device, gboolean temporary) device->temporary = temporary; } -void device_set_cap(struct device *device, uint8_t cap) +void device_set_cap(struct btd_device *device, uint8_t cap) { if (!device) return; @@ -1013,7 +1008,7 @@ void device_set_cap(struct device *device, uint8_t cap) device->cap = cap; } -void device_set_auth(struct device *device, uint8_t auth) +void device_set_auth(struct btd_device *device, uint8_t auth) { if (!device) return; @@ -1021,7 +1016,7 @@ void device_set_auth(struct device *device, uint8_t auth) device->auth = auth; } -uint8_t device_get_auth(struct device *device) +uint8_t device_get_auth(struct btd_device *device) { return device->auth; } diff --git a/hcid/device.h b/hcid/device.h index 841ad866..0e6944b3 100644 --- a/hcid/device.h +++ b/hcid/device.h @@ -24,30 +24,24 @@ #define DEVICE_INTERFACE "org.bluez.Device" -struct btd_device { - char *path; - bdaddr_t src; - bdaddr_t dst; -}; - -struct device *device_create(DBusConnection *conn, struct adapter *adapter, +struct btd_device *device_create(DBusConnection *conn, struct adapter *adapter, const gchar *address); -void device_remove(DBusConnection *conn, struct device *device); -gint device_address_cmp(struct device *device, const gchar *address); -int device_browse(struct device *device, DBusConnection *conn, +void device_remove(DBusConnection *conn, struct btd_device *device); +gint device_address_cmp(struct btd_device *device, const gchar *address); +int device_browse(struct btd_device *device, DBusConnection *conn, DBusMessage *msg, uuid_t *search); -void device_probe_drivers(struct device *device, GSList *uuids); -struct adapter *device_get_adapter(struct device *device); -const gchar *device_get_address(struct device *device); -const gchar *device_get_path(struct device *device); -struct agent *device_get_agent(struct device *device); -void device_set_agent(struct device *device, struct agent *agent); -gboolean device_is_busy(struct device *device); -gboolean device_is_temporary(struct device *device); -void device_set_temporary(struct device *device, gboolean temporary); -void device_set_cap(struct device *device, uint8_t cap); -void device_set_auth(struct device *device, uint8_t auth); -uint8_t device_get_auth(struct device *device); +void device_probe_drivers(struct btd_device *device, GSList *uuids); +struct adapter *device_get_adapter(struct btd_device *device); +const gchar *device_get_address(struct btd_device *device); +const gchar *device_get_path(struct btd_device *device); +struct agent *device_get_agent(struct btd_device *device); +void device_set_agent(struct btd_device *device, struct agent *agent); +gboolean device_is_busy(struct btd_device *device); +gboolean device_is_temporary(struct btd_device *device); +void device_set_temporary(struct btd_device *device, gboolean temporary); +void device_set_cap(struct btd_device *device, uint8_t cap); +void device_set_auth(struct btd_device *device, uint8_t auth); +uint8_t device_get_auth(struct btd_device *device); #define BTD_UUIDS(args...) ((const char *[]) { args, NULL } ) diff --git a/input/main.c b/input/main.c index b269c76e..713335ee 100644 --- a/input/main.c +++ b/input/main.c @@ -78,9 +78,10 @@ static DBusConnection *conn; static int input_probe(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); - if (g_dbus_register_interface(conn, device->path, INPUT_INTERFACE, + if (g_dbus_register_interface(conn, path, INPUT_INTERFACE, input_methods, input_signals, NULL, device, NULL) == FALSE) return -1; @@ -90,9 +91,10 @@ static int input_probe(struct btd_device *device) static void input_remove(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); - g_dbus_unregister_interface(conn, device->path, INPUT_INTERFACE); + g_dbus_unregister_interface(conn, path, INPUT_INTERFACE); } static struct btd_device_driver input_driver = { diff --git a/network/main.c b/network/main.c index f18223cc..219c4417 100644 --- a/network/main.c +++ b/network/main.c @@ -85,9 +85,10 @@ static DBusConnection *conn; static int network_probe(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); - if (g_dbus_register_interface(conn, device->path, NETWORK_INTERFACE, + if (g_dbus_register_interface(conn, path, NETWORK_INTERFACE, network_methods, network_signals, NULL, device, NULL) == FALSE) return -1; @@ -97,9 +98,10 @@ static int network_probe(struct btd_device *device) static void network_remove(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); - g_dbus_unregister_interface(conn, device->path, NETWORK_INTERFACE); + g_dbus_unregister_interface(conn, path, NETWORK_INTERFACE); } static struct btd_device_driver network_driver = { diff --git a/serial/main.c b/serial/main.c index 20aea93a..518649e0 100644 --- a/serial/main.c +++ b/serial/main.c @@ -51,15 +51,16 @@ static DBusMessage *serial_connect(DBusConnection *conn, DBusMessage *msg, void *user_data) { struct btd_device *device = user_data; + struct adapter *adapter = device_get_adapter(device); const char *target; - char src[18], dst[18]; + const gchar *src, *dst; if (dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &target, DBUS_TYPE_INVALID) == FALSE) return NULL; - ba2str(&device->src, src); - ba2str(&device->dst, dst); + src = device_get_address(device); + dst = adapter->address; service_connect(conn, msg, src, dst, target); @@ -98,9 +99,10 @@ static DBusConnection *conn; static int serial_probe(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); - if (g_dbus_register_interface(conn, device->path, SERIAL_INTERFACE, + if (g_dbus_register_interface(conn, path, SERIAL_INTERFACE, serial_methods, NULL, NULL, device, NULL) == FALSE) return -1; @@ -110,9 +112,10 @@ static int serial_probe(struct btd_device *device) static void serial_remove(struct btd_device *device) { - DBG("path %s", device->path); + const gchar *path = device_get_path(device); + DBG("path %s", path); - g_dbus_unregister_interface(conn, device->path, SERIAL_INTERFACE); + g_dbus_unregister_interface(conn, path, SERIAL_INTERFACE); } static struct btd_device_driver serial_driver = { |