alien-everywhere/shimming/alienkeyboardservice/protocols/wayland/wl_shm.py

235 lines
6.7 KiB
Python

# This file has been autogenerated by the pywayland scanner
# Copyright © 2008-2011 Kristian Høgsberg
# Copyright © 2010-2011 Intel Corporation
# Copyright © 2012-2013 Collabora, Ltd.
#
# Permission is hereby granted, free of charge, to any person
# obtaining a copy of this software and associated documentation files
# (the "Software"), to deal in the Software without restriction,
# including without limitation the rights to use, copy, modify, merge,
# publish, distribute, sublicense, and/or sell copies of the Software,
# and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice (including the
# next paragraph) shall be included in all copies or substantial
# portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
from __future__ import annotations
import enum
from pywayland.protocol_core import (
Argument,
ArgumentType,
Global,
Interface,
Proxy,
Resource,
)
from .wl_shm_pool import WlShmPool
class WlShm(Interface):
"""Shared memory support
A singleton global object that provides support for shared memory.
Clients can create :class:`~pywayland.protocol.wayland.WlShmPool` objects
using the create_pool request.
On binding the :class:`WlShm` object one or more format events are emitted
to inform clients about the valid pixel formats that can be used for
buffers.
"""
name = "wl_shm"
version = 1
class error(enum.IntEnum):
invalid_format = 0
invalid_stride = 1
invalid_fd = 2
class format(enum.IntEnum):
argb8888 = 0
xrgb8888 = 1
c8 = 0x20203843
rgb332 = 0x38424752
bgr233 = 0x38524742
xrgb4444 = 0x32315258
xbgr4444 = 0x32314258
rgbx4444 = 0x32315852
bgrx4444 = 0x32315842
argb4444 = 0x32315241
abgr4444 = 0x32314241
rgba4444 = 0x32314152
bgra4444 = 0x32314142
xrgb1555 = 0x35315258
xbgr1555 = 0x35314258
rgbx5551 = 0x35315852
bgrx5551 = 0x35315842
argb1555 = 0x35315241
abgr1555 = 0x35314241
rgba5551 = 0x35314152
bgra5551 = 0x35314142
rgb565 = 0x36314752
bgr565 = 0x36314742
rgb888 = 0x34324752
bgr888 = 0x34324742
xbgr8888 = 0x34324258
rgbx8888 = 0x34325852
bgrx8888 = 0x34325842
abgr8888 = 0x34324241
rgba8888 = 0x34324152
bgra8888 = 0x34324142
xrgb2101010 = 0x30335258
xbgr2101010 = 0x30334258
rgbx1010102 = 0x30335852
bgrx1010102 = 0x30335842
argb2101010 = 0x30335241
abgr2101010 = 0x30334241
rgba1010102 = 0x30334152
bgra1010102 = 0x30334142
yuyv = 0x56595559
yvyu = 0x55595659
uyvy = 0x59565955
vyuy = 0x59555956
ayuv = 0x56555941
nv12 = 0x3231564E
nv21 = 0x3132564E
nv16 = 0x3631564E
nv61 = 0x3136564E
yuv410 = 0x39565559
yvu410 = 0x39555659
yuv411 = 0x31315559
yvu411 = 0x31315659
yuv420 = 0x32315559
yvu420 = 0x32315659
yuv422 = 0x36315559
yvu422 = 0x36315659
yuv444 = 0x34325559
yvu444 = 0x34325659
r8 = 0x20203852
r16 = 0x20363152
rg88 = 0x38384752
gr88 = 0x38385247
rg1616 = 0x32334752
gr1616 = 0x32335247
xrgb16161616f = 0x48345258
xbgr16161616f = 0x48344258
argb16161616f = 0x48345241
abgr16161616f = 0x48344241
xyuv8888 = 0x56555958
vuy888 = 0x34325556
vuy101010 = 0x30335556
y210 = 0x30313259
y212 = 0x32313259
y216 = 0x36313259
y410 = 0x30313459
y412 = 0x32313459
y416 = 0x36313459
xvyu2101010 = 0x30335658
xvyu12_16161616 = 0x36335658
xvyu16161616 = 0x38345658
y0l0 = 0x304C3059
x0l0 = 0x304C3058
y0l2 = 0x324C3059
x0l2 = 0x324C3058
yuv420_8bit = 0x38305559
yuv420_10bit = 0x30315559
xrgb8888_a8 = 0x38415258
xbgr8888_a8 = 0x38414258
rgbx8888_a8 = 0x38415852
bgrx8888_a8 = 0x38415842
rgb888_a8 = 0x38413852
bgr888_a8 = 0x38413842
rgb565_a8 = 0x38413552
bgr565_a8 = 0x38413542
nv24 = 0x3432564E
nv42 = 0x3234564E
p210 = 0x30313250
p010 = 0x30313050
p012 = 0x32313050
p016 = 0x36313050
axbxgxrx106106106106 = 0x30314241
nv15 = 0x3531564E
q410 = 0x30313451
q401 = 0x31303451
xrgb16161616 = 0x38345258
xbgr16161616 = 0x38344258
argb16161616 = 0x38345241
abgr16161616 = 0x38344241
class WlShmProxy(Proxy[WlShm]):
interface = WlShm
@WlShm.request(
Argument(ArgumentType.NewId, interface=WlShmPool),
Argument(ArgumentType.FileDescriptor),
Argument(ArgumentType.Int),
)
def create_pool(self, fd: int, size: int) -> Proxy[WlShmPool]:
"""Create a shm pool
Create a new :class:`~pywayland.protocol.wayland.WlShmPool` object.
The pool can be used to create shared memory based buffer objects. The
server will mmap size bytes of the passed file descriptor, to use as
backing memory for the pool.
:param fd:
file descriptor for the pool
:type fd:
`ArgumentType.FileDescriptor`
:param size:
pool size, in bytes
:type size:
`ArgumentType.Int`
:returns:
:class:`~pywayland.protocol.wayland.WlShmPool` -- pool to create
"""
id = self._marshal_constructor(0, WlShmPool, fd, size)
return id
class WlShmResource(Resource):
interface = WlShm
@WlShm.event(
Argument(ArgumentType.Uint),
)
def format(self, format: int) -> None:
"""Pixel format description
Informs the client about a valid pixel format that can be used for
buffers. Known formats include argb8888 and xrgb8888.
:param format:
buffer pixel format
:type format:
`ArgumentType.Uint`
"""
self._post_event(0, format)
class WlShmGlobal(Global):
interface = WlShm
WlShm._gen_c()
WlShm.proxy_class = WlShmProxy
WlShm.resource_class = WlShmResource
WlShm.global_class = WlShmGlobal