blob: fa451a2c22fa7aa70edf098224042783cda94a29 [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_XF86VIDMODE_H_
#define UI_GFX_X_GENERATED_PROTOS_XF86VIDMODE_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 "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) XF86VidMode {
public:
static constexpr unsigned major_version = 2;
static constexpr unsigned minor_version = 2;
XF86VidMode(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 Syncrange : uint32_t {};
enum class DotClock : uint32_t {};
enum class ModeFlag : int {
Positive_HSync = 1 << 0,
Negative_HSync = 1 << 1,
Positive_VSync = 1 << 2,
Negative_VSync = 1 << 3,
Interlace = 1 << 4,
Composite_Sync = 1 << 5,
Positive_CSync = 1 << 6,
Negative_CSync = 1 << 7,
HSkew = 1 << 8,
Broadcast = 1 << 9,
Pixmux = 1 << 10,
Double_Clock = 1 << 11,
Half_Clock = 1 << 12,
};
enum class ClockFlag : int {
Programable = 1 << 0,
};
enum class Permission : int {
Read = 1 << 0,
Write = 1 << 1,
};
struct ModeInfo {
DotClock dotclock{};
uint16_t hdisplay{};
uint16_t hsyncstart{};
uint16_t hsyncend{};
uint16_t htotal{};
uint32_t hskew{};
uint16_t vdisplay{};
uint16_t vsyncstart{};
uint16_t vsyncend{};
uint16_t vtotal{};
ModeFlag flags{};
uint32_t privsize{};
};
struct BadClockError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct BadHTimingsError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct BadVTimingsError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct ModeUnsuitableError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct ExtensionDisabledError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct ClientNotLocalError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct ZoomLockedError : public x11::Error {
uint16_t sequence{};
std::string ToString() const override;
};
struct QueryVersionRequest {};
struct QueryVersionReply {
uint16_t sequence{};
uint16_t major_version{};
uint16_t minor_version{};
};
using QueryVersionResponse = Response<QueryVersionReply>;
Future<QueryVersionReply> QueryVersion(const QueryVersionRequest& request);
Future<QueryVersionReply> QueryVersion();
struct GetModeLineRequest {
uint16_t screen{};
};
struct GetModeLineReply {
uint16_t sequence{};
DotClock dotclock{};
uint16_t hdisplay{};
uint16_t hsyncstart{};
uint16_t hsyncend{};
uint16_t htotal{};
uint16_t hskew{};
uint16_t vdisplay{};
uint16_t vsyncstart{};
uint16_t vsyncend{};
uint16_t vtotal{};
ModeFlag flags{};
std::vector<uint8_t> c_private{};
};
using GetModeLineResponse = Response<GetModeLineReply>;
Future<GetModeLineReply> GetModeLine(const GetModeLineRequest& request);
Future<GetModeLineReply> GetModeLine(const uint16_t& screen = {});
struct ModModeLineRequest {
uint32_t screen{};
uint16_t hdisplay{};
uint16_t hsyncstart{};
uint16_t hsyncend{};
uint16_t htotal{};
uint16_t hskew{};
uint16_t vdisplay{};
uint16_t vsyncstart{};
uint16_t vsyncend{};
uint16_t vtotal{};
ModeFlag flags{};
std::vector<uint8_t> c_private{};
};
using ModModeLineResponse = Response<void>;
Future<void> ModModeLine(const ModModeLineRequest& request);
Future<void> ModModeLine(const uint32_t& screen = {},
const uint16_t& hdisplay = {},
const uint16_t& hsyncstart = {},
const uint16_t& hsyncend = {},
const uint16_t& htotal = {},
const uint16_t& hskew = {},
const uint16_t& vdisplay = {},
const uint16_t& vsyncstart = {},
const uint16_t& vsyncend = {},
const uint16_t& vtotal = {},
const ModeFlag& flags = {},
const std::vector<uint8_t>& c_private = {});
struct SwitchModeRequest {
uint16_t screen{};
uint16_t zoom{};
};
using SwitchModeResponse = Response<void>;
Future<void> SwitchMode(const SwitchModeRequest& request);
Future<void> SwitchMode(const uint16_t& screen = {},
const uint16_t& zoom = {});
struct GetMonitorRequest {
uint16_t screen{};
};
struct GetMonitorReply {
uint16_t sequence{};
std::vector<Syncrange> hsync{};
std::vector<Syncrange> vsync{};
std::string vendor{};
scoped_refptr<base::RefCountedMemory> alignment_pad{};
std::string model{};
};
using GetMonitorResponse = Response<GetMonitorReply>;
Future<GetMonitorReply> GetMonitor(const GetMonitorRequest& request);
Future<GetMonitorReply> GetMonitor(const uint16_t& screen = {});
struct LockModeSwitchRequest {
uint16_t screen{};
uint16_t lock{};
};
using LockModeSwitchResponse = Response<void>;
Future<void> LockModeSwitch(const LockModeSwitchRequest& request);
Future<void> LockModeSwitch(const uint16_t& screen = {},
const uint16_t& lock = {});
struct GetAllModeLinesRequest {
uint16_t screen{};
};
struct GetAllModeLinesReply {
uint16_t sequence{};
std::vector<ModeInfo> modeinfo{};
};
using GetAllModeLinesResponse = Response<GetAllModeLinesReply>;
Future<GetAllModeLinesReply> GetAllModeLines(
const GetAllModeLinesRequest& request);
Future<GetAllModeLinesReply> GetAllModeLines(const uint16_t& screen = {});
struct AddModeLineRequest {
uint32_t screen{};
DotClock dotclock{};
uint16_t hdisplay{};
uint16_t hsyncstart{};
uint16_t hsyncend{};
uint16_t htotal{};
uint16_t hskew{};
uint16_t vdisplay{};
uint16_t vsyncstart{};
uint16_t vsyncend{};
uint16_t vtotal{};
ModeFlag flags{};
DotClock after_dotclock{};
uint16_t after_hdisplay{};
uint16_t after_hsyncstart{};
uint16_t after_hsyncend{};
uint16_t after_htotal{};
uint16_t after_hskew{};
uint16_t after_vdisplay{};
uint16_t after_vsyncstart{};
uint16_t after_vsyncend{};
uint16_t after_vtotal{};
ModeFlag after_flags{};
std::vector<uint8_t> c_private{};
};
using AddModeLineResponse = Response<void>;
Future<void> AddModeLine(const AddModeLineRequest& request);
Future<void> AddModeLine(const uint32_t& screen = {},
const DotClock& dotclock = {},
const uint16_t& hdisplay = {},
const uint16_t& hsyncstart = {},
const uint16_t& hsyncend = {},
const uint16_t& htotal = {},
const uint16_t& hskew = {},
const uint16_t& vdisplay = {},
const uint16_t& vsyncstart = {},
const uint16_t& vsyncend = {},
const uint16_t& vtotal = {},
const ModeFlag& flags = {},
const DotClock& after_dotclock = {},
const uint16_t& after_hdisplay = {},
const uint16_t& after_hsyncstart = {},
const uint16_t& after_hsyncend = {},
const uint16_t& after_htotal = {},
const uint16_t& after_hskew = {},
const uint16_t& after_vdisplay = {},
const uint16_t& after_vsyncstart = {},
const uint16_t& after_vsyncend = {},
const uint16_t& after_vtotal = {},
const ModeFlag& after_flags = {},
const std::vector<uint8_t>& c_private = {});
struct DeleteModeLineRequest {
uint32_t screen{};
DotClock dotclock{};
uint16_t hdisplay{};
uint16_t hsyncstart{};
uint16_t hsyncend{};
uint16_t htotal{};
uint16_t hskew{};
uint16_t vdisplay{};
uint16_t vsyncstart{};
uint16_t vsyncend{};
uint16_t vtotal{};
ModeFlag flags{};
std::vector<uint8_t> c_private{};
};
using DeleteModeLineResponse = Response<void>;
Future<void> DeleteModeLine(const DeleteModeLineRequest& request);
Future<void> DeleteModeLine(const uint32_t& screen = {},
const DotClock& dotclock = {},
const uint16_t& hdisplay = {},
const uint16_t& hsyncstart = {},
const uint16_t& hsyncend = {},
const uint16_t& htotal = {},
const uint16_t& hskew = {},
const uint16_t& vdisplay = {},
const uint16_t& vsyncstart = {},
const uint16_t& vsyncend = {},
const uint16_t& vtotal = {},
const ModeFlag& flags = {},
const std::vector<uint8_t>& c_private = {});
struct ValidateModeLineRequest {
uint32_t screen{};
DotClock dotclock{};
uint16_t hdisplay{};
uint16_t hsyncstart{};
uint16_t hsyncend{};
uint16_t htotal{};
uint16_t hskew{};
uint16_t vdisplay{};
uint16_t vsyncstart{};
uint16_t vsyncend{};
uint16_t vtotal{};
ModeFlag flags{};
std::vector<uint8_t> c_private{};
};
struct ValidateModeLineReply {
uint16_t sequence{};
uint32_t status{};
};
using ValidateModeLineResponse = Response<ValidateModeLineReply>;
Future<ValidateModeLineReply> ValidateModeLine(
const ValidateModeLineRequest& request);
Future<ValidateModeLineReply> ValidateModeLine(
const uint32_t& screen = {},
const DotClock& dotclock = {},
const uint16_t& hdisplay = {},
const uint16_t& hsyncstart = {},
const uint16_t& hsyncend = {},
const uint16_t& htotal = {},
const uint16_t& hskew = {},
const uint16_t& vdisplay = {},
const uint16_t& vsyncstart = {},
const uint16_t& vsyncend = {},
const uint16_t& vtotal = {},
const ModeFlag& flags = {},
const std::vector<uint8_t>& c_private = {});
struct SwitchToModeRequest {
uint32_t screen{};
DotClock dotclock{};
uint16_t hdisplay{};
uint16_t hsyncstart{};
uint16_t hsyncend{};
uint16_t htotal{};
uint16_t hskew{};
uint16_t vdisplay{};
uint16_t vsyncstart{};
uint16_t vsyncend{};
uint16_t vtotal{};
ModeFlag flags{};
std::vector<uint8_t> c_private{};
};
using SwitchToModeResponse = Response<void>;
Future<void> SwitchToMode(const SwitchToModeRequest& request);
Future<void> SwitchToMode(const uint32_t& screen = {},
const DotClock& dotclock = {},
const uint16_t& hdisplay = {},
const uint16_t& hsyncstart = {},
const uint16_t& hsyncend = {},
const uint16_t& htotal = {},
const uint16_t& hskew = {},
const uint16_t& vdisplay = {},
const uint16_t& vsyncstart = {},
const uint16_t& vsyncend = {},
const uint16_t& vtotal = {},
const ModeFlag& flags = {},
const std::vector<uint8_t>& c_private = {});
struct GetViewPortRequest {
uint16_t screen{};
};
struct GetViewPortReply {
uint16_t sequence{};
uint32_t x{};
uint32_t y{};
};
using GetViewPortResponse = Response<GetViewPortReply>;
Future<GetViewPortReply> GetViewPort(const GetViewPortRequest& request);
Future<GetViewPortReply> GetViewPort(const uint16_t& screen = {});
struct SetViewPortRequest {
uint16_t screen{};
uint32_t x{};
uint32_t y{};
};
using SetViewPortResponse = Response<void>;
Future<void> SetViewPort(const SetViewPortRequest& request);
Future<void> SetViewPort(const uint16_t& screen = {},
const uint32_t& x = {},
const uint32_t& y = {});
struct GetDotClocksRequest {
uint16_t screen{};
};
struct GetDotClocksReply {
uint16_t sequence{};
ClockFlag flags{};
uint32_t clocks{};
uint32_t maxclocks{};
std::vector<uint32_t> clock{};
};
using GetDotClocksResponse = Response<GetDotClocksReply>;
Future<GetDotClocksReply> GetDotClocks(const GetDotClocksRequest& request);
Future<GetDotClocksReply> GetDotClocks(const uint16_t& screen = {});
struct SetClientVersionRequest {
uint16_t major{};
uint16_t minor{};
};
using SetClientVersionResponse = Response<void>;
Future<void> SetClientVersion(const SetClientVersionRequest& request);
Future<void> SetClientVersion(const uint16_t& major = {},
const uint16_t& minor = {});
struct SetGammaRequest {
uint16_t screen{};
uint32_t red{};
uint32_t green{};
uint32_t blue{};
};
using SetGammaResponse = Response<void>;
Future<void> SetGamma(const SetGammaRequest& request);
Future<void> SetGamma(const uint16_t& screen = {},
const uint32_t& red = {},
const uint32_t& green = {},
const uint32_t& blue = {});
struct GetGammaRequest {
uint16_t screen{};
};
struct GetGammaReply {
uint16_t sequence{};
uint32_t red{};
uint32_t green{};
uint32_t blue{};
};
using GetGammaResponse = Response<GetGammaReply>;
Future<GetGammaReply> GetGamma(const GetGammaRequest& request);
Future<GetGammaReply> GetGamma(const uint16_t& screen = {});
struct GetGammaRampRequest {
uint16_t screen{};
uint16_t size{};
};
struct GetGammaRampReply {
uint16_t sequence{};
uint16_t size{};
std::vector<uint16_t> red{};
std::vector<uint16_t> green{};
std::vector<uint16_t> blue{};
};
using GetGammaRampResponse = Response<GetGammaRampReply>;
Future<GetGammaRampReply> GetGammaRamp(const GetGammaRampRequest& request);
Future<GetGammaRampReply> GetGammaRamp(const uint16_t& screen = {},
const uint16_t& size = {});
struct SetGammaRampRequest {
uint16_t screen{};
uint16_t size{};
std::vector<uint16_t> red{};
std::vector<uint16_t> green{};
std::vector<uint16_t> blue{};
};
using SetGammaRampResponse = Response<void>;
Future<void> SetGammaRamp(const SetGammaRampRequest& request);
Future<void> SetGammaRamp(const uint16_t& screen = {},
const uint16_t& size = {},
const std::vector<uint16_t>& red = {},
const std::vector<uint16_t>& green = {},
const std::vector<uint16_t>& blue = {});
struct GetGammaRampSizeRequest {
uint16_t screen{};
};
struct GetGammaRampSizeReply {
uint16_t sequence{};
uint16_t size{};
};
using GetGammaRampSizeResponse = Response<GetGammaRampSizeReply>;
Future<GetGammaRampSizeReply> GetGammaRampSize(
const GetGammaRampSizeRequest& request);
Future<GetGammaRampSizeReply> GetGammaRampSize(const uint16_t& screen = {});
struct GetPermissionsRequest {
uint16_t screen{};
};
struct GetPermissionsReply {
uint16_t sequence{};
Permission permissions{};
};
using GetPermissionsResponse = Response<GetPermissionsReply>;
Future<GetPermissionsReply> GetPermissions(
const GetPermissionsRequest& request);
Future<GetPermissionsReply> GetPermissions(const uint16_t& screen = {});
private:
Connection* const connection_;
x11::QueryExtensionReply info_{};
};
} // namespace x11
inline constexpr x11::XF86VidMode::ModeFlag operator|(
x11::XF86VidMode::ModeFlag l,
x11::XF86VidMode::ModeFlag r) {
using T = std::underlying_type_t<x11::XF86VidMode::ModeFlag>;
return static_cast<x11::XF86VidMode::ModeFlag>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::XF86VidMode::ModeFlag operator&(
x11::XF86VidMode::ModeFlag l,
x11::XF86VidMode::ModeFlag r) {
using T = std::underlying_type_t<x11::XF86VidMode::ModeFlag>;
return static_cast<x11::XF86VidMode::ModeFlag>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::XF86VidMode::ClockFlag operator|(
x11::XF86VidMode::ClockFlag l,
x11::XF86VidMode::ClockFlag r) {
using T = std::underlying_type_t<x11::XF86VidMode::ClockFlag>;
return static_cast<x11::XF86VidMode::ClockFlag>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::XF86VidMode::ClockFlag operator&(
x11::XF86VidMode::ClockFlag l,
x11::XF86VidMode::ClockFlag r) {
using T = std::underlying_type_t<x11::XF86VidMode::ClockFlag>;
return static_cast<x11::XF86VidMode::ClockFlag>(static_cast<T>(l) &
static_cast<T>(r));
}
inline constexpr x11::XF86VidMode::Permission operator|(
x11::XF86VidMode::Permission l,
x11::XF86VidMode::Permission r) {
using T = std::underlying_type_t<x11::XF86VidMode::Permission>;
return static_cast<x11::XF86VidMode::Permission>(static_cast<T>(l) |
static_cast<T>(r));
}
inline constexpr x11::XF86VidMode::Permission operator&(
x11::XF86VidMode::Permission l,
x11::XF86VidMode::Permission r) {
using T = std::underlying_type_t<x11::XF86VidMode::Permission>;
return static_cast<x11::XF86VidMode::Permission>(static_cast<T>(l) &
static_cast<T>(r));
}
#endif // UI_GFX_X_GENERATED_PROTOS_XF86VIDMODE_H_