blob: 1f420bb79bd13151af074b594f6e305b64f82df4 [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file was automatically generated with:
// ../../ui/gfx/x/gen_xproto.py \
// ../../third_party/xcbproto/src \
// gen/ui/gfx/x \
// bigreq \
// composite \
// damage \
// dpms \
// dri2 \
// dri3 \
// ge \
// glx \
// present \
// randr \
// record \
// render \
// res \
// screensaver \
// shape \
// shm \
// sync \
// xc_misc \
// xevie \
// xf86dri \
// xf86vidmode \
// xfixes \
// xinerama \
// xinput \
// xkb \
// xprint \
// xproto \
// xselinux \
// xtest \
// xv \
// xvmc
#ifndef UI_GFX_X_GENERATED_PROTOS_RANDR_H_
#define UI_GFX_X_GENERATED_PROTOS_RANDR_H_
#include <array>
#include <cstddef>
#include <cstdint>
#include <cstring>
#include <vector>
#include "base/component_export.h"
#include "base/files/scoped_file.h"
#include "base/memory/ref_counted_memory.h"
#include "base/memory/scoped_refptr.h"
#include "render.h"
#include "third_party/abseil-cpp/absl/types/optional.h"
#include "ui/gfx/x/error.h"
#include "ui/gfx/x/ref_counted_fd.h"
#include "xproto.h"
namespace x11 {
class Connection;
template <typename Reply>
struct Response;
template <typename Reply>
class Future;
class COMPONENT_EXPORT(X11) RandR {
public:
static constexpr unsigned major_version = 1;
static constexpr unsigned minor_version = 6;
RandR(Connection* connection, const x11::QueryExtensionReply& info);
uint8_t present() const { return info_.present; }
uint8_t major_opcode() const { return info_.major_opcode; }
uint8_t first_event() const { return info_.first_event; }
uint8_t first_error() const { return info_.first_error; }
Connection* connection() const { return connection_; }
enum class Mode : uint32_t {};
enum class Crtc : uint32_t {};
enum class Output : uint32_t {};
enum class Provider : uint32_t {};
enum class Lease : uint32_t {};
enum class Rotation : int {
Rotate_0 = 1 << 0,
Rotate_90 = 1 << 1,
Rotate_180 = 1 << 2,
Rotate_270 = 1 << 3,
Reflect_X = 1 << 4,
Reflect_Y = 1 << 5,
};
enum class SetConfig : int {
Success = 0,
InvalidConfigTime = 1,
InvalidTime = 2,
Failed = 3,
};
enum class NotifyMask : int {
ScreenChange = 1 << 0,
CrtcChange = 1 << 1,
OutputChange = 1 << 2,
OutputProperty = 1 << 3,
ProviderChange = 1 << 4,
ProviderProperty = 1 << 5,
ResourceChange = 1 << 6,
Lease = 1 << 7,
};
enum class ModeFlag : int {
HsyncPositive = 1 << 0,
HsyncNegative = 1 << 1,
VsyncPositive = 1 << 2,
VsyncNegative = 1 << 3,
Interlace = 1 << 4,
DoubleScan = 1 << 5,
Csync = 1 << 6,
CsyncPositive = 1 << 7,
CsyncNegative = 1 << 8,
HskewPresent = 1 << 9,
Bcast = 1 << 10,
PixelMultiplex = 1 << 11,
DoubleClock = 1 << 12,
HalveClock = 1 << 13,
};
enum class RandRConnection : int {
Connected = 0,
Disconnected = 1,
Unknown = 2,
};
enum class Transform : int {
Unit = 1 << 0,
ScaleUp = 1 << 1,
ScaleDown = 1 << 2,
Projective = 1 << 3,
};
enum class ProviderCapability : int {
SourceOutput = 1 << 0,
SinkOutput = 1 << 1,
SourceOffload = 1 << 2,
SinkOffload = 1 << 3,
};
enum class Notify : int {
CrtcChange = 0,
OutputChange = 1,
OutputProperty = 2,
ProviderChange = 3,
ProviderProperty = 4,
ResourceChange = 5,
Lease = 6,
};
struct BadOutputError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct BadCrtcError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct BadModeError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct BadProviderError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct ScreenSize {
uint16_t width{};
uint16_t height{};
uint16_t mwidth{};
uint16_t mheight{};
};
struct RefreshRates {
std::vector<uint16_t> rates{};
};
struct ModeInfo {
uint32_t id{};
uint16_t width{};
uint16_t height{};
uint32_t dot_clock{};
uint16_t hsync_start{};
uint16_t hsync_end{};
uint16_t htotal{};
uint16_t hskew{};
uint16_t vsync_start{};
uint16_t vsync_end{};
uint16_t vtotal{};
uint16_t name_len{};
ModeFlag mode_flags{};
};
struct ScreenChangeNotifyEvent {
static constexpr int type_id = 11;
static constexpr uint8_t opcode = 0;
bool send_event{};
Rotation rotation{};
uint16_t sequence{};
Time timestamp{};
Time config_timestamp{};
Window root{};
Window request_window{};
uint16_t sizeID{};
Render::SubPixel subpixel_order{};
uint16_t width{};
uint16_t height{};
uint16_t mwidth{};
uint16_t mheight{};
x11::Window* GetWindow() {
return reinterpret_cast<x11::Window*>(&request_window);
}
};
struct MonitorInfo {
Atom name{};
uint8_t primary{};
uint8_t automatic{};
int16_t x{};
int16_t y{};
uint16_t width{};
uint16_t height{};
uint32_t width_in_millimeters{};
uint32_t height_in_millimeters{};
std::vector<Output> outputs{};
};
struct NotifyEvent {
static constexpr int type_id = 12;
static constexpr uint8_t opcode = 1;
bool send_event{};
uint16_t sequence{};
struct Cc {
Time timestamp{};
Window window{};
Crtc crtc{};
Mode mode{};
Rotation rotation{};
int16_t x{};
int16_t y{};
uint16_t width{};
uint16_t height{};
};
struct Oc {
Time timestamp{};
Time config_timestamp{};
Window window{};
Output output{};
Crtc crtc{};
Mode mode{};
Rotation rotation{};
RandRConnection connection{};
Render::SubPixel subpixel_order{};
};
struct Op {
Window window{};
Output output{};
Atom atom{};
Time timestamp{};
Property status{};
};
struct Pc {
Time timestamp{};
Window window{};
Provider provider{};
};
struct Pp {
Window window{};
Provider provider{};
Atom atom{};
Time timestamp{};
uint8_t state{};
};
struct Rc {
Time timestamp{};
Window window{};
};
struct Lc {
Time timestamp{};
Window window{};
Lease lease{};
uint8_t created{};
};
absl::optional<Cc> cc{};
absl::optional<Oc> oc{};
absl::optional<Op> op{};
absl::optional<Pc> pc{};
absl::optional<Pp> pp{};
absl::optional<Rc> rc{};
absl::optional<Lc> lc{};
x11::Window* GetWindow() { return nullptr; }
};
struct QueryVersionRequest {
uint32_t major_version{};
uint32_t minor_version{};
};
struct QueryVersionReply {
uint16_t sequence{};
uint32_t major_version{};
uint32_t minor_version{};
};
using QueryVersionResponse = Response<QueryVersionReply>;
Future<QueryVersionReply> QueryVersion(const QueryVersionRequest& request);
Future<QueryVersionReply> QueryVersion(const uint32_t& major_version = {},
const uint32_t& minor_version = {});
struct SetScreenConfigRequest {
Window window{};
Time timestamp{};
Time config_timestamp{};
uint16_t sizeID{};
Rotation rotation{};
uint16_t rate{};
};
struct SetScreenConfigReply {
SetConfig status{};
uint16_t sequence{};
Time new_timestamp{};
Time config_timestamp{};
Window root{};
Render::SubPixel subpixel_order{};
};
using SetScreenConfigResponse = Response<SetScreenConfigReply>;
Future<SetScreenConfigReply> SetScreenConfig(
const SetScreenConfigRequest& request);
Future<SetScreenConfigReply> SetScreenConfig(
const Window& window = {},
const Time& timestamp = {},
const Time& config_timestamp = {},
const uint16_t& sizeID = {},
const Rotation& rotation = {},
const uint16_t& rate = {});
struct SelectInputRequest {
Window window{};
NotifyMask enable{};
};
using SelectInputResponse = Response<void>;
Future<void> SelectInput(const SelectInputRequest& request);
Future<void> SelectInput(const Window& window = {},
const NotifyMask& enable = {});
struct GetScreenInfoRequest {
Window window{};
};
struct GetScreenInfoReply {
Rotation rotations{};
uint16_t sequence{};
Window root{};
Time timestamp{};
Time config_timestamp{};
uint16_t sizeID{};
Rotation rotation{};
uint16_t rate{};
uint16_t nInfo{};
std::vector<ScreenSize> sizes{};
std::vector<RefreshRates> rates{};
};
using GetScreenInfoResponse = Response<GetScreenInfoReply>;
Future<GetScreenInfoReply> GetScreenInfo(const GetScreenInfoRequest& request);
Future<GetScreenInfoReply> GetScreenInfo(const Window& window = {});
struct GetScreenSizeRangeRequest {
Window window{};
};
struct GetScreenSizeRangeReply {
uint16_t sequence{};
uint16_t min_width{};
uint16_t min_height{};
uint16_t max_width{};
uint16_t max_height{};
};
using GetScreenSizeRangeResponse = Response<GetScreenSizeRangeReply>;
Future<GetScreenSizeRangeReply> GetScreenSizeRange(
const GetScreenSizeRangeRequest& request);
Future<GetScreenSizeRangeReply> GetScreenSizeRange(const Window& window = {});
struct SetScreenSizeRequest {
Window window{};
uint16_t width{};
uint16_t height{};
uint32_t mm_width{};
uint32_t mm_height{};
};
using SetScreenSizeResponse = Response<void>;
Future<void> SetScreenSize(const SetScreenSizeRequest& request);
Future<void> SetScreenSize(const Window& window = {},
const uint16_t& width = {},
const uint16_t& height = {},
const uint32_t& mm_width = {},
const uint32_t& mm_height = {});
struct GetScreenResourcesRequest {
Window window{};
};
struct GetScreenResourcesReply {
uint16_t sequence{};
Time timestamp{};
Time config_timestamp{};
std::vector<Crtc> crtcs{};
std::vector<Output> outputs{};
std::vector<ModeInfo> modes{};
std::vector<uint8_t> names{};
};
using GetScreenResourcesResponse = Response<GetScreenResourcesReply>;
Future<GetScreenResourcesReply> GetScreenResources(
const GetScreenResourcesRequest& request);
Future<GetScreenResourcesReply> GetScreenResources(const Window& window = {});
struct GetOutputInfoRequest {
Output output{};
Time config_timestamp{};
};
struct GetOutputInfoReply {
SetConfig status{};
uint16_t sequence{};
Time timestamp{};
Crtc crtc{};
uint32_t mm_width{};
uint32_t mm_height{};
RandRConnection connection{};
Render::SubPixel subpixel_order{};
uint16_t num_preferred{};
std::vector<Crtc> crtcs{};
std::vector<Mode> modes{};
std::vector<Output> clones{};
std::vector<uint8_t> name{};
};
using GetOutputInfoResponse = Response<GetOutputInfoReply>;
Future<GetOutputInfoReply> GetOutputInfo(const GetOutputInfoRequest& request);
Future<GetOutputInfoReply> GetOutputInfo(const Output& output = {},
const Time& config_timestamp = {});
struct ListOutputPropertiesRequest {
Output output{};
};
struct ListOutputPropertiesReply {
uint16_t sequence{};
std::vector<Atom> atoms{};
};
using ListOutputPropertiesResponse = Response<ListOutputPropertiesReply>;
Future<ListOutputPropertiesReply> ListOutputProperties(
const ListOutputPropertiesRequest& request);
Future<ListOutputPropertiesReply> ListOutputProperties(
const Output& output = {});
struct QueryOutputPropertyRequest {
Output output{};
Atom property{};
};
struct QueryOutputPropertyReply {
uint16_t sequence{};
uint8_t pending{};
uint8_t range{};
uint8_t immutable{};
std::vector<int32_t> validValues{};
};
using QueryOutputPropertyResponse = Response<QueryOutputPropertyReply>;
Future<QueryOutputPropertyReply> QueryOutputProperty(
const QueryOutputPropertyRequest& request);
Future<QueryOutputPropertyReply> QueryOutputProperty(
const Output& output = {},
const Atom& property = {});
struct ConfigureOutputPropertyRequest {
Output output{};
Atom property{};
uint8_t pending{};
uint8_t range{};
std::vector<int32_t> values{};
};
using ConfigureOutputPropertyResponse = Response<void>;
Future<void> ConfigureOutputProperty(
const ConfigureOutputPropertyRequest& request);
Future<void> ConfigureOutputProperty(const Output& output = {},
const Atom& property = {},
const uint8_t& pending = {},
const uint8_t& range = {},
const std::vector<int32_t>& values = {});
struct ChangeOutputPropertyRequest {
Output output{};
Atom property{};
Atom type{};
uint8_t format{};
PropMode mode{};
uint32_t num_units{};
scoped_refptr<base::RefCountedMemory> data{};
};
using ChangeOutputPropertyResponse = Response<void>;
Future<void> ChangeOutputProperty(const ChangeOutputPropertyRequest& request);
Future<void> ChangeOutputProperty(
const Output& output = {},
const Atom& property = {},
const Atom& type = {},
const uint8_t& format = {},
const PropMode& mode = {},
const uint32_t& num_units = {},
const scoped_refptr<base::RefCountedMemory>& data = {});
struct DeleteOutputPropertyRequest {
Output output{};
Atom property{};
};
using DeleteOutputPropertyResponse = Response<void>;
Future<void> DeleteOutputProperty(const DeleteOutputPropertyRequest& request);
Future<void> DeleteOutputProperty(const Output& output = {},
const Atom& property = {});
struct GetOutputPropertyRequest {
Output output{};
Atom property{};
Atom type{};
uint32_t long_offset{};
uint32_t long_length{};
uint8_t c_delete{};
uint8_t pending{};
};
struct GetOutputPropertyReply {
uint8_t format{};
uint16_t sequence{};
Atom type{};
uint32_t bytes_after{};
uint32_t num_items{};
std::vector<uint8_t> data{};
};
using GetOutputPropertyResponse = Response<GetOutputPropertyReply>;
Future<GetOutputPropertyReply> GetOutputProperty(
const GetOutputPropertyRequest& request);
Future<GetOutputPropertyReply> GetOutputProperty(
const Output& output = {},
const Atom& property = {},
const Atom& type = {},
const uint32_t& long_offset = {},
const uint32_t& long_length = {},
const uint8_t& c_delete = {},
const uint8_t& pending = {});
struct CreateModeRequest {
Window window{};
ModeInfo mode_info{};
std::string name{};
};
struct CreateModeReply {
uint16_t sequence{};
Mode mode{};
};
using CreateModeResponse = Response<CreateModeReply>;
Future<CreateModeReply> CreateMode(const CreateModeRequest& request);
Future<CreateModeReply> CreateMode(
const Window& window = {},
const ModeInfo& mode_info =
{{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}},
const std::string& name = {});
struct DestroyModeRequest {
Mode mode{};
};
using DestroyModeResponse = Response<void>;
Future<void> DestroyMode(const DestroyModeRequest& request);
Future<void> DestroyMode(const Mode& mode = {});
struct AddOutputModeRequest {
Output output{};
Mode mode{};
};
using AddOutputModeResponse = Response<void>;
Future<void> AddOutputMode(const AddOutputModeRequest& request);
Future<void> AddOutputMode(const Output& output = {}, const Mode& mode = {});
struct DeleteOutputModeRequest {
Output output{};
Mode mode{};
};
using DeleteOutputModeResponse = Response<void>;
Future<void> DeleteOutputMode(const DeleteOutputModeRequest& request);
Future<void> DeleteOutputMode(const Output& output = {},
const Mode& mode = {});
struct GetCrtcInfoRequest {
Crtc crtc{};
Time config_timestamp{};
};
struct GetCrtcInfoReply {
SetConfig status{};
uint16_t sequence{};
Time timestamp{};
int16_t x{};
int16_t y{};
uint16_t width{};
uint16_t height{};
Mode mode{};
Rotation rotation{};
Rotation rotations{};
std::vector<Output> outputs{};
std::vector<Output> possible{};
};
using GetCrtcInfoResponse = Response<GetCrtcInfoReply>;
Future<GetCrtcInfoReply> GetCrtcInfo(const GetCrtcInfoRequest& request);
Future<GetCrtcInfoReply> GetCrtcInfo(const Crtc& crtc = {},
const Time& config_timestamp = {});
struct SetCrtcConfigRequest {
Crtc crtc{};
Time timestamp{};
Time config_timestamp{};
int16_t x{};
int16_t y{};
Mode mode{};
Rotation rotation{};
std::vector<Output> outputs{};
};
struct SetCrtcConfigReply {
SetConfig status{};
uint16_t sequence{};
Time timestamp{};
};
using SetCrtcConfigResponse = Response<SetCrtcConfigReply>;
Future<SetCrtcConfigReply> SetCrtcConfig(const SetCrtcConfigRequest& request);
Future<SetCrtcConfigReply> SetCrtcConfig(
const Crtc& crtc = {},
const Time& timestamp = {},
const Time& config_timestamp = {},
const int16_t& x = {},
const int16_t& y = {},
const Mode& mode = {},
const Rotation& rotation = {},
const std::vector<Output>& outputs = {});
struct GetCrtcGammaSizeRequest {
Crtc crtc{};
};
struct GetCrtcGammaSizeReply {
uint16_t sequence{};
uint16_t size{};
};
using GetCrtcGammaSizeResponse = Response<GetCrtcGammaSizeReply>;
Future<GetCrtcGammaSizeReply> GetCrtcGammaSize(
const GetCrtcGammaSizeRequest& request);
Future<GetCrtcGammaSizeReply> GetCrtcGammaSize(const Crtc& crtc = {});
struct GetCrtcGammaRequest {
Crtc crtc{};
};
struct GetCrtcGammaReply {
uint16_t sequence{};
std::vector<uint16_t> red{};
std::vector<uint16_t> green{};
std::vector<uint16_t> blue{};
};
using GetCrtcGammaResponse = Response<GetCrtcGammaReply>;
Future<GetCrtcGammaReply> GetCrtcGamma(const GetCrtcGammaRequest& request);
Future<GetCrtcGammaReply> GetCrtcGamma(const Crtc& crtc = {});
struct SetCrtcGammaRequest {
Crtc crtc{};
std::vector<uint16_t> red{};
std::vector<uint16_t> green{};
std::vector<uint16_t> blue{};
};
using SetCrtcGammaResponse = Response<void>;
Future<void> SetCrtcGamma(const SetCrtcGammaRequest& request);
Future<void> SetCrtcGamma(const Crtc& crtc = {},
const std::vector<uint16_t>& red = {},
const std::vector<uint16_t>& green = {},
const std::vector<uint16_t>& blue = {});
struct GetScreenResourcesCurrentRequest {
Window window{};
};
struct GetScreenResourcesCurrentReply {
uint16_t sequence{};
Time timestamp{};
Time config_timestamp{};
std::vector<Crtc> crtcs{};
std::vector<Output> outputs{};
std::vector<ModeInfo> modes{};
std::vector<uint8_t> names{};
};
using GetScreenResourcesCurrentResponse =
Response<GetScreenResourcesCurrentReply>;
Future<GetScreenResourcesCurrentReply> GetScreenResourcesCurrent(
const GetScreenResourcesCurrentRequest& request);
Future<GetScreenResourcesCurrentReply> GetScreenResourcesCurrent(
const Window& window = {});
struct SetCrtcTransformRequest {
Crtc crtc{};
Render::Transform transform{};
std::string filter_name{};
std::vector<Render::Fixed> filter_params{};
};
using SetCrtcTransformResponse = Response<void>;
Future<void> SetCrtcTransform(const SetCrtcTransformRequest& request);
Future<void> SetCrtcTransform(
const Crtc& crtc = {},
const Render::Transform& transform = {{}, {}, {}, {}, {}, {}, {}, {}, {}},
const std::string& filter_name = {},
const std::vector<Render::Fixed>& filter_params = {});
struct GetCrtcTransformRequest {
Crtc crtc{};
};
struct GetCrtcTransformReply {
uint16_t sequence{};
Render::Transform pending_transform{};
uint8_t has_transforms{};
Render::Transform current_transform{};
std::string pending_filter_name{};
std::vector<Render::Fixed> pending_params{};
std::string current_filter_name{};
std::vector<Render::Fixed> current_params{};
};
using GetCrtcTransformResponse = Response<GetCrtcTransformReply>;
Future<GetCrtcTransformReply> GetCrtcTransform(
const GetCrtcTransformRequest& request);
Future<GetCrtcTransformReply> GetCrtcTransform(const Crtc& crtc = {});
struct GetPanningRequest {
Crtc crtc{};
};
struct GetPanningReply {
SetConfig status{};
uint16_t sequence{};
Time timestamp{};
uint16_t left{};
uint16_t top{};
uint16_t width{};
uint16_t height{};
uint16_t track_left{};
uint16_t track_top{};
uint16_t track_width{};
uint16_t track_height{};
int16_t border_left{};
int16_t border_top{};
int16_t border_right{};
int16_t border_bottom{};
};
using GetPanningResponse = Response<GetPanningReply>;
Future<GetPanningReply> GetPanning(const GetPanningRequest& request);
Future<GetPanningReply> GetPanning(const Crtc& crtc = {});
struct SetPanningRequest {
Crtc crtc{};
Time timestamp{};
uint16_t left{};
uint16_t top{};
uint16_t width{};
uint16_t height{};
uint16_t track_left{};
uint16_t track_top{};
uint16_t track_width{};
uint16_t track_height{};
int16_t border_left{};
int16_t border_top{};
int16_t border_right{};
int16_t border_bottom{};
};
struct SetPanningReply {
SetConfig status{};
uint16_t sequence{};
Time timestamp{};
};
using SetPanningResponse = Response<SetPanningReply>;
Future<SetPanningReply> SetPanning(const SetPanningRequest& request);
Future<SetPanningReply> SetPanning(const Crtc& crtc = {},
const Time& timestamp = {},
const uint16_t& left = {},
const uint16_t& top = {},
const uint16_t& width = {},
const uint16_t& height = {},
const uint16_t& track_left = {},
const uint16_t& track_top = {},
const uint16_t& track_width = {},
const uint16_t& track_height = {},
const int16_t& border_left = {},
const int16_t& border_top = {},
const int16_t& border_right = {},
const int16_t& border_bottom = {});
struct SetOutputPrimaryRequest {
Window window{};
Output output{};
};
using SetOutputPrimaryResponse = Response<void>;
Future<void> SetOutputPrimary(const SetOutputPrimaryRequest& request);
Future<void> SetOutputPrimary(const Window& window = {},
const Output& output = {});
struct GetOutputPrimaryRequest {
Window window{};
};
struct GetOutputPrimaryReply {
uint16_t sequence{};
Output output{};
};
using GetOutputPrimaryResponse = Response<GetOutputPrimaryReply>;
Future<GetOutputPrimaryReply> GetOutputPrimary(
const GetOutputPrimaryRequest& request);
Future<GetOutputPrimaryReply> GetOutputPrimary(const Window& window = {});
struct GetProvidersRequest {
Window window{};
};
struct GetProvidersReply {
uint16_t sequence{};
Time timestamp{};
std::vector<Provider> providers{};
};
using GetProvidersResponse = Response<GetProvidersReply>;
Future<GetProvidersReply> GetProviders(const GetProvidersRequest& request);
Future<GetProvidersReply> GetProviders(const Window& window = {});
struct GetProviderInfoRequest {
Provider provider{};
Time config_timestamp{};
};
struct GetProviderInfoReply {
uint8_t status{};
uint16_t sequence{};
Time timestamp{};
ProviderCapability capabilities{};
std::vector<Crtc> crtcs{};
std::vector<Output> outputs{};
std::vector<Provider> associated_providers{};
std::vector<uint32_t> associated_capability{};
std::string name{};
};
using GetProviderInfoResponse = Response<GetProviderInfoReply>;
Future<GetProviderInfoReply> GetProviderInfo(
const GetProviderInfoRequest& request);
Future<GetProviderInfoReply> GetProviderInfo(
const Provider& provider = {},
const Time& config_timestamp = {});
struct SetProviderOffloadSinkRequest {
Provider provider{};
Provider sink_provider{};
Time config_timestamp{};
};
using SetProviderOffloadSinkResponse = Response<void>;
Future<void> SetProviderOffloadSink(
const SetProviderOffloadSinkRequest& request);
Future<void> SetProviderOffloadSink(const Provider& provider = {},
const Provider& sink_provider = {},
const Time& config_timestamp = {});
struct SetProviderOutputSourceRequest {
Provider provider{};
Provider source_provider{};
Time config_timestamp{};
};
using SetProviderOutputSourceResponse = Response<void>;
Future<void> SetProviderOutputSource(
const SetProviderOutputSourceRequest& request);
Future<void> SetProviderOutputSource(const Provider& provider = {},
const Provider& source_provider = {},
const Time& config_timestamp = {});
struct ListProviderPropertiesRequest {
Provider provider{};
};
struct ListProviderPropertiesReply {
uint16_t sequence{};
std::vector<Atom> atoms{};
};
using ListProviderPropertiesResponse = Response<ListProviderPropertiesReply>;
Future<ListProviderPropertiesReply> ListProviderProperties(
const ListProviderPropertiesRequest& request);
Future<ListProviderPropertiesReply> ListProviderProperties(
const Provider& provider = {});
struct QueryProviderPropertyRequest {
Provider provider{};
Atom property{};
};
struct QueryProviderPropertyReply {
uint16_t sequence{};
uint8_t pending{};
uint8_t range{};
uint8_t immutable{};
std::vector<int32_t> valid_values{};
};
using QueryProviderPropertyResponse = Response<QueryProviderPropertyReply>;
Future<QueryProviderPropertyReply> QueryProviderProperty(
const QueryProviderPropertyRequest& request);
Future<QueryProviderPropertyReply> QueryProviderProperty(
const Provider& provider = {},
const Atom& property = {});
struct ConfigureProviderPropertyRequest {
Provider provider{};
Atom property{};
uint8_t pending{};
uint8_t range{};
std::vector<int32_t> values{};
};
using ConfigureProviderPropertyResponse = Response<void>;
Future<void> ConfigureProviderProperty(
const ConfigureProviderPropertyRequest& request);
Future<void> ConfigureProviderProperty(
const Provider& provider = {},
const Atom& property = {},
const uint8_t& pending = {},
const uint8_t& range = {},
const std::vector<int32_t>& values = {});
struct ChangeProviderPropertyRequest {
Provider provider{};
Atom property{};
Atom type{};
uint8_t format{};
uint8_t mode{};
uint32_t num_items{};
scoped_refptr<base::RefCountedMemory> data{};
};
using ChangeProviderPropertyResponse = Response<void>;
Future<void> ChangeProviderProperty(
const ChangeProviderPropertyRequest& request);
Future<void> ChangeProviderProperty(
const Provider& provider = {},
const Atom& property = {},
const Atom& type = {},
const uint8_t& format = {},
const uint8_t& mode = {},
const uint32_t& num_items = {},
const scoped_refptr<base::RefCountedMemory>& data = {});
struct DeleteProviderPropertyRequest {
Provider provider{};
Atom property{};
};
using DeleteProviderPropertyResponse = Response<void>;
Future<void> DeleteProviderProperty(
const DeleteProviderPropertyRequest& request);
Future<void> DeleteProviderProperty(const Provider& provider = {},
const Atom& property = {});
struct GetProviderPropertyRequest {
Provider provider{};
Atom property{};
Atom type{};
uint32_t long_offset{};
uint32_t long_length{};
uint8_t c_delete{};
uint8_t pending{};
};
struct GetProviderPropertyReply {
uint8_t format{};
uint16_t sequence{};
Atom type{};
uint32_t bytes_after{};
uint32_t num_items{};
scoped_refptr<base::RefCountedMemory> data{};
};
using GetProviderPropertyResponse = Response<GetProviderPropertyReply>;
Future<GetProviderPropertyReply> GetProviderProperty(
const GetProviderPropertyRequest& request);
Future<GetProviderPropertyReply> GetProviderProperty(
const Provider& provider = {},
const Atom& property = {},
const Atom& type = {},
const uint32_t& long_offset = {},
const uint32_t& long_length = {},
const uint8_t& c_delete = {},
const uint8_t& pending = {});
struct GetMonitorsRequest {
Window window{};
uint8_t get_active{};
};
struct GetMonitorsReply {
uint16_t sequence{};
Time timestamp{};
uint32_t nOutputs{};
std::vector<MonitorInfo> monitors{};
};
using GetMonitorsResponse = Response<GetMonitorsReply>;
Future<GetMonitorsReply> GetMonitors(const GetMonitorsRequest& request);
Future<GetMonitorsReply> GetMonitors(const Window& window = {},
const uint8_t& get_active = {});
struct SetMonitorRequest {
Window window{};
MonitorInfo monitorinfo{};
};
using SetMonitorResponse = Response<void>;
Future<void> SetMonitor(const SetMonitorRequest& request);
Future<void> SetMonitor(const Window& window = {},
const MonitorInfo& monitorinfo =
{{}, {}, {}, {}, {}, {}, {}, {}, {}, {}});
struct DeleteMonitorRequest {
Window window{};
Atom name{};
};
using DeleteMonitorResponse = Response<void>;
Future<void> DeleteMonitor(const DeleteMonitorRequest& request);
Future<void> DeleteMonitor(const Window& window = {}, const Atom& name = {});
struct CreateLeaseRequest {
Window window{};
Lease lid{};
std::vector<Crtc> crtcs{};
std::vector<Output> outputs{};
};
struct CreateLeaseReply {
uint8_t nfd{};
uint16_t sequence{};
RefCountedFD master_fd{};
};
using CreateLeaseResponse = Response<CreateLeaseReply>;
Future<CreateLeaseReply> CreateLease(const CreateLeaseRequest& request);
Future<CreateLeaseReply> CreateLease(const Window& window = {},
const Lease& lid = {},
const std::vector<Crtc>& crtcs = {},
const std::vector<Output>& outputs = {});
struct FreeLeaseRequest {
Lease lid{};
uint8_t terminate{};
};
using FreeLeaseResponse = Response<void>;
Future<void> FreeLease(const FreeLeaseRequest& request);
Future<void> FreeLease(const Lease& lid = {}, const uint8_t& terminate = {});
private:
Connection* const connection_;
x11::QueryExtensionReply info_{};
};
} // namespace x11
inline constexpr x11::RandR::Rotation operator|(x11::RandR::Rotation l,
x11::RandR::Rotation r) {
using T = std::underlying_type_t<x11::RandR::Rotation>;
return static_cast<x11::RandR::Rotation>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::RandR::Rotation operator&(x11::RandR::Rotation l,
x11::RandR::Rotation r) {
using T = std::underlying_type_t<x11::RandR::Rotation>;
return static_cast<x11::RandR::Rotation>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::RandR::SetConfig operator|(x11::RandR::SetConfig l,
x11::RandR::SetConfig r) {
using T = std::underlying_type_t<x11::RandR::SetConfig>;
return static_cast<x11::RandR::SetConfig>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::RandR::SetConfig operator&(x11::RandR::SetConfig l,
x11::RandR::SetConfig r) {
using T = std::underlying_type_t<x11::RandR::SetConfig>;
return static_cast<x11::RandR::SetConfig>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::RandR::NotifyMask operator|(x11::RandR::NotifyMask l,
x11::RandR::NotifyMask r) {
using T = std::underlying_type_t<x11::RandR::NotifyMask>;
return static_cast<x11::RandR::NotifyMask>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::RandR::NotifyMask operator&(x11::RandR::NotifyMask l,
x11::RandR::NotifyMask r) {
using T = std::underlying_type_t<x11::RandR::NotifyMask>;
return static_cast<x11::RandR::NotifyMask>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::RandR::ModeFlag operator|(x11::RandR::ModeFlag l,
x11::RandR::ModeFlag r) {
using T = std::underlying_type_t<x11::RandR::ModeFlag>;
return static_cast<x11::RandR::ModeFlag>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::RandR::ModeFlag operator&(x11::RandR::ModeFlag l,
x11::RandR::ModeFlag r) {
using T = std::underlying_type_t<x11::RandR::ModeFlag>;
return static_cast<x11::RandR::ModeFlag>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::RandR::RandRConnection operator|(
x11::RandR::RandRConnection l,
x11::RandR::RandRConnection r) {
using T = std::underlying_type_t<x11::RandR::RandRConnection>;
return static_cast<x11::RandR::RandRConnection>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::RandR::RandRConnection operator&(
x11::RandR::RandRConnection l,
x11::RandR::RandRConnection r) {
using T = std::underlying_type_t<x11::RandR::RandRConnection>;
return static_cast<x11::RandR::RandRConnection>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::RandR::Transform operator|(x11::RandR::Transform l,
x11::RandR::Transform r) {
using T = std::underlying_type_t<x11::RandR::Transform>;
return static_cast<x11::RandR::Transform>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::RandR::Transform operator&(x11::RandR::Transform l,
x11::RandR::Transform r) {
using T = std::underlying_type_t<x11::RandR::Transform>;
return static_cast<x11::RandR::Transform>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::RandR::ProviderCapability operator|(
x11::RandR::ProviderCapability l,
x11::RandR::ProviderCapability r) {
using T = std::underlying_type_t<x11::RandR::ProviderCapability>;
return static_cast<x11::RandR::ProviderCapability>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::RandR::ProviderCapability operator&(
x11::RandR::ProviderCapability l,
x11::RandR::ProviderCapability r) {
using T = std::underlying_type_t<x11::RandR::ProviderCapability>;
return static_cast<x11::RandR::ProviderCapability>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::RandR::Notify operator|(x11::RandR::Notify l,
x11::RandR::Notify r) {
using T = std::underlying_type_t<x11::RandR::Notify>;
return static_cast<x11::RandR::Notify>(static_cast<T>(l) | static_cast<T>(r));
}
inline constexpr x11::RandR::Notify operator&(x11::RandR::Notify l,
x11::RandR::Notify r) {
using T = std::underlying_type_t<x11::RandR::Notify>;
return static_cast<x11::RandR::Notify>(static_cast<T>(l) & static_cast<T>(r));
}
#endif // UI_GFX_X_GENERATED_PROTOS_RANDR_H_