aboutsummaryrefslogtreecommitdiff
path: root/include/backend.h
blob: 8f6ff399d7b7266f7e7bd5b567394f2764067c50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#ifndef _SEATD_BACKEND_H
#define _SEATD_BACKEND_H

#include "libseat.h"

struct seat_impl;
struct libseat_seat_listener;

struct libseat {
	const struct seat_impl *impl;
};

struct named_backend {
	const char *name;
	const struct seat_impl *backend;
};

struct seat_impl {
	struct libseat *(*open_seat)(const struct libseat_seat_listener *listener, void *data);
	int (*disable_seat)(struct libseat *seat);
	int (*close_seat)(struct libseat *seat);
	const char *(*seat_name)(struct libseat *seat);

	int (*open_device)(struct libseat *seat, const char *path, int *fd);
	int (*close_device)(struct libseat *seat, int device_id);
	int (*switch_session)(struct libseat *seat, int session);

	int (*get_fd)(struct libseat *seat);
	int (*dispatch)(struct libseat *seat, int timeout);
};

#endif