vdr-plugin-softhddevice-drm-gles 1.5.9-20e15de
drmplane.h
Go to the documentation of this file.
1
21#ifndef __DRMPLANE_H
22#define __DRMPLANE_H
23
24#include <xf86drmMode.h>
25
29class cDrmPlane {
30public:
31 cDrmPlane(void) = default;
32
33 void SetParams(uint64_t, uint64_t,
34 uint64_t, uint64_t, uint64_t, uint64_t,
35 uint64_t, uint64_t, uint64_t, uint64_t);
36 void DumpParameters(const char *);
37 void FillProperties(int);
38 void FreeProperties(void);
39 void SetPlaneZpos(drmModeAtomicReqPtr);
40 void SetPlane(drmModeAtomicReqPtr);
41 void ClearPlane(drmModeAtomicReqPtr);
42 int HasZpos(int);
43
44 // getters and setters
45 uint32_t GetId(void) { return m_planeId; };
46 void SetId(uint32_t id) { m_planeId = id; };
47 uint64_t GetType(void) { return m_type; };
48 void SetType(uint64_t type) { m_type = type; };
49 uint64_t GetCrtcId(void) { return m_crtcId; };
50 uint64_t GetFbId(void) { return m_fbId; };
51 uint64_t GetCrtcX(void) { return m_crtcX; };
52 uint64_t GetCrtcY(void) { return m_crtcY; };
53 uint64_t GetCrtcW(void) { return m_crtcW; };
54 uint64_t GetCrtcH(void) { return m_crtcH; };
55 uint64_t GetSrcX(void) { return m_srcX; };
56 uint64_t GetSrcY(void) { return m_srcY; };
57 uint64_t GetSrcW(void) { return m_srcW; };
58 uint64_t GetSrcH(void) { return m_srcH; };
59 uint64_t GetZpos(void) { return m_zpos; };
60 void SetZpos(uint64_t zpos) { m_zpos = zpos; };
61
62 int GetCountProps(void) { return m_props ? m_props->count_props : 0; };
63 char *GetPropsInfoName(int prop) { return m_propsInfo[prop]->name; };
64 uint32_t GetPropsInfoPropId(int prop) { return m_propsInfo[prop]->prop_id; };
65 drmModeObjectProperties *GetProps(void) { return m_props; };
66 void SetProps(drmModeObjectProperties *props) { m_props = props; };
67 drmModePropertyRes **GetPropsInfo(void) { return m_propsInfo; };
68 drmModePropertyRes **GetPropsInfoElem(int elem) { return &m_propsInfo[elem]; };
69
70private:
71 uint32_t m_planeId = 0;
72 uint64_t m_type = 0;
74 drmModeObjectProperties *m_props = nullptr;
75 drmModePropertyRes **m_propsInfo;
76
77 // The modesetting parameters for a drm commit
78 uint64_t m_crtcId;
79 uint64_t m_fbId;
80 uint64_t m_crtcX;
81 uint64_t m_crtcY;
82 uint64_t m_crtcW;
83 uint64_t m_crtcH;
84 uint64_t m_srcX;
85 uint64_t m_srcY;
86 uint64_t m_srcW;
87 uint64_t m_srcH;
88 uint64_t m_zpos = 0;
89
90 int SetPropertyRequest(drmModeAtomicReqPtr, const char *, uint64_t);
91};
92
93#endif
cDrmPlane - DRM plane class
Definition drmplane.h:29
uint64_t m_crtcX
CRTC_X.
Definition drmplane.h:80
uint64_t GetCrtcX(void)
Definition drmplane.h:51
uint64_t m_fbId
FB_ID.
Definition drmplane.h:79
void SetParams(uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t, uint64_t)
Set the modesetting parameters of a plane.
Definition drmplane.cpp:98
uint64_t GetCrtcId(void)
Definition drmplane.h:49
void ClearPlane(drmModeAtomicReqPtr)
Clear plane from drm.
Definition drmplane.cpp:177
uint64_t GetCrtcH(void)
Definition drmplane.h:54
uint64_t m_crtcId
CRTC_ID.
Definition drmplane.h:78
drmModePropertyRes ** GetPropsInfoElem(int elem)
Definition drmplane.h:68
void SetProps(drmModeObjectProperties *props)
Definition drmplane.h:66
uint64_t GetType(void)
Definition drmplane.h:47
uint64_t GetSrcH(void)
Definition drmplane.h:58
uint32_t GetPropsInfoPropId(int prop)
Definition drmplane.h:64
int SetPropertyRequest(drmModeAtomicReqPtr, const char *, uint64_t)
Add the properties to the mode setting request.
Definition drmplane.cpp:121
uint64_t GetZpos(void)
Definition drmplane.h:59
uint64_t m_type
type: DRM_PLANE_TYPE_PRIMARY or DRM_PLANE_TYPE_OVERLAY
Definition drmplane.h:72
void SetId(uint32_t id)
Definition drmplane.h:46
int HasZpos(int)
Check, if the plane is able to set the zpos property.
Definition drmplane.cpp:191
void FillProperties(int)
Fill the plane properties.
Definition drmplane.cpp:46
char * GetPropsInfoName(int prop)
Definition drmplane.h:63
uint64_t GetSrcY(void)
Definition drmplane.h:56
uint64_t m_zpos
ZPOS.
Definition drmplane.h:88
uint64_t m_crtcW
CRTC_W.
Definition drmplane.h:82
uint64_t m_srcW
SRC_W.
Definition drmplane.h:86
void SetZpos(uint64_t zpos)
Definition drmplane.h:60
uint64_t GetFbId(void)
Definition drmplane.h:50
drmModeObjectProperties * m_props
Definition drmplane.h:74
drmModePropertyRes ** GetPropsInfo(void)
Definition drmplane.h:67
uint64_t m_crtcH
CRTC_H.
Definition drmplane.h:83
cDrmPlane(void)=default
void FreeProperties(void)
Free the previously filled plane properties.
Definition drmplane.cpp:65
void SetPlane(drmModeAtomicReqPtr)
Set all other plane properties.
Definition drmplane.cpp:156
int GetCountProps(void)
Definition drmplane.h:62
drmModePropertyRes ** m_propsInfo
Definition drmplane.h:75
uint64_t m_crtcY
CRTC_Y.
Definition drmplane.h:81
void SetPlaneZpos(drmModeAtomicReqPtr)
Set the plane zpos property.
Definition drmplane.cpp:146
uint32_t m_planeId
the plane's ID
Definition drmplane.h:71
uint64_t GetSrcW(void)
Definition drmplane.h:57
uint64_t m_srcY
SRC_Y.
Definition drmplane.h:85
uint64_t m_srcH
SRC_H.
Definition drmplane.h:87
drmModeObjectProperties * GetProps(void)
Definition drmplane.h:65
uint64_t GetSrcX(void)
Definition drmplane.h:55
uint64_t GetCrtcW(void)
Definition drmplane.h:53
uint64_t m_srcX
SRC_X.
Definition drmplane.h:84
void SetType(uint64_t type)
Definition drmplane.h:48
uint32_t GetId(void)
Definition drmplane.h:45
uint64_t GetCrtcY(void)
Definition drmplane.h:52
void DumpParameters(const char *)
Dump the plane parameter modesetting values.
Definition drmplane.cpp:218