2017-06-21 06:23:44 +00:00
|
|
|
<!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
|
2018-01-29 06:52:06 +00:00
|
|
|
|
|
|
|
This API is private and not intended to be used outside of the integrated
|
|
|
|
system that uses libmutter. No compatibility between versions are
|
|
|
|
promised.
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<interface name="org.gnome.Mutter.ScreenCast">
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
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.
|
|
|
|
* "disable-animations" (b): Set to "true" if the screen cast application
|
|
|
|
would prefer animations to be globally
|
|
|
|
disabled, while the session is running.
|
|
|
|
Default is "false".
|
|
|
|
Available since version 3.
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<method name="CreateSession">
|
|
|
|
<arg name="properties" type="a{sv}" direction="in" />
|
|
|
|
<arg name="session_path" type="o" direction="out" />
|
|
|
|
</method>
|
|
|
|
|
2018-01-29 06:52:06 +00:00
|
|
|
<!--
|
|
|
|
Version:
|
|
|
|
@short_description: API version
|
|
|
|
-->
|
|
|
|
<property name="Version" type="i" access="read" />
|
|
|
|
|
2017-06-21 06:23:44 +00:00
|
|
|
</interface>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
org.gnome.Mutter.ScreenCast.Session:
|
|
|
|
@short_description: Screen cast session
|
|
|
|
-->
|
|
|
|
<interface name="org.gnome.Mutter.ScreenCast.Session">
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
Start:
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Start the screen cast session
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<method name="Start" />
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
Stop:
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Stop the screen cast session
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<method name="Stop" />
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
Closed:
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
The session has closed.
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<signal name="Closed" />
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
RecordMonitor:
|
|
|
|
@connector: Connector of the monitor to record
|
|
|
|
@properties: Properties
|
|
|
|
@stream_path: Path to the new stream object
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Record a single monitor.
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Available @properties include:
|
2018-12-14 16:47:57 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
|
|
|
Available since API version 2.
|
|
|
|
* "is-recording" (b): Whether this is a screen recording. May be
|
|
|
|
be used for choosing appropriate visual feedback.
|
|
|
|
Default: false. Available since API version 4.
|
2018-12-14 16:47:57 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Available cursor mode values:
|
2018-12-14 16:47:57 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
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
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<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>
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
RecordWindow:
|
|
|
|
@properties: Properties used determining what window to select
|
|
|
|
@stream_path: Path to the new stream object
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Supported since API version 2.
|
2019-01-30 14:16:19 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Record a single window. The cursor will not be included.
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Available @properties include:
|
2018-10-15 10:08:29 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
* "window-id" (t): Id of the window to record.
|
|
|
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see RecordMonitor).
|
|
|
|
* "is-recording" (b): Whether this is a screen recording. May be
|
|
|
|
be used for choosing panel icon.
|
|
|
|
Default: false. Available since API version 4.
|
2018-10-15 10:08:29 +00:00
|
|
|
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<method name="RecordWindow">
|
|
|
|
<arg name="properties" type="a{sv}" direction="in" />
|
|
|
|
<arg name="stream_path" type="o" direction="out" />
|
2020-03-04 20:42:52 +00:00
|
|
|
</method>
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
RecordArea:
|
|
|
|
@x: X position of the recorded area
|
|
|
|
@y: Y position of the recorded area
|
|
|
|
@width: width of the recorded area
|
|
|
|
@height: height of the recorded area
|
|
|
|
@properties: Properties
|
|
|
|
@stream_path: Path to the new stream object
|
|
|
|
|
|
|
|
Record an area of the stage. The coordinates are in stage coordinates.
|
|
|
|
The size of the stream does not necessarily match the size of the
|
|
|
|
recorded area, and will depend on DPI scale of the affected monitors.
|
|
|
|
|
|
|
|
Available @properties include:
|
|
|
|
|
|
|
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
|
|
|
Available since API version 2.
|
|
|
|
* "is-recording" (b): Whether this is a screen recording. May be
|
|
|
|
be used for choosing panel icon.
|
|
|
|
Default: false. Available since API version 4.
|
|
|
|
|
|
|
|
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
|
2020-03-04 20:42:52 +00:00
|
|
|
-->
|
|
|
|
<method name="RecordArea">
|
|
|
|
<arg name="x" type="i" direction="in" />
|
|
|
|
<arg name="y" type="i" direction="in" />
|
|
|
|
<arg name="width" type="i" direction="in" />
|
|
|
|
<arg name="height" type="i" direction="in" />
|
|
|
|
<arg name="properties" type="a{sv}" direction="in" />
|
|
|
|
<arg name="stream_path" type="o" direction="out" />
|
2021-02-01 09:57:35 +00:00
|
|
|
</method>
|
|
|
|
|
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
RecordVirtual:
|
|
|
|
@properties: Properties
|
|
|
|
@stream_path: Path to the new stream object
|
2021-02-01 09:57:35 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Record a virtual area that will be represented as a virtual monitor. The
|
|
|
|
width and height corresponds to the non-scaled intended stream size.
|
2021-02-01 09:57:35 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Available @properties include:
|
2021-02-01 09:57:35 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
* "cursor-mode" (u): Cursor mode. Default: 'hidden' (see below)
|
|
|
|
Available since API version 2.
|
|
|
|
* "is-platform" (b): Whether this virtual output should be considered
|
|
|
|
part of the platform, meaning it will not be
|
|
|
|
interpreted as if the screen is shared, but more
|
|
|
|
transparently as if it was a real monitor.
|
|
|
|
Available since API version 3. Default: FALSE.
|
2021-02-01 09:57:35 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Available cursor mode values:
|
2021-02-01 09:57:35 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
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
|
2021-02-01 09:57:35 +00:00
|
|
|
-->
|
|
|
|
<method name="RecordVirtual">
|
|
|
|
<arg name="properties" type="a{sv}" direction="in" />
|
|
|
|
<arg name="stream_path" type="o" direction="out" />
|
2017-06-21 06:23:44 +00:00
|
|
|
</method>
|
|
|
|
</interface>
|
|
|
|
|
|
|
|
<!--
|
|
|
|
org.gnome.Mutter.ScreenCast.Stream:
|
|
|
|
@short_description: Screen cast stream
|
|
|
|
-->
|
|
|
|
<interface name="org.gnome.Mutter.ScreenCast.Stream">
|
|
|
|
|
2021-07-31 18:46:23 +00:00
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
Start:
|
|
|
|
@short_description: Start new stream
|
2021-07-31 18:46:23 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Start a stream of an already started session.
|
2021-07-31 18:46:23 +00:00
|
|
|
-->
|
|
|
|
<method name="Start"/>
|
|
|
|
|
screencast: Add ability to stop streams
When a stream is destroyed by a consumer, mutter won't be able to
recognize that.
For mutter, the stream just paused, but did not disconnect, because the
connection state of a PipeWire stream only represents, whether the
respective PipeWire context is connected to PipeWire.
In addition to that, it may be the case, that the stream consumer just
recreates the stream.
So even if mutter would be able to know, when the stream consumer
destroyed a stream, but not the whole screencast or remote-desktop
session, then mutter would not know, whether the stream will be resumed
eventually or not.
So, add an explicit API call to the screencast interface to stop a
stream.
For virtual streams, this also means, that the respective virtual
monitor is destroyed.
Closes: https://gitlab.gnome.org/GNOME/mutter/-/issues/2889
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3307>
2023-09-29 10:33:17 +00:00
|
|
|
<!--
|
|
|
|
Stop:
|
|
|
|
@short_description: Stop the stream
|
|
|
|
|
|
|
|
Stop the started stream.
|
|
|
|
-->
|
|
|
|
<method name="Stop"/>
|
|
|
|
|
2017-06-21 06:23:44 +00:00
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
PipeWireStreamAdded:
|
|
|
|
@short_description: Pipewire stream added
|
2017-06-21 06:23:44 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
A signal emitted when PipeWire stream for the screen cast stream has
|
|
|
|
been created. The @node_id corresponds to the PipeWire stream node.
|
2017-06-21 06:23:44 +00:00
|
|
|
-->
|
|
|
|
<signal name="PipeWireStreamAdded">
|
|
|
|
<annotation name="org.gtk.GDBus.C.Name" value="pipewire-stream-added"/>
|
2017-06-28 07:17:32 +00:00
|
|
|
<arg name="node_id" type="u" direction="out" />
|
2017-06-21 06:23:44 +00:00
|
|
|
</signal>
|
|
|
|
|
2017-09-12 01:19:51 +00:00
|
|
|
<!--
|
2022-01-25 10:02:38 +00:00
|
|
|
Parameters:
|
|
|
|
@short_description: Optional stream parameters
|
2017-09-12 01:19:51 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
Available parameters include:
|
2017-09-12 01:19:51 +00:00
|
|
|
|
2022-01-25 10:02:38 +00:00
|
|
|
* "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.
|
2022-08-02 17:08:10 +00:00
|
|
|
* "output-name" s: Xrandr name of the output in case of X11 and
|
|
|
|
wl_output.name in case of Wayland. Available only
|
|
|
|
for monitor streams.
|
2017-09-12 01:19:51 +00:00
|
|
|
-->
|
|
|
|
<property name="Parameters" type="a{sv}" access="read" />
|
|
|
|
|
2017-06-21 06:23:44 +00:00
|
|
|
</interface>
|
|
|
|
|
|
|
|
</node>
|