mirror of
https://github.com/brl/mutter.git
synced 2024-11-30 20:01:00 -05:00
0ec335395d
The 'cursor-mode', which currently is limited to RecordMonitor(), allows the user to either do screen casts where the cursor is hidden, embedded in the framebuffer, or sent as PipeWire stream metadata. The latter allows the user to get cursor updates sent, including the cursor sprite, without requiring a stage paint each frame. Currently this is done by using the cursor sprite texture, and either reading directly from, or drawing to an offscreen framebuffer which is read from instead, in case the texture is scaled. https://gitlab.gnome.org/GNOME/mutter/merge_requests/357
142 lines
3.5 KiB
XML
142 lines
3.5 KiB
XML
<!DOCTYPE node PUBLIC
|
|
'-//freedesktop//DTD D-BUS Object Introspection 1.0//EN'
|
|
'http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd'>
|
|
<node>
|
|
|
|
<!--
|
|
org.gnome.Mutter.ScreenCast:
|
|
@short_description: Screen cast interface
|
|
|
|
This API is private and not intended to be used outside of the integrated
|
|
system that uses libmutter. No compatibility between versions are
|
|
promised.
|
|
-->
|
|
<interface name="org.gnome.Mutter.ScreenCast">
|
|
|
|
<!--
|
|
CreateSession:
|
|
@properties: Properties
|
|
@session_path: Path to the new session object
|
|
|
|
* "remote-desktop-session-id" (s): The ID of a remote desktop session.
|
|
Remote desktop driven screen casts
|
|
are started and stopped by the remote
|
|
desktop session.
|
|
-->
|
|
<method name="CreateSession">
|
|
<arg name="properties" type="a{sv}" direction="in" />
|
|
<arg name="session_path" type="o" direction="out" />
|
|
</method>
|
|
|
|
<!--
|
|
Version:
|
|
@short_description: API version
|
|
-->
|
|
<property name="Version" type="i" access="read" />
|
|
|
|
</interface>
|
|
|
|
<!--
|
|
org.gnome.Mutter.ScreenCast.Session:
|
|
@short_description: Screen cast session
|
|
-->
|
|
<interface name="org.gnome.Mutter.ScreenCast.Session">
|
|
|
|
<!--
|
|
Start:
|
|
|
|
Start the screen cast session
|
|
-->
|
|
<method name="Start" />
|
|
|
|
<!--
|
|
Stop:
|
|
|
|
Stop the screen cast session
|
|
-->
|
|
<method name="Stop" />
|
|
|
|
<!--
|
|
Closed:
|
|
|
|
The session has closed.
|
|
-->
|
|
<signal name="Closed" />
|
|
|
|
<!--
|
|
RecordMonitor:
|
|
@connector: Connector of the monitor to record
|
|
@properties: Properties
|
|
@stream_path: Path to the new stream object
|
|
|
|
Record a single monitor.
|
|
|
|
Available @properties include:
|
|
|
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
|
|
|
Available cursor mode values:
|
|
|
|
0: hidden - cursor is not included in the stream
|
|
1: embedded - cursor is included in the framebuffer
|
|
2: metadata - cursor is included as metadata in the PipeWire stream
|
|
-->
|
|
<method name="RecordMonitor">
|
|
<arg name="connector" type="s" direction="in" />
|
|
<arg name="properties" type="a{sv}" direction="in" />
|
|
<arg name="stream_path" type="o" direction="out" />
|
|
</method>
|
|
|
|
<!--
|
|
RecordWindow:
|
|
@properties: Properties used determining what window to select
|
|
@stream_path: Path to the new stream object
|
|
|
|
Record a single window. The cursor will not be included.
|
|
|
|
Available @properties include:
|
|
|
|
* "window-id" (t): Id of the window to record.
|
|
|
|
-->
|
|
<method name="RecordWindow">
|
|
<arg name="properties" type="a{sv}" direction="in" />
|
|
<arg name="stream_path" type="o" direction="out" />
|
|
</method>
|
|
</interface>
|
|
|
|
<!--
|
|
org.gnome.Mutter.ScreenCast.Stream:
|
|
@short_description: Screen cast stream
|
|
-->
|
|
<interface name="org.gnome.Mutter.ScreenCast.Stream">
|
|
|
|
<!--
|
|
PipeWireStreamAdded:
|
|
@short_description: Pipewire stream added
|
|
|
|
A signal emitted when PipeWire stream for the screen cast stream has
|
|
been created. The @node_id corresponds to the PipeWire stream node.
|
|
-->
|
|
<signal name="PipeWireStreamAdded">
|
|
<annotation name="org.gtk.GDBus.C.Name" value="pipewire-stream-added"/>
|
|
<arg name="node_id" type="u" direction="out" />
|
|
</signal>
|
|
|
|
<!--
|
|
Parameters:
|
|
@short_description: Optional stream parameters
|
|
|
|
Available parameters include:
|
|
|
|
* "position" (ii): Position of the source of the stream in the
|
|
compositor coordinate space.
|
|
* "size" (ii): Size of the source of the stream in the compositor
|
|
coordinate space.
|
|
-->
|
|
<property name="Parameters" type="a{sv}" access="read" />
|
|
|
|
</interface>
|
|
|
|
</node>
|