8#include <qwayland-server-drm-lease-v1.h>
24class DrmLeaseConnectorV1Interface;
25class DrmLeaseRequestV1Interface;
26class DrmLeaseV1Interface;
49 void wp_drm_lease_device_v1_create_lease_request(Resource *resource, uint32_t
id)
override;
50 void wp_drm_lease_device_v1_release(Resource *resource)
override;
51 void wp_drm_lease_device_v1_bind_resource(Resource *resource)
override;
52 void wp_drm_lease_device_v1_destroy_global()
override;
55 bool m_hasDrmMaster =
true;
56 std::map<DrmAbstractOutput *, std::unique_ptr<DrmLeaseConnectorV1Interface>> m_connectors;
57 QQueue<wl_resource *> m_pendingFds;
58 QList<DrmLeaseRequestV1Interface *> m_leaseRequests;
59 QList<DrmLeaseV1Interface *> m_leases;
69 void send(wl_resource *resource);
77 void wp_drm_lease_connector_v1_destroy(Resource *resource)
override;
79 QPointer<DrmLeaseDeviceV1Interface> m_device;
80 bool m_withdrawn =
false;
90 QList<DrmLeaseConnectorV1Interface *>
connectors()
const;
110 void grant(std::unique_ptr<DrmLease> &&lease);
114 QList<DrmLeaseConnectorV1Interface *>
connectors()
const;
118 QList<DrmLeaseConnectorV1Interface *> m_connectors;
119 std::unique_ptr<DrmLease> m_lease;
120 bool m_finished =
false;
122 void wp_drm_lease_v1_destroy(Resource *resource)
override;
123 void wp_drm_lease_v1_destroy_resource(Resource *resource)
override;
Class holding the Wayland server display loop.
DrmOutput * output() const
void send(wl_resource *resource)
DrmLeaseDeviceV1Interface * device() const
DrmLeaseConnectorV1Interface(DrmLeaseDeviceV1Interface *leaseDevice, DrmOutput *output)
bool hasDrmMaster() const
~DrmLeaseDeviceV1Interface()
void setDrmMaster(bool hasDrmMaster)
DrmLeaseDeviceV1Interface(Display *display, DrmGpu *gpu)
void addLease(DrmLeaseV1Interface *lease)
void offerConnector(DrmLeaseConnectorV1Interface *connector)
void addLeaseRequest(DrmLeaseRequestV1Interface *leaseRequest)
void removeLeaseRequest(DrmLeaseRequestV1Interface *leaseRequest)
void removeOutput(DrmAbstractOutput *output)
void removeLease(DrmLeaseV1Interface *lease)
void addOutput(DrmAbstractOutput *output)
QList< DrmLeaseConnectorV1Interface * > m_connectors
void wp_drm_lease_request_v1_request_connector(Resource *resource, struct ::wl_resource *connector) override
~DrmLeaseRequestV1Interface()
QList< DrmLeaseConnectorV1Interface * > connectors() const
DrmLeaseRequestV1Interface(DrmLeaseDeviceV1Interface *device, wl_resource *resource)
void wp_drm_lease_request_v1_destroy_resource(Resource *resource) override
void wp_drm_lease_request_v1_submit(Resource *resource, uint32_t id) override
DrmLeaseDeviceV1Interface *const m_device
DrmLeaseV1Interface(DrmLeaseDeviceV1Interface *device, const QList< DrmLeaseConnectorV1Interface * > &connectors, wl_resource *resource)
void grant(std::unique_ptr< DrmLease > &&lease)
QList< DrmLeaseConnectorV1Interface * > connectors() const