blob: 9a68922e364680862f5514ab63f5de39696d96c9 [file] [log] [blame]
Dominik Behr83010f82016-03-18 18:43:08 -07001/*
2 * Copyright (c) 2014 The Chromium OS Authors. All rights reserved.
3 * Use of this source code is governed by a BSD-style license that can be
4 * found in the LICENSE file.
5 */
6
7#ifndef DRM_H
8#define DRM_H
9
10
11#include <stdbool.h>
12#include <stdio.h>
13#include <edid_utils.h>
14#include <xf86drm.h>
15#include <xf86drmMode.h>
16
17typedef struct _drm_t {
18 int refcount;
19 int fd;
20 drmModeRes* resources;
21 drmModePlaneResPtr plane_resources;
22 drmModeConnector* main_monitor_connector;
23 drmModeCrtc* crtc;
24 uint32_t selected_mode;
25 bool edid_found;
26 char edid[EDID_SIZE];
27} drm_t;
28
29drm_t* drm_scan(void);
30void drm_set(drm_t* drm);
31void drm_close(void);
32drm_t* drm_addref(void);
33void drm_delref(drm_t* drm);
Dominik Behrb1abcba2016-04-14 14:57:21 -070034void drm_dropmaster(drm_t* drm);
Dominik Behr83010f82016-03-18 18:43:08 -070035bool drm_rescan(void);
36bool drm_valid(drm_t* drm);
37int32_t drm_setmode(drm_t* drm, uint32_t fb_id);
38bool drm_read_edid(drm_t* drm);
39uint32_t drm_gethres(drm_t* drm);
40uint32_t drm_getvres(drm_t* drm);
41
42#endif