GCC Code Coverage Report


Directory: ./
File: src/client/drm_lease_v1_p.h
Date: 2024-01-22 17:25:27
Exec Total Coverage
Lines: 2 4 50.0%
Branches: 0 0 -%

Line Branch Exec Source
1 /*
2 SPDX-FileCopyrightText: 2021 Roman Gilg <subdiff@gmail.com>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only
5 */
6 #pragma once
7
8 #include "drm_lease_v1.h"
9
10 #include "wayland_pointer_p.h"
11
12 #include <QObject>
13
14 #include <wayland-drm-lease-v1-client-protocol.h>
15
16 namespace Wrapland::Client
17 {
18
19 class Q_DECL_HIDDEN drm_lease_device_v1::Private : public QObject
20 {
21 Q_OBJECT
22 public:
23 Private(drm_lease_device_v1* q);
24 ~Private();
25
26 void setup(wp_drm_lease_device_v1* deviced);
27
28 void release();
29 bool isValid();
30 drm_lease_v1* create_lease(std::vector<drm_lease_connector_v1*> const& connectors);
31
32 operator wp_drm_lease_device_v1*()
33 {
34 return device_ptr;
35 }
36 operator wp_drm_lease_device_v1*() const
37 {
38 return device_ptr;
39 }
40
41 int drm_fd{0};
42
43 WaylandPointer<wp_drm_lease_device_v1, wp_drm_lease_device_v1_destroy> device_ptr;
44 EventQueue* queue{nullptr};
45 drm_lease_device_v1* q_ptr;
46
47 private:
48 static void drm_fd_callback(void* data, wp_drm_lease_device_v1* wp_drm_lease_device_v1, int fd);
49 static void connector_callback(void* data,
50 wp_drm_lease_device_v1* wp_drm_lease_device_v1,
51 wp_drm_lease_connector_v1* wp_drm_lease_connector_v1);
52 static void done_callback(void* data, wp_drm_lease_device_v1* wp_drm_lease_device_v1);
53 static void released_callback(void* data, wp_drm_lease_device_v1* wp_drm_lease_device_v1);
54
55 static const wp_drm_lease_device_v1_listener s_listener;
56 };
57
58 class Q_DECL_HIDDEN drm_lease_connector_v1::Private
59 {
60 public:
61 Private(drm_lease_connector_v1* q);
62 7 ~Private() = default;
63
64 void setup(wp_drm_lease_connector_v1* connector);
65
66 bool isValid() const;
67
68 drm_lease_connector_v1_data data;
69
70 WaylandPointer<wp_drm_lease_connector_v1, wp_drm_lease_connector_v1_destroy> connector_ptr;
71
72 EventQueue* queue{nullptr};
73
74 private:
75 static void name_callback(void* data,
76 wp_drm_lease_connector_v1* wp_drm_lease_connector_v1,
77 char const* text);
78 static void description_callback(void* data,
79 wp_drm_lease_connector_v1* wp_drm_lease_connector_v1,
80 char const* text);
81 static void connector_id_callback(void* data,
82 wp_drm_lease_connector_v1* wp_drm_lease_connector_v1,
83 uint32_t id);
84 static void done_callback(void* data, wp_drm_lease_connector_v1* wp_drm_lease_connector_v1);
85 static void withdrawn_callback(void* data,
86 wp_drm_lease_connector_v1* wp_drm_lease_connector_v1);
87
88 drm_lease_connector_v1* q_ptr;
89
90 static const wp_drm_lease_connector_v1_listener s_listener;
91 };
92
93 class Q_DECL_HIDDEN drm_lease_v1::Private
94 {
95 public:
96 Private(drm_lease_v1* q);
97 2 ~Private() = default;
98
99 void setup(wp_drm_lease_v1* lease);
100
101 bool isValid() const;
102
103 void enable();
104 void disable();
105 void reset();
106
107 WaylandPointer<wp_drm_lease_v1, wp_drm_lease_v1_destroy> lease_ptr;
108
109 EventQueue* queue{nullptr};
110
111 private:
112 static void lease_fd_callback(void* data, wp_drm_lease_v1* wp_drm_lease_v1, int leased_fd);
113 static void finished_callback(void* data, wp_drm_lease_v1* wp_drm_lease_v1);
114
115 drm_lease_v1* q_ptr;
116
117 static const wp_drm_lease_v1_listener s_listener;
118 };
119
120 }
121