vdr-plugin-softhddevice-drm-gles 1.5.9-20e15de
drmdevice.cpp File Reference

DRM device class. More...

#include <cerrno>
#include <cstdint>
#include <cstdio>
#include <cstring>
#include <cinttypes>
#include <vector>
#include <fcntl.h>
#include <unistd.h>
#include <drm_fourcc.h>
#include <xf86drm.h>
#include <xf86drmMode.h>
#include "drmdevice.h"
#include "drmplane.h"
#include "logger.h"
#include "videorender.h"

Go to the source code of this file.

Macros

#define MAX_DRM_DEVICES   64
 

Functions

static int get_resources (int fd, drmModeRes **resources)
 
static int TestCaps (int fd)
 Test drm capabilities.
 
static int FindDrmDevice (drmModeRes **resources)
 Find and open a suitable device with the wanted capabilities.
 
static drmModeConnector * FindDrmConnector (int fd, drmModeRes *resources)
 Find a suitable connector, preferably a connected one.
 
static int GetPropertyValue (int fdDrm, uint32_t objectID, uint32_t objectType, const char *propName, uint64_t *value)
 Gets a property value.
 
static int32_t FindCrtcForEncoder (const drmModeRes *resources, const drmModeEncoder *encoder)
 Finds the CRTC_ID for the given encoder.
 

Detailed Description

DRM device class.

This file defines cDrmDevice, which keeps some functions to interact with the DRM (display) system.

Definition in file drmdevice.cpp.

Macro Definition Documentation

◆ MAX_DRM_DEVICES

#define MAX_DRM_DEVICES   64

Definition at line 114 of file drmdevice.cpp.

Function Documentation

◆ FindCrtcForEncoder()

static int32_t FindCrtcForEncoder ( const drmModeRes *  resources,
const drmModeEncoder *  encoder 
)
static

Finds the CRTC_ID for the given encoder.

Definition at line 892 of file drmdevice.cpp.

Referenced by cDrmDevice::FindCrtcForConnector().

◆ FindDrmConnector()

static drmModeConnector * FindDrmConnector ( int  fd,
drmModeRes *  resources 
)
static

Find a suitable connector, preferably a connected one.

Definition at line 164 of file drmdevice.cpp.

Referenced by cDrmDevice::Init().

◆ FindDrmDevice()

static int FindDrmDevice ( drmModeRes **  resources)
static

Find and open a suitable device with the wanted capabilities.

Returns
the file descriptor of the opened device

Definition at line 120 of file drmdevice.cpp.

References get_resources(), LOGERROR, MAX_DRM_DEVICES, and TestCaps().

Referenced by cDrmDevice::Init().

◆ get_resources()

static int get_resources ( int  fd,
drmModeRes **  resources 
)
static

Definition at line 74 of file drmdevice.cpp.

References LOGERROR.

Referenced by FindDrmDevice().

◆ GetPropertyValue()

static int GetPropertyValue ( int  fdDrm,
uint32_t  objectID,
uint32_t  objectType,
const char *  propName,
uint64_t *  value 
)
static

Gets a property value.

Definition at line 197 of file drmdevice.cpp.

References L_DRM, and LOGDEBUG2.

Referenced by cDrmDevice::Init().

◆ TestCaps()

static int TestCaps ( int  fd)
static

Test drm capabilities.

Returns
0 if all caps match, 1 on mismatch

Definition at line 89 of file drmdevice.cpp.

Referenced by FindDrmDevice().