summaryrefslogtreecommitdiff
path: root/src/device.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/device.h')
-rw-r--r--src/device.h127
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);