wl-mitm/proto/treeland-virtual-output-manager-v1.xml
Peter Cai 76f4ae4a73 Include all known protocols from wayland-explorer
Also adjust the build scripts so that we don't just export one big Rust
file...
2025-03-02 18:19:23 -05:00

89 lines
4.4 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<protocol name="treeland_virtual_output_manager_v1">
<copyright><![CDATA[
SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
SPDX-License-Identifier: MIT
]]></copyright>
<interface name="treeland_virtual_output_manager_v1" version="1">
<description summary="Manager creates virtual output">
This interface is a manager that allows the creation of copied output.
</description>
<request name="create_virtual_output">
<description summary="Create a virtual output">
Create virtual output that can be used when setting screen copy mode for use
on multiple screens. Virtual outputs are created to mirror multiple wl_output
outputs.
The element of the array is the name of the screen.
The first element of the array outputs is the screen to be copied, and
the subsequent elements are the screens to be mirrored.
The client calling this interface will not generate an additional wl_output
object on the client.
</description>
<arg name="id" type="new_id" interface="treeland_virtual_output_v1" />
<arg name="name" type="string" summary="The name of the user readable virtual output" />
<arg name="outputs" type="array" summary="Screen name array" />
</request>
<request name="get_virtual_output_list">
<description summary="Gets a list of virtual output names">
Gets a list of virtual output names.
</description>
</request>
<event name="virtual_output_list">
<description summary="Send a list of virtual output names">
Sends a list of virtual output names to the client.
</description>
<arg name="names" type="array" summary="List of virtual output names" />
</event>
<request name="get_virtual_output">
<description summary="Get virtual output">
The client obtains the corresponding virtual_output_v1 object
through the virtual output name.
</description>
<arg name="name" type="string" summary="The name of the user readable virtual output" />
<arg name="id" type="new_id" interface="treeland_virtual_output_v1" />
</request>
</interface>
<interface name="treeland_virtual_output_v1" version="1">
<description summary="screen output object">
A treeland_virtual_output_v1 represents a set virtual screen output object.
</description>
<event name="outputs">
<description summary="screen output changes">
This event is sent to the client when any screen in the array changes.
The element of the array is the name of the screen.
The first element of the array outputs is the screen to be copied, and
the subsequent elements are the screens to be mirrored.
When the primary screen (the screen being copied) is removed, a successor
is selected from the queue as the primary screen, and the queue information
is updated.
</description>
<arg name="name" type="string" summary="The name of the user readable virtual output" />
<arg name="outputs" type="array" summary="Screen name array" />
</event>
<event name="error">
<description summary="Screen copy mode error event">
When an error occurs, an error event is emitted, terminating the replication
mode request issued by the client.
</description>
<arg name="code" type="uint" summary="error code" />
<arg name="message" type="string" summary="error description" />
</event>
<enum name="error">
<entry name="invalid_group_name" value="0" summary="Group name is empty" />
<entry name="invalid_screen_number" value="1"
summary="The number of screens applying for copy mode is less than 2" />
<entry name="invalid_output" value="2" summary="Output does not exist" />
</enum>
<request name="destroy" type="destructor">
<description summary="destroy the output">
Destroy the output.
</description>
</request>
</interface>
</protocol>