summaryrefslogtreecommitdiff
path: root/src/main.c
blob: 0230dfdf20826035ba7b1f6932b8febaf6563228 (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
33
34
35
36
37
38
39
40
41
42
43
#include "scapx.h"


Scr_info *init_XCB_server()
{
	Scr_info *info = malloc(sizeof(Scr_info));
	if (!info) {
		fprintf(stderr, "memory allocation failed.\n");
		return NULL;
	}

	info->con = xcb_connect(NULL, NULL);
	if (xcb_connection_has_error(info->con) > 0) {
		fprintf(stderr, "Error opening display.\n");
		free(info);
		return NULL;
	}

	const xcb_setup_t *setup = xcb_get_setup(info->con);
	info->scr = xcb_setup_roots_iterator(setup).data;

	return info;
}

int main()
{
	Scr_info *info = init_XCB_server();

	if (!info || !info->scr) {
		fprintf(stderr, "Error opening display.\n");
		if (info) {
			xcb_disconnect(info->con);
			free(info);
		}
		exit(EXIT_FAILURE);
	}

	// TODO: event loop

	xcb_disconnect(info->con);
	free(info);
	return 0;
}