1// Code generated by wlbgen; DO NOT EDIT.
2
3// Upstream protocol copyright and license:
4// Copyright © 2015 Giulio camuffo
5// Copyright © 2018 Simon Ser
6//
7// Permission to use, copy, modify, distribute, and sell this
8// software and its documentation for any purpose is hereby granted
9// without fee, provided that the above copyright notice appear in
10// all copies and that both that copyright notice and this permission
11// notice appear in supporting documentation, and that the name of
12// the copyright holders not be used in advertising or publicity
13// pertaining to distribution of the software without specific,
14// written prior permission. The copyright holders make no
15// representations about the suitability of this software for any
16// purpose. It is provided "as is" without express or implied
17// warranty.
18//
19// THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
20// SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
21// FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
22// SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
23// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
24// AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
25// ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
26// THIS SOFTWARE.
27
28package wlrgammacontrol
29
30import (
31 "fmt"
32 wayland "github.com/bnema/go-wayland-bindings/server/wayland"
33 "github.com/bnema/purego-libwayland/server"
34)
35
36var ZwlrGammaControlManagerV1Interface *server.Interface
37var ZwlrGammaControlV1Interface *server.Interface
38
39func init() {
40 ZwlrGammaControlManagerV1Interface = &server.Interface{Name: "zwlr_gamma_control_manager_v1", Version: 1}
41 ZwlrGammaControlV1Interface = &server.Interface{Name: "zwlr_gamma_control_v1", Version: 1}
42 ZwlrGammaControlManagerV1Interface.Requests = []server.Message{
43 {Name: "get_gamma_control", Signature: "no", Types: []*server.Interface{ZwlrGammaControlV1Interface, wayland.OutputInterface}},
44 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
45 }
46 ZwlrGammaControlManagerV1Interface.Events = []server.Message{}
47 ZwlrGammaControlV1Interface.Requests = []server.Message{
48 {Name: "set_gamma", Signature: "h", Types: []*server.Interface{nil}},
49 {Name: "destroy", Signature: "", Types: []*server.Interface{}},
50 }
51 ZwlrGammaControlV1Interface.Events = []server.Message{
52 {Name: "gamma_size", Signature: "u", Types: []*server.Interface{nil}},
53 {Name: "failed", Signature: "", Types: []*server.Interface{}},
54 }
55 if err := server.NewInterfaces(ZwlrGammaControlManagerV1Interface, ZwlrGammaControlV1Interface); err != nil {
56 panic(err)
57 }
58}
59
60// ZwlrGammaControlManagerV1 manager to create per-output gamma controls.
61type ZwlrGammaControlManagerV1 struct{ *server.Resource }
62
63func WrapZwlrGammaControlManagerV1(r *server.Resource) *ZwlrGammaControlManagerV1 {
64 if r == nil {
65 return nil
66 }
67 return &ZwlrGammaControlManagerV1{r}
68}
69
70const ZwlrGammaControlManagerV1RequestGetGammaControl uint32 = 0
71const ZwlrGammaControlManagerV1RequestDestroy uint32 = 1
72
73// ZwlrGammaControlManagerV1Handler handles zwlr_gamma_control_manager_v1 requests.
74type ZwlrGammaControlManagerV1Handler interface {
75 GetGammaControl(self *ZwlrGammaControlManagerV1, id uint32, output *wayland.Output)
76 Destroy(self *ZwlrGammaControlManagerV1)
77}
78
79func NewZwlrGammaControlManagerV1(c server.Client, version int32, id uint32, h ZwlrGammaControlManagerV1Handler) (*ZwlrGammaControlManagerV1, error) {
80 if h == nil {
81 return nil, fmt.Errorf("purego-libwayland: nil handler for zwlr_gamma_control_manager_v1")
82 }
83 var self *ZwlrGammaControlManagerV1
84 r, err := c.CreateResource(ZwlrGammaControlManagerV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
85 switch opcode {
86 case 0:
87 h.GetGammaControl(self, args[0].NewID(), wayland.WrapOutput(args[1].Resource()))
88 case 1:
89 h.Destroy(self)
90 self.Destroy()
91 }
92 })
93 if err != nil {
94 return nil, err
95 }
96 self = WrapZwlrGammaControlManagerV1(r)
97 r.Data = self
98 return self, nil
99}
100func NewZwlrGammaControlManagerV1Global(d *server.Display, version int32, bind server.BindFunc) error {
101 return d.CreateGlobal(ZwlrGammaControlManagerV1Interface, version, bind)
102}
103
104// ZwlrGammaControlV1 adjust gamma tables for an output.
105type ZwlrGammaControlV1 struct{ *server.Resource }
106
107func WrapZwlrGammaControlV1(r *server.Resource) *ZwlrGammaControlV1 {
108 if r == nil {
109 return nil
110 }
111 return &ZwlrGammaControlV1{r}
112}
113
114const ZwlrGammaControlV1RequestSetGamma uint32 = 0
115const ZwlrGammaControlV1RequestDestroy uint32 = 1
116const ZwlrGammaControlV1EventGammaSize uint32 = 0
117const ZwlrGammaControlV1EventFailed uint32 = 1
118
119// ZwlrGammaControlV1Error .
120type ZwlrGammaControlV1Error uint32
121
122const (
123 ZwlrGammaControlV1ErrorInvalidGamma ZwlrGammaControlV1Error = 1
124)
125
126// ZwlrGammaControlV1Handler handles zwlr_gamma_control_v1 requests.
127type ZwlrGammaControlV1Handler interface {
128 SetGamma(self *ZwlrGammaControlV1, fd int)
129 Destroy(self *ZwlrGammaControlV1)
130}
131
132func NewZwlrGammaControlV1(c server.Client, version int32, id uint32, h ZwlrGammaControlV1Handler) (*ZwlrGammaControlV1, error) {
133 if h == nil {
134 return nil, fmt.Errorf("purego-libwayland: nil handler for zwlr_gamma_control_v1")
135 }
136 var self *ZwlrGammaControlV1
137 r, err := c.CreateResource(ZwlrGammaControlV1Interface, version, id, func(_ *server.Resource, opcode uint32, args []server.Arg) {
138 switch opcode {
139 case 0:
140 h.SetGamma(self, args[0].Fd())
141 case 1:
142 h.Destroy(self)
143 self.Destroy()
144 }
145 })
146 if err != nil {
147 return nil, err
148 }
149 self = WrapZwlrGammaControlV1(r)
150 r.Data = self
151 return self, nil
152}
153
154// SendGammaSize size of gamma ramps.
155func (self *ZwlrGammaControlV1) SendGammaSize(size uint32) {
156 self.PostEvent(ZwlrGammaControlV1EventGammaSize, server.Uint(size))
157}
158
159// SendFailed object no longer valid.
160func (self *ZwlrGammaControlV1) SendFailed() {
161 self.PostEvent(ZwlrGammaControlV1EventFailed)
162}
163func NewZwlrGammaControlV1Global(d *server.Display, version int32, bind server.BindFunc) error {
164 return d.CreateGlobal(ZwlrGammaControlV1Interface, version, bind)
165}
166func resourceOf(v interface{ GetResource() *server.Resource }) *server.Resource {
167 if v == nil {
168 return nil
169 }
170 return v.GetResource()
171}
172func (self *ZwlrGammaControlManagerV1) GetResource() *server.Resource {
173 if self == nil {
174 return nil
175 }
176 return self.Resource
177}
178func (self *ZwlrGammaControlV1) GetResource() *server.Resource {
179 if self == nil {
180 return nil
181 }
182 return self.Resource
183}