v0.1.0 1a6c6c9

drmlease_generated.go RawHistoryFolder

1// Code generated by wlbgen; DO NOT EDIT.
2
3// Upstream protocol copyright and license:
4// Copyright © 2018 NXP
5// Copyright © 2019 Status Research & Development GmbH.
6// Copyright © 2021 Xaver Hugl
7//
8// Permission is hereby granted, free of charge, to any person obtaining a
9// copy of this software and associated documentation files (the "Software"),
10// to deal in the Software without restriction, including without limitation
11// the rights to use, copy, modify, merge, publish, distribute, sublicense,
12// and/or sell copies of the Software, and to permit persons to whom the
13// Software is furnished to do so, subject to the following conditions:
14//
15// The above copyright notice and this permission notice (including the next
16// paragraph) shall be included in all copies or substantial portions of the
17// Software.
18//
19// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
22// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
25// DEALINGS IN THE SOFTWARE.
26
27package drmlease
28
29import (
30	"fmt"
31	"github.com/bnema/purego-libwayland/server"
32	"runtime"
33)
34
35var WpDrmLeaseDeviceV1Interface *server.Interface
36var WpDrmLeaseConnectorV1Interface *server.Interface
37var WpDrmLeaseRequestV1Interface *server.Interface
38var WpDrmLeaseV1Interface *server.Interface
39
40func init() {
41	WpDrmLeaseDeviceV1Interface = &server.Interface{Name: "wp_drm_lease_device_v1", Version: 1}
42	WpDrmLeaseConnectorV1Interface = &server.Interface{Name: "wp_drm_lease_connector_v1", Version: 1}
43	WpDrmLeaseRequestV1Interface = &server.Interface{Name: "wp_drm_lease_request_v1", Version: 1}
44	WpDrmLeaseV1Interface = &server.Interface{Name: "wp_drm_lease_v1", Version: 1}
45	WpDrmLeaseDeviceV1Interface.Requests = []server.Message{
46		{Name: "create_lease_request", Signature: "n", Types: []*server.Interface{WpDrmLeaseRequestV1Interface}},
47		{Name: "release", Signature: "", Types: []*server.Interface{}},
48	}
49	WpDrmLeaseDeviceV1Interface.Events = []server.Message{
50		{Name: "drm_fd", Signature: "h", Types: []*server.Interface{nil}},
51		{Name: "connector", Signature: "n", Types: []*server.Interface{WpDrmLeaseConnectorV1Interface}},
52		{Name: "done", Signature: "", Types: []*server.Interface{}},
53		{Name: "released", Signature: "", Types: []*server.Interface{}},
54	}
55	WpDrmLeaseConnectorV1Interface.Requests = []server.Message{
56		{Name: "destroy", Signature: "", Types: []*server.Interface{}},
57	}
58	WpDrmLeaseConnectorV1Interface.Events = []server.Message{
59		{Name: "name", Signature: "s", Types: []*server.Interface{nil}},
60		{Name: "description", Signature: "s", Types: []*server.Interface{nil}},
61		{Name: "connector_id", Signature: "u", Types: []*server.Interface{nil}},
62		{Name: "done", Signature: "", Types: []*server.Interface{}},
63		{Name: "withdrawn", Signature: "", Types: []*server.Interface{}},
64	}
65	WpDrmLeaseRequestV1Interface.Requests = []server.Message{
66		{Name: "request_connector", Signature: "o", Types: []*server.Interface{WpDrmLeaseConnectorV1Interface}},
67		{Name: "submit", Signature: "n", Types: []*server.Interface{WpDrmLeaseV1Interface}},
68	}
69	WpDrmLeaseRequestV1Interface.Events = []server.Message{}
70	WpDrmLeaseV1Interface.Requests = []server.Message{
71		{Name: "destroy", Signature: "", Types: []*server.Interface{}},
72	}
73	WpDrmLeaseV1Interface.Events = []server.Message{
74		{Name: "lease_fd", Signature: "h", Types: []*server.Interface{nil}},
75		{Name: "finished", Signature: "", Types: []*server.Interface{}},
76	}
77	if err := server.NewInterfaces(WpDrmLeaseDeviceV1Interface, WpDrmLeaseConnectorV1Interface, WpDrmLeaseRequestV1Interface, WpDrmLeaseV1Interface); err != nil {
78		panic(err)
79	}
80}
81
82// WpDrmLeaseDeviceV1 lease device.
83type WpDrmLeaseDeviceV1 struct{ *server.Resource }
84
85func WrapWpDrmLeaseDeviceV1(r *server.Resource) *WpDrmLeaseDeviceV1 {
86	if r == nil {
87		return nil
88	}
89	return &WpDrmLeaseDeviceV1{r}
90}
91
92const WpDrmLeaseDeviceV1RequestCreateLeaseRequest uint32 = 0
93const WpDrmLeaseDeviceV1RequestRelease uint32 = 1
94const WpDrmLeaseDeviceV1EventDrmFd uint32 = 0
95const WpDrmLeaseDeviceV1EventConnector uint32 = 1
96const WpDrmLeaseDeviceV1EventDone uint32 = 2
97const WpDrmLeaseDeviceV1EventReleased uint32 = 3
98
99// WpDrmLeaseDeviceV1Handler handles wp_drm_lease_device_v1 requests.
100type WpDrmLeaseDeviceV1Handler interface {
101	CreateLeaseRequest(self *WpDrmLeaseDeviceV1, id uint32)
102	Release(self *WpDrmLeaseDeviceV1)
103}
104
105func NewWpDrmLeaseDeviceV1(c server.Client, version int32, id uint32, h WpDrmLeaseDeviceV1Handler) (*WpDrmLeaseDeviceV1, error) {
106	if h == nil {
107		return nil, fmt.Errorf("purego-libwayland: nil handler for wp_drm_lease_device_v1")
108	}
109	var self *WpDrmLeaseDeviceV1
110	r, err := c.CreateResource(WpDrmLeaseDeviceV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
111		switch opcode {
112		case 0:
113			h.CreateLeaseRequest(self, args[0].NewID())
114		case 1:
115			h.Release(self)
116		}
117	})
118	if err != nil {
119		return nil, err
120	}
121	self = WrapWpDrmLeaseDeviceV1(r)
122	r.Data = self
123	return self, nil
124}
125
126// SendDrmFd open a non-master fd for this DRM node.
127func (self *WpDrmLeaseDeviceV1) SendDrmFd(fd int) {
128	self.PostEvent(WpDrmLeaseDeviceV1EventDrmFd, server.Fd(fd))
129}
130
131// SendConnector advertise connectors available for leases.
132func (self *WpDrmLeaseDeviceV1) SendConnector(id *WpDrmLeaseConnectorV1) {
133	self.PostEvent(WpDrmLeaseDeviceV1EventConnector, server.NewID(resourceOf(id)))
134}
135
136// SendDone signals grouping of connectors.
137func (self *WpDrmLeaseDeviceV1) SendDone() {
138	self.PostEvent(WpDrmLeaseDeviceV1EventDone)
139}
140
141// SendReleased the compositor has finished using the device.
142func (self *WpDrmLeaseDeviceV1) SendReleased() {
143	self.PostEvent(WpDrmLeaseDeviceV1EventReleased)
144}
145func NewWpDrmLeaseDeviceV1Global(d *server.Display, version int32, bind server.BindFunc) error {
146	return d.CreateGlobal(WpDrmLeaseDeviceV1Interface, version, bind)
147}
148
149// WpDrmLeaseConnectorV1 a leasable DRM connector.
150type WpDrmLeaseConnectorV1 struct{ *server.Resource }
151
152func WrapWpDrmLeaseConnectorV1(r *server.Resource) *WpDrmLeaseConnectorV1 {
153	if r == nil {
154		return nil
155	}
156	return &WpDrmLeaseConnectorV1{r}
157}
158
159const WpDrmLeaseConnectorV1RequestDestroy uint32 = 0
160const WpDrmLeaseConnectorV1EventName uint32 = 0
161const WpDrmLeaseConnectorV1EventDescription uint32 = 1
162const WpDrmLeaseConnectorV1EventConnectorId uint32 = 2
163const WpDrmLeaseConnectorV1EventDone uint32 = 3
164const WpDrmLeaseConnectorV1EventWithdrawn uint32 = 4
165
166// WpDrmLeaseConnectorV1Handler handles wp_drm_lease_connector_v1 requests.
167type WpDrmLeaseConnectorV1Handler interface {
168	Destroy(self *WpDrmLeaseConnectorV1)
169}
170
171func NewWpDrmLeaseConnectorV1(c server.Client, version int32, id uint32, h WpDrmLeaseConnectorV1Handler) (*WpDrmLeaseConnectorV1, error) {
172	if h == nil {
173		return nil, fmt.Errorf("purego-libwayland: nil handler for wp_drm_lease_connector_v1")
174	}
175	var self *WpDrmLeaseConnectorV1
176	r, err := c.CreateResource(WpDrmLeaseConnectorV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
177		switch opcode {
178		case 0:
179			h.Destroy(self)
180			self.Destroy()
181		}
182	})
183	if err != nil {
184		return nil, err
185	}
186	self = WrapWpDrmLeaseConnectorV1(r)
187	r.Data = self
188	return self, nil
189}
190
191// SendName name.
192func (self *WpDrmLeaseConnectorV1) SendName(name string) {
193	var p runtime.Pinner
194	defer p.Unpin()
195	self.PostEvent(WpDrmLeaseConnectorV1EventName, server.String(&p, name, false))
196}
197
198// SendDescription description.
199func (self *WpDrmLeaseConnectorV1) SendDescription(description string) {
200	var p runtime.Pinner
201	defer p.Unpin()
202	self.PostEvent(WpDrmLeaseConnectorV1EventDescription, server.String(&p, description, false))
203}
204
205// SendConnectorId connector_id.
206func (self *WpDrmLeaseConnectorV1) SendConnectorId(connectorId uint32) {
207	self.PostEvent(WpDrmLeaseConnectorV1EventConnectorId, server.Uint(connectorId))
208}
209
210// SendDone all properties have been sent.
211func (self *WpDrmLeaseConnectorV1) SendDone() {
212	self.PostEvent(WpDrmLeaseConnectorV1EventDone)
213}
214
215// SendWithdrawn lease offer withdrawn.
216func (self *WpDrmLeaseConnectorV1) SendWithdrawn() {
217	self.PostEvent(WpDrmLeaseConnectorV1EventWithdrawn)
218}
219func NewWpDrmLeaseConnectorV1Global(d *server.Display, version int32, bind server.BindFunc) error {
220	return d.CreateGlobal(WpDrmLeaseConnectorV1Interface, version, bind)
221}
222
223// WpDrmLeaseRequestV1 DRM lease request.
224type WpDrmLeaseRequestV1 struct{ *server.Resource }
225
226func WrapWpDrmLeaseRequestV1(r *server.Resource) *WpDrmLeaseRequestV1 {
227	if r == nil {
228		return nil
229	}
230	return &WpDrmLeaseRequestV1{r}
231}
232
233const WpDrmLeaseRequestV1RequestRequestConnector uint32 = 0
234const WpDrmLeaseRequestV1RequestSubmit uint32 = 1
235
236// WpDrmLeaseRequestV1Error .
237type WpDrmLeaseRequestV1Error uint32
238
239const (
240	WpDrmLeaseRequestV1ErrorWrongDevice        WpDrmLeaseRequestV1Error = 0
241	WpDrmLeaseRequestV1ErrorDuplicateConnector WpDrmLeaseRequestV1Error = 1
242	WpDrmLeaseRequestV1ErrorEmptyLease         WpDrmLeaseRequestV1Error = 2
243)
244
245// WpDrmLeaseRequestV1Handler handles wp_drm_lease_request_v1 requests.
246type WpDrmLeaseRequestV1Handler interface {
247	RequestConnector(self *WpDrmLeaseRequestV1, connector *WpDrmLeaseConnectorV1)
248	Submit(self *WpDrmLeaseRequestV1, id uint32)
249}
250
251func NewWpDrmLeaseRequestV1(c server.Client, version int32, id uint32, h WpDrmLeaseRequestV1Handler) (*WpDrmLeaseRequestV1, error) {
252	if h == nil {
253		return nil, fmt.Errorf("purego-libwayland: nil handler for wp_drm_lease_request_v1")
254	}
255	var self *WpDrmLeaseRequestV1
256	r, err := c.CreateResource(WpDrmLeaseRequestV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
257		switch opcode {
258		case 0:
259			h.RequestConnector(self, WrapWpDrmLeaseConnectorV1(args[0].Resource()))
260		case 1:
261			h.Submit(self, args[0].NewID())
262			self.Destroy()
263		}
264	})
265	if err != nil {
266		return nil, err
267	}
268	self = WrapWpDrmLeaseRequestV1(r)
269	r.Data = self
270	return self, nil
271}
272func NewWpDrmLeaseRequestV1Global(d *server.Display, version int32, bind server.BindFunc) error {
273	return d.CreateGlobal(WpDrmLeaseRequestV1Interface, version, bind)
274}
275
276// WpDrmLeaseV1 a DRM lease.
277type WpDrmLeaseV1 struct{ *server.Resource }
278
279func WrapWpDrmLeaseV1(r *server.Resource) *WpDrmLeaseV1 {
280	if r == nil {
281		return nil
282	}
283	return &WpDrmLeaseV1{r}
284}
285
286const WpDrmLeaseV1RequestDestroy uint32 = 0
287const WpDrmLeaseV1EventLeaseFd uint32 = 0
288const WpDrmLeaseV1EventFinished uint32 = 1
289
290// WpDrmLeaseV1Handler handles wp_drm_lease_v1 requests.
291type WpDrmLeaseV1Handler interface {
292	Destroy(self *WpDrmLeaseV1)
293}
294
295func NewWpDrmLeaseV1(c server.Client, version int32, id uint32, h WpDrmLeaseV1Handler) (*WpDrmLeaseV1, error) {
296	if h == nil {
297		return nil, fmt.Errorf("purego-libwayland: nil handler for wp_drm_lease_v1")
298	}
299	var self *WpDrmLeaseV1
300	r, err := c.CreateResource(WpDrmLeaseV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
301		switch opcode {
302		case 0:
303			h.Destroy(self)
304			self.Destroy()
305		}
306	})
307	if err != nil {
308		return nil, err
309	}
310	self = WrapWpDrmLeaseV1(r)
311	r.Data = self
312	return self, nil
313}
314
315// SendLeaseFd shares the DRM file descriptor.
316func (self *WpDrmLeaseV1) SendLeaseFd(leasedFd int) {
317	self.PostEvent(WpDrmLeaseV1EventLeaseFd, server.Fd(leasedFd))
318}
319
320// SendFinished sent when the lease has been revoked.
321func (self *WpDrmLeaseV1) SendFinished() {
322	self.PostEvent(WpDrmLeaseV1EventFinished)
323}
324func NewWpDrmLeaseV1Global(d *server.Display, version int32, bind server.BindFunc) error {
325	return d.CreateGlobal(WpDrmLeaseV1Interface, version, bind)
326}
327func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
328	if v == nil {
329		return nil
330	}
331	return v.GetResource()
332}
333func (self *WpDrmLeaseDeviceV1) GetResource() *server.Resource {
334	if self == nil {
335		return nil
336	}
337	return self.Resource
338}
339func (self *WpDrmLeaseConnectorV1) GetResource() *server.Resource {
340	if self == nil {
341		return nil
342	}
343	return self.Resource
344}
345func (self *WpDrmLeaseRequestV1) GetResource() *server.Resource {
346	if self == nil {
347		return nil
348	}
349	return self.Resource
350}
351func (self *WpDrmLeaseV1) GetResource() *server.Resource {
352	if self == nil {
353		return nil
354	}
355	return self.Resource
356}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 1

↑↓ moveenter openesc close