1// Code generated by wlgen; DO NOT EDIT.
2package committiming
3
4import (
5 "fmt"
6 wayland "github.com/bnema/purego-libwayland/protocol/wayland"
7 "github.com/bnema/purego-libwayland/server"
8)
9
10var WpCommitTimingManagerV1Interface *server.Interface
11var WpCommitTimerV1Interface *server.Interface
12
13func init() {
14 WpCommitTimingManagerV1Interface = &server.Interface{Name: "wp_commit_timing_manager_v1", Version: 1}
15 WpCommitTimerV1Interface = &server.Interface{Name: "wp_commit_timer_v1", Version: 1}
16 WpCommitTimingManagerV1Interface.Requests = []server.Message{
17 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
18 {Name: "get_timer", Signature: "no", Types: []*server.Interface{WpCommitTimerV1Interface, wayland.SurfaceInterface}},
19 }
20 WpCommitTimingManagerV1Interface.Events = []server.Message{}
21 WpCommitTimerV1Interface.Requests = []server.Message{
22 {Name: "set_timestamp", Signature: "uuu", Types: []*server.Interface{nil, nil, nil}},
23 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
24 }
25 WpCommitTimerV1Interface.Events = []server.Message{}
26 if err := server.NewInterfaces(WpCommitTimingManagerV1Interface, WpCommitTimerV1Interface); err != nil {
27 panic(err)
28 }
29}
30
31// WpCommitTimingManagerV1 commit timing.
32type WpCommitTimingManagerV1 struct{ *server.Resource }
33
34func WrapWpCommitTimingManagerV1(r *server.Resource) *WpCommitTimingManagerV1 {
35 if r == nil {
36 return nil
37 }
38 return &WpCommitTimingManagerV1{r}
39}
40
41const WpCommitTimingManagerV1RequestDestroy uint32 = 0
42const WpCommitTimingManagerV1RequestGetTimer uint32 = 1
43
44// WpCommitTimingManagerV1Error .
45type WpCommitTimingManagerV1Error uint32
46
47const (
48 WpCommitTimingManagerV1ErrorCommitTimerExists WpCommitTimingManagerV1Error = 0
49)
50
51// WpCommitTimingManagerV1Handler handles wp_commit_timing_manager_v1 requests.
52type WpCommitTimingManagerV1Handler interface {
53 Destroy(self *WpCommitTimingManagerV1)
54 GetTimer(self *WpCommitTimingManagerV1, id uint32, surface *wayland.Surface)
55}
56
57func NewWpCommitTimingManagerV1(c server.Client, version int32, id uint32, h WpCommitTimingManagerV1Handler) (*WpCommitTimingManagerV1, error) {
58 if h == nil {
59 return nil, fmt.Errorf("purego-libwayland: nil handler for wp_commit_timing_manager_v1")
60 }
61 var self *WpCommitTimingManagerV1
62 r, err := c.CreateResource(WpCommitTimingManagerV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
63 switch opcode {
64 case 0:
65 h.Destroy(self)
66 self.Destroy()
67 case 1:
68 h.GetTimer(self, args[0].NewID(), wayland.WrapSurface(args[1].Resource()))
69 }
70 })
71 if err != nil {
72 return nil, err
73 }
74 self = WrapWpCommitTimingManagerV1(r)
75 r.Data = self
76 return self, nil
77}
78func NewWpCommitTimingManagerV1Global(d *server.Display, version int32, bind server.BindFunc) error {
79 return d.CreateGlobal(WpCommitTimingManagerV1Interface, version, bind)
80}
81
82// WpCommitTimerV1 Surface commit timer.
83type WpCommitTimerV1 struct{ *server.Resource }
84
85func WrapWpCommitTimerV1(r *server.Resource) *WpCommitTimerV1 {
86 if r == nil {
87 return nil
88 }
89 return &WpCommitTimerV1{r}
90}
91
92const WpCommitTimerV1RequestSetTimestamp uint32 = 0
93const WpCommitTimerV1RequestDestroy uint32 = 1
94
95// WpCommitTimerV1Error .
96type WpCommitTimerV1Error uint32
97
98const (
99 WpCommitTimerV1ErrorInvalidTimestamp WpCommitTimerV1Error = 0
100 WpCommitTimerV1ErrorTimestampExists WpCommitTimerV1Error = 1
101 WpCommitTimerV1ErrorSurfaceDestroyed WpCommitTimerV1Error = 2
102)
103
104// WpCommitTimerV1Handler handles wp_commit_timer_v1 requests.
105type WpCommitTimerV1Handler interface {
106 SetTimestamp(self *WpCommitTimerV1, tvSecHi uint32, tvSecLo uint32, tvNsec uint32)
107 Destroy(self *WpCommitTimerV1)
108}
109
110func NewWpCommitTimerV1(c server.Client, version int32, id uint32, h WpCommitTimerV1Handler) (*WpCommitTimerV1, error) {
111 if h == nil {
112 return nil, fmt.Errorf("purego-libwayland: nil handler for wp_commit_timer_v1")
113 }
114 var self *WpCommitTimerV1
115 r, err := c.CreateResource(WpCommitTimerV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
116 switch opcode {
117 case 0:
118 h.SetTimestamp(self, args[0].Uint(), args[1].Uint(), args[2].Uint())
119 case 1:
120 h.Destroy(self)
121 self.Destroy()
122 }
123 })
124 if err != nil {
125 return nil, err
126 }
127 self = WrapWpCommitTimerV1(r)
128 r.Data = self
129 return self, nil
130}
131func NewWpCommitTimerV1Global(d *server.Display, version int32, bind server.BindFunc) error {
132 return d.CreateGlobal(WpCommitTimerV1Interface, version, bind)
133}
134func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
135 if v == nil {
136 return nil
137 }
138 return v.GetResource()
139}
140func (self *WpCommitTimingManagerV1) GetResource() *server.Resource {
141 if self == nil {
142 return nil
143 }
144 return self.Resource
145}
146func (self *WpCommitTimerV1) GetResource() *server.Resource {
147 if self == nil {
148 return nil
149 }
150 return self.Resource
151}