aboutsummaryrefslogtreecommitdiff
path: root/wlr-output-power-management-unstable-v1-protocol.h
diff options
context:
space:
mode:
Diffstat (limited to 'wlr-output-power-management-unstable-v1-protocol.h')
-rw-r--r--wlr-output-power-management-unstable-v1-protocol.h277
1 files changed, 277 insertions, 0 deletions
diff --git a/wlr-output-power-management-unstable-v1-protocol.h b/wlr-output-power-management-unstable-v1-protocol.h
new file mode 100644
index 0000000..bf03b6f
--- /dev/null
+++ b/wlr-output-power-management-unstable-v1-protocol.h
@@ -0,0 +1,277 @@
+/* Generated by wayland-scanner 1.23.1 */
+
+#ifndef WLR_OUTPUT_POWER_MANAGEMENT_UNSTABLE_V1_SERVER_PROTOCOL_H
+#define WLR_OUTPUT_POWER_MANAGEMENT_UNSTABLE_V1_SERVER_PROTOCOL_H
+
+#include <stdint.h>
+#include <stddef.h>
+#include "wayland-server.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct wl_client;
+struct wl_resource;
+
+/**
+ * @page page_wlr_output_power_management_unstable_v1 The wlr_output_power_management_unstable_v1 protocol
+ * Control power management modes of outputs
+ *
+ * @section page_desc_wlr_output_power_management_unstable_v1 Description
+ *
+ * This protocol allows clients to control power management modes
+ * of outputs that are currently part of the compositor space. The
+ * intent is to allow special clients like desktop shells to power
+ * down outputs when the system is idle.
+ *
+ * To modify outputs not currently part of the compositor space see
+ * wlr-output-management.
+ *
+ * Warning! The protocol described in this file is experimental and
+ * backward incompatible changes may be made. Backward compatible changes
+ * may be added together with the corresponding interface version bump.
+ * Backward incompatible changes are done by bumping the version number in
+ * the protocol and interface names and resetting the interface version.
+ * Once the protocol is to be declared stable, the 'z' prefix and the
+ * version number in the protocol and interface names are removed and the
+ * interface version number is reset.
+ *
+ * @section page_ifaces_wlr_output_power_management_unstable_v1 Interfaces
+ * - @subpage page_iface_zwlr_output_power_manager_v1 - manager to create per-output power management
+ * - @subpage page_iface_zwlr_output_power_v1 - adjust power management mode for an output
+ * @section page_copyright_wlr_output_power_management_unstable_v1 Copyright
+ * <pre>
+ *
+ * Copyright © 2019 Purism SPC
+ *
+ * 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.
+ * </pre>
+ */
+struct wl_output;
+struct zwlr_output_power_manager_v1;
+struct zwlr_output_power_v1;
+
+#ifndef ZWLR_OUTPUT_POWER_MANAGER_V1_INTERFACE
+#define ZWLR_OUTPUT_POWER_MANAGER_V1_INTERFACE
+/**
+ * @page page_iface_zwlr_output_power_manager_v1 zwlr_output_power_manager_v1
+ * @section page_iface_zwlr_output_power_manager_v1_desc Description
+ *
+ * This interface is a manager that allows creating per-output power
+ * management mode controls.
+ * @section page_iface_zwlr_output_power_manager_v1_api API
+ * See @ref iface_zwlr_output_power_manager_v1.
+ */
+/**
+ * @defgroup iface_zwlr_output_power_manager_v1 The zwlr_output_power_manager_v1 interface
+ *
+ * This interface is a manager that allows creating per-output power
+ * management mode controls.
+ */
+extern const struct wl_interface zwlr_output_power_manager_v1_interface;
+#endif
+#ifndef ZWLR_OUTPUT_POWER_V1_INTERFACE
+#define ZWLR_OUTPUT_POWER_V1_INTERFACE
+/**
+ * @page page_iface_zwlr_output_power_v1 zwlr_output_power_v1
+ * @section page_iface_zwlr_output_power_v1_desc Description
+ *
+ * This object offers requests to set the power management mode of
+ * an output.
+ * @section page_iface_zwlr_output_power_v1_api API
+ * See @ref iface_zwlr_output_power_v1.
+ */
+/**
+ * @defgroup iface_zwlr_output_power_v1 The zwlr_output_power_v1 interface
+ *
+ * This object offers requests to set the power management mode of
+ * an output.
+ */
+extern const struct wl_interface zwlr_output_power_v1_interface;
+#endif
+
+/**
+ * @ingroup iface_zwlr_output_power_manager_v1
+ * @struct zwlr_output_power_manager_v1_interface
+ */
+struct zwlr_output_power_manager_v1_interface {
+ /**
+ * get a power management for an output
+ *
+ * Create a output power management mode control that can be used
+ * to adjust the power management mode for a given output.
+ */
+ void (*get_output_power)(struct wl_client *client,
+ struct wl_resource *resource,
+ uint32_t id,
+ struct wl_resource *output);
+ /**
+ * destroy the manager
+ *
+ * All objects created by the manager will still remain valid,
+ * until their appropriate destroy request has been called.
+ */
+ void (*destroy)(struct wl_client *client,
+ struct wl_resource *resource);
+};
+
+
+/**
+ * @ingroup iface_zwlr_output_power_manager_v1
+ */
+#define ZWLR_OUTPUT_POWER_MANAGER_V1_GET_OUTPUT_POWER_SINCE_VERSION 1
+/**
+ * @ingroup iface_zwlr_output_power_manager_v1
+ */
+#define ZWLR_OUTPUT_POWER_MANAGER_V1_DESTROY_SINCE_VERSION 1
+
+#ifndef ZWLR_OUTPUT_POWER_V1_MODE_ENUM
+#define ZWLR_OUTPUT_POWER_V1_MODE_ENUM
+enum zwlr_output_power_v1_mode {
+ /**
+ * Output is turned off.
+ */
+ ZWLR_OUTPUT_POWER_V1_MODE_OFF = 0,
+ /**
+ * Output is turned on, no power saving
+ */
+ ZWLR_OUTPUT_POWER_V1_MODE_ON = 1,
+};
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ * Validate a zwlr_output_power_v1 mode value.
+ *
+ * @return true on success, false on error.
+ * @ref zwlr_output_power_v1_mode
+ */
+static inline bool
+zwlr_output_power_v1_mode_is_valid(uint32_t value, uint32_t version) {
+ switch (value) {
+ case ZWLR_OUTPUT_POWER_V1_MODE_OFF:
+ return version >= 1;
+ case ZWLR_OUTPUT_POWER_V1_MODE_ON:
+ return version >= 1;
+ default:
+ return false;
+ }
+}
+#endif /* ZWLR_OUTPUT_POWER_V1_MODE_ENUM */
+
+#ifndef ZWLR_OUTPUT_POWER_V1_ERROR_ENUM
+#define ZWLR_OUTPUT_POWER_V1_ERROR_ENUM
+enum zwlr_output_power_v1_error {
+ /**
+ * inexistent power save mode
+ */
+ ZWLR_OUTPUT_POWER_V1_ERROR_INVALID_MODE = 1,
+};
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ * Validate a zwlr_output_power_v1 error value.
+ *
+ * @return true on success, false on error.
+ * @ref zwlr_output_power_v1_error
+ */
+static inline bool
+zwlr_output_power_v1_error_is_valid(uint32_t value, uint32_t version) {
+ switch (value) {
+ case ZWLR_OUTPUT_POWER_V1_ERROR_INVALID_MODE:
+ return version >= 1;
+ default:
+ return false;
+ }
+}
+#endif /* ZWLR_OUTPUT_POWER_V1_ERROR_ENUM */
+
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ * @struct zwlr_output_power_v1_interface
+ */
+struct zwlr_output_power_v1_interface {
+ /**
+ * Set an outputs power save mode
+ *
+ * Set an output's power save mode to the given mode. The mode
+ * change is effective immediately. If the output does not support
+ * the given mode a failed event is sent.
+ * @param mode the power save mode to set
+ */
+ void (*set_mode)(struct wl_client *client,
+ struct wl_resource *resource,
+ uint32_t mode);
+ /**
+ * destroy this power management
+ *
+ * Destroys the output power management mode control object.
+ */
+ void (*destroy)(struct wl_client *client,
+ struct wl_resource *resource);
+};
+
+#define ZWLR_OUTPUT_POWER_V1_MODE 0
+#define ZWLR_OUTPUT_POWER_V1_FAILED 1
+
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ */
+#define ZWLR_OUTPUT_POWER_V1_MODE_SINCE_VERSION 1
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ */
+#define ZWLR_OUTPUT_POWER_V1_FAILED_SINCE_VERSION 1
+
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ */
+#define ZWLR_OUTPUT_POWER_V1_SET_MODE_SINCE_VERSION 1
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ */
+#define ZWLR_OUTPUT_POWER_V1_DESTROY_SINCE_VERSION 1
+
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ * Sends an mode event to the client owning the resource.
+ * @param resource_ The client's resource
+ * @param mode the output's new power management mode
+ */
+static inline void
+zwlr_output_power_v1_send_mode(struct wl_resource *resource_, uint32_t mode)
+{
+ wl_resource_post_event(resource_, ZWLR_OUTPUT_POWER_V1_MODE, mode);
+}
+
+/**
+ * @ingroup iface_zwlr_output_power_v1
+ * Sends an failed event to the client owning the resource.
+ * @param resource_ The client's resource
+ */
+static inline void
+zwlr_output_power_v1_send_failed(struct wl_resource *resource_)
+{
+ wl_resource_post_event(resource_, ZWLR_OUTPUT_POWER_V1_FAILED);
+}
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif