コード例 #1
0
static int hog_probe(struct btd_service *service)
{
    struct btd_device *device = btd_service_get_device(service);
    const char *path = device_get_path(device);
    GSList *primaries, *l;

    DBG("path %s", path);

    primaries = btd_device_get_primaries(device);
    if (primaries == NULL)
        return -EINVAL;

    for (l = primaries; l; l = g_slist_next(l)) {
        struct gatt_primary *prim = l->data;
        struct hog_device *dev;

        if (strcmp(prim->uuid, HOG_UUID) != 0)
            continue;

        dev = hog_device_new(device, prim);
        btd_service_set_user_data(service, dev);
        return 0;
    }

    return -EINVAL;
}
コード例 #2
0
ファイル: manager.c プロジェクト: richardxu/panda-a4
static int thermometer_driver_probe(struct btd_device *device, GSList *uuids)
{
	struct gatt_primary *tattr;
	GSList *primaries, *l;

	primaries = btd_device_get_primaries(device);

	l = g_slist_find_custom(primaries, HEALTH_THERMOMETER_UUID,
							primary_uuid_cmp);
	if (l == NULL)
		return -EINVAL;

	tattr = l->data;

	return thermometer_register(connection, device, tattr);
}
コード例 #3
0
ファイル: manager.c プロジェクト: richardxu/panda-a4
static int batterystate_driver_probe(struct btd_device *device, GSList *uuids)
{
	struct gatt_primary *prim;
	GSList *primaries, *l;

	primaries = btd_device_get_primaries(device);

	l = g_slist_find_custom(primaries, BATTERY_SERVICE_UUID,
							primary_uuid_cmp);
	if (l == NULL)
		return -EINVAL;

	prim = l->data;

	return batterystate_register(connection, device, prim);
}