Beispiel #1
0
struct ratbag_device*
ratbag_device_new(struct ratbag *ratbag, struct udev_device *udev_device,
		  const char *name, const struct input_id *id)
{
	struct ratbag_device *device = NULL;

	device = zalloc(sizeof(*device));
	device->name = strdup_safe(name);
	device->ratbag = ratbag_ref(ratbag);
	device->refcount = 1;
	device->udev_device = udev_device_ref(udev_device);
	device->ids = *id;
	device->data = ratbag_device_data_new_for_id(ratbag, id);
	list_init(&device->profiles);

	list_insert(&ratbag->devices, &device->link);

	/* We assume that most devices have this capability, so let's set it
	 * by default. The few devices that miss this capability should
	 * unset it instead.
	 */
	ratbag_device_set_capability(device,
				     RATBAG_DEVICE_CAP_QUERY_CONFIGURATION);

	return device;
}
Beispiel #2
0
END_TEST

START_TEST(context_ref)
{
	struct ratbag *lr;
	struct ratbag *lr2;

	lr = ratbag_create_context(&simple_iface, NULL);
	ck_assert(lr != NULL);

	lr2 = ratbag_ref(lr);
	ck_assert_ptr_eq(lr, lr2);

	lr2 = ratbag_unref(lr2);
	ck_assert_ptr_eq(lr2, lr);

	lr2 = ratbag_unref(lr2);
	ck_assert_ptr_eq(lr2, NULL);
}