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