static int deviceinfo_driver_probe(struct btd_service *service) { struct btd_device *device = btd_service_get_device(service); struct gatt_primary *prim; prim = btd_device_get_primary(device, DEVICE_INFORMATION_UUID); if (prim == NULL) return -EINVAL; return deviceinfo_register(service, prim); }
static int heartrate_device_probe(struct btd_service *service) { struct btd_device *device = btd_service_get_device(service); struct gatt_primary *prim; prim = btd_device_get_primary(device, HEART_RATE_UUID); if (prim == NULL) return -EINVAL; return heartrate_device_register(device, prim); }
static int monitor_txpower_probe(struct btd_service *service) { struct btd_device *device = btd_service_get_device(service); struct gatt_primary *txpower; txpower = btd_device_get_primary(device, TX_POWER_UUID); if (txpower == NULL) return -1; return monitor_register_txpower(device, &enabled, txpower); }
static int monitor_immediate_probe(struct btd_service *service) { struct btd_device *device = btd_service_get_device(service); struct gatt_primary *immediate; immediate = btd_device_get_primary(device, IMMEDIATE_ALERT_UUID); if (immediate == NULL) return -1; return monitor_register_immediate(device, &enabled, immediate); }
static int monitor_linkloss_probe(struct btd_service *service) { struct btd_device *device = btd_service_get_device(service); struct gatt_primary *linkloss; linkloss = btd_device_get_primary(device, LINK_LOSS_UUID); if (linkloss == NULL) return -1; return monitor_register_linkloss(device, &enabled, linkloss); }
static int scan_param_probe(struct btd_service *service) { struct btd_device *device = btd_service_get_device(service); struct gatt_primary *prim; DBG("Probing Scan Parameters"); prim = btd_device_get_primary(device, SCAN_PARAMETERS_UUID); if (!prim) return -EINVAL; return scan_register(service, prim); }
static int csc_device_probe(struct btd_service *service) { struct btd_device *device = btd_service_get_device(service); struct btd_adapter *adapter; struct csc_adapter *cadapter; struct csc *csc; struct gatt_primary *prim; prim = btd_device_get_primary(device, CYCLING_SC_UUID); if (prim == NULL) return -EINVAL; adapter = device_get_adapter(device); cadapter = find_csc_adapter(adapter); if (cadapter == NULL) return -1; csc = g_new0(struct csc, 1); csc->dev = btd_device_ref(device); csc->cadapter = cadapter; if (!g_dbus_register_interface(btd_get_dbus_connection(), device_get_path(device), CYCLINGSPEED_INTERFACE, cyclingspeed_device_methods, NULL, cyclingspeed_device_properties, csc, destroy_csc)) { error("D-Bus failed to register %s interface", CYCLINGSPEED_INTERFACE); destroy_csc(csc); return -EIO; } csc->svc_range = g_new0(struct att_range, 1); csc->svc_range->start = prim->range.start; csc->svc_range->end = prim->range.end; cadapter->devices = g_slist_prepend(cadapter->devices, csc); csc->attioid = btd_device_add_attio_callback(device, attio_connected_cb, attio_disconnected_cb, csc); return 0; }