1#ifndef __DEV_H_INCLUDED__
2#define __DEV_H_INCLUDED__
3
4#include <stdint.h>
5#include <xf86drmMode.h>
6
7struct sp_bo;
8struct sp_dev;
9
10struct sp_plane {
11	struct sp_dev *dev;
12	drmModePlanePtr plane;
13	struct sp_bo *bo;
14	int in_use;
15	uint32_t format;
16
17	/* Property ID's */
18	uint32_t crtc_pid;
19	uint32_t fb_pid;
20	uint32_t zpos_pid;
21	uint32_t crtc_x_pid;
22	uint32_t crtc_y_pid;
23	uint32_t crtc_w_pid;
24	uint32_t crtc_h_pid;
25	uint32_t src_x_pid;
26	uint32_t src_y_pid;
27	uint32_t src_w_pid;
28	uint32_t src_h_pid;
29};
30
31struct sp_connector {
32	drmModeConnectorPtr conn;
33	uint32_t crtc_id_pid;
34};
35
36struct sp_crtc {
37	drmModeCrtcPtr crtc;
38	int pipe;
39	int num_planes;
40	uint32_t mode_pid;
41	uint32_t active_pid;
42};
43
44struct sp_dev {
45	int fd;
46
47	int num_connectors;
48	struct sp_connector *connectors;
49
50	int num_encoders;
51	drmModeEncoderPtr *encoders;
52
53	int num_crtcs;
54	struct sp_crtc *crtcs;
55
56	int num_planes;
57	struct sp_plane *planes;
58};
59
60void parse_arguments(int argc, char *argv[], int *card, int *crtc);
61
62struct sp_dev *create_sp_dev(int card);
63void destroy_sp_dev(struct sp_dev *dev);
64
65#endif /* __DEV_H_INCLUDED__ */
66