diff options
Diffstat (limited to 'src/device.h')
-rw-r--r-- | src/device.h | 127 |
1 files changed, 67 insertions, 60 deletions
diff --git a/src/device.h b/src/device.h index 26e17f7e..deec8d0e 100644 --- a/src/device.h +++ b/src/device.h @@ -22,77 +22,80 @@ * */ -#define DEVICE_INTERFACE "org.bluez.Device" +#define DEVICE_INTERFACE "org.bluez.Device1" struct btd_device; -typedef enum { - AUTH_TYPE_PINCODE, - AUTH_TYPE_PASSKEY, - AUTH_TYPE_CONFIRM, - AUTH_TYPE_NOTIFY_PASSKEY, - AUTH_TYPE_NOTIFY_PINCODE, -} auth_type_t; +struct btd_device *device_create(struct btd_adapter *adapter, + const bdaddr_t *address, uint8_t bdaddr_type); +struct btd_device *device_create_from_storage(struct btd_adapter *adapter, + const char *address, GKeyFile *key_file); +char *btd_device_get_storage_path(struct btd_device *device, + const char *filename); -struct btd_device *device_create(DBusConnection *conn, - struct btd_adapter *adapter, - const char *address, uint8_t bdaddr_type); void device_set_name(struct btd_device *device, const char *name); +void device_store_cached_name(struct btd_device *dev, const char *name); void device_get_name(struct btd_device *device, char *name, size_t len); +bool device_name_known(struct btd_device *device); +void device_set_class(struct btd_device *device, uint32_t class); +uint32_t btd_device_get_class(struct btd_device *device); uint16_t btd_device_get_vendor(struct btd_device *device); uint16_t btd_device_get_vendor_src(struct btd_device *device); uint16_t btd_device_get_product(struct btd_device *device); uint16_t btd_device_get_version(struct btd_device *device); void device_remove(struct btd_device *device, gboolean remove_stored); -gint device_address_cmp(struct btd_device *device, const gchar *address); -int device_browse_primary(struct btd_device *device, DBusConnection *conn, - DBusMessage *msg, gboolean secure); -int device_browse_sdp(struct btd_device *device, DBusConnection *conn, - DBusMessage *msg, uuid_t *search, gboolean reverse); -void device_probe_drivers(struct btd_device *device, GSList *profiles); +int device_address_cmp(gconstpointer a, gconstpointer b); +int device_bdaddr_cmp(gconstpointer a, gconstpointer b); +GSList *device_get_uuids(struct btd_device *device); +void device_probe_profiles(struct btd_device *device, GSList *profiles); const sdp_record_t *btd_device_get_record(struct btd_device *device, const char *uuid); +struct gatt_primary *btd_device_get_primary(struct btd_device *device, + const char *uuid); GSList *btd_device_get_primaries(struct btd_device *device); -void device_register_services(DBusConnection *conn, struct btd_device *device, - GSList *prim_list, int psm); -GSList *device_services_from_record(struct btd_device *device, - GSList *profiles); +void btd_device_gatt_set_service_changed(struct btd_device *device, + uint16_t start, uint16_t end); void btd_device_add_uuid(struct btd_device *device, const char *uuid); +void device_add_eir_uuids(struct btd_device *dev, GSList *uuids); +void device_probe_profile(gpointer a, gpointer b); +void device_remove_profile(gpointer a, gpointer b); struct btd_adapter *device_get_adapter(struct btd_device *device); -void device_get_address(struct btd_device *device, bdaddr_t *bdaddr, - uint8_t *bdaddr_type); -void device_set_addr_type(struct btd_device *device, uint8_t bdaddr_type); -uint8_t device_get_addr_type(struct btd_device *device); -const gchar *device_get_path(struct btd_device *device); -struct agent *device_get_agent(struct btd_device *device); +const bdaddr_t *device_get_address(struct btd_device *device); +const char *device_get_path(const struct btd_device *device); gboolean device_is_bredr(struct btd_device *device); gboolean device_is_le(struct btd_device *device); -gboolean device_is_busy(struct btd_device *device); gboolean device_is_temporary(struct btd_device *device); gboolean device_is_paired(struct btd_device *device); gboolean device_is_bonded(struct btd_device *device); gboolean device_is_trusted(struct btd_device *device); void device_set_paired(struct btd_device *device, gboolean paired); void device_set_temporary(struct btd_device *device, gboolean temporary); +void device_set_trusted(struct btd_device *device, gboolean trusted); void device_set_bonded(struct btd_device *device, gboolean bonded); -void device_set_auto_connect(struct btd_device *device, gboolean enable); +void device_set_legacy(struct btd_device *device, bool legacy); +void device_set_rssi(struct btd_device *device, int8_t rssi); gboolean device_is_connected(struct btd_device *device); -DBusMessage *device_create_bonding(struct btd_device *device, - DBusConnection *conn, DBusMessage *msg, - const char *agent_path, uint8_t capability); +bool device_is_retrying(struct btd_device *device); void device_bonding_complete(struct btd_device *device, uint8_t status); -void device_simple_pairing_complete(struct btd_device *device, uint8_t status); -gboolean device_is_creating(struct btd_device *device, const char *sender); gboolean device_is_bonding(struct btd_device *device, const char *sender); -void device_cancel_bonding(struct btd_device *device, uint8_t status); -int device_request_authentication(struct btd_device *device, auth_type_t type, - void *data, gboolean secure, void *cb); +void device_bonding_attempt_failed(struct btd_device *device, uint8_t status); +void device_bonding_failed(struct btd_device *device, uint8_t status); +struct btd_adapter_pin_cb_iter *device_bonding_iter(struct btd_device *device); +int device_bonding_attempt_retry(struct btd_device *device); +long device_bonding_last_duration(struct btd_device *device); +void device_bonding_restart_timer(struct btd_device *device); +int device_request_pincode(struct btd_device *device, gboolean secure); +int device_request_passkey(struct btd_device *device); +int device_confirm_passkey(struct btd_device *device, uint32_t passkey, + uint8_t confirm_hint); +int device_notify_passkey(struct btd_device *device, uint32_t passkey, + uint8_t entered); +int device_notify_pincode(struct btd_device *device, gboolean secure, + const char *pincode); void device_cancel_authentication(struct btd_device *device, gboolean aborted); gboolean device_is_authenticating(struct btd_device *device); -gboolean device_is_authorizing(struct btd_device *device); -void device_set_authorizing(struct btd_device *device, gboolean auth); -void device_add_connection(struct btd_device *device, DBusConnection *conn); -void device_remove_connection(struct btd_device *device, DBusConnection *conn); +void device_add_connection(struct btd_device *device); +void device_remove_connection(struct btd_device *device); void device_request_disconnect(struct btd_device *device, DBusMessage *msg); typedef void (*disconnect_watch) (struct btd_device *device, gboolean removal, @@ -102,27 +105,31 @@ guint device_add_disconnect_watch(struct btd_device *device, disconnect_watch watch, void *user_data, GDestroyNotify destroy); void device_remove_disconnect_watch(struct btd_device *device, guint id); -void device_set_class(struct btd_device *device, uint32_t value); +int device_get_appearance(struct btd_device *device, uint16_t *value); +void device_set_appearance(struct btd_device *device, uint16_t value); -#define BTD_UUIDS(args...) ((const char *[]) { args, NULL } ) +struct btd_device *btd_device_ref(struct btd_device *device); +void btd_device_unref(struct btd_device *device); -struct btd_device_driver { - const char *name; - const char **uuids; - int (*probe) (struct btd_device *device, GSList *uuids); - void (*remove) (struct btd_device *device); -}; +int device_block(struct btd_device *device, gboolean update_only); +int device_unblock(struct btd_device *device, gboolean silent, + gboolean update_only); +void btd_device_set_pnpid(struct btd_device *device, uint16_t source, + uint16_t vendor, uint16_t product, uint16_t version); -int btd_register_device_driver(struct btd_device_driver *driver); -void btd_unregister_device_driver(struct btd_device_driver *driver); +int device_connect_le(struct btd_device *dev); -struct btd_device *btd_device_ref(struct btd_device *device); -void btd_device_unref(struct btd_device *device); +typedef void (*device_svc_cb_t) (struct btd_device *dev, int err, + void *user_data); + +unsigned int device_wait_for_svc_complete(struct btd_device *dev, + device_svc_cb_t func, + void *user_data); +bool device_remove_svc_complete_callback(struct btd_device *dev, + unsigned int id); + +struct btd_service *btd_device_get_service(struct btd_device *dev, + const char *remote_uuid); -int device_block(DBusConnection *conn, struct btd_device *device, - gboolean update_only); -int device_unblock(DBusConnection *conn, struct btd_device *device, - gboolean silent, gboolean update_only); -void device_set_pnpid(struct btd_device *device, uint8_t vendor_id_src, - uint16_t vendor_id, uint16_t product_id, - uint16_t product_ver); +void btd_device_init(void); +void btd_device_cleanup(void); |