[gnome-remote-desktop] screen-cast: Synchronize screencast API with API in mutter
- From: Jonas Ådahl <jadahl src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-remote-desktop] screen-cast: Synchronize screencast API with API in mutter
- Date: Thu, 27 Jan 2022 08:52:56 +0000 (UTC)
commit ee8fb38abc4c8872aaa8d8c9195ffc2c34fe92e0
Author: Pascal Nowack <Pascal Nowack gmx de>
Date: Tue Nov 23 10:28:14 2021 +0100
screen-cast: Synchronize screencast API with API in mutter
The screencast API in mutter received support for creating virtual
monitors.
Synchronize the screencast API so that gnome-remote-desktop can make
use of the changes.
src/org.gnome.Mutter.ScreenCast.xml | 186 ++++++++++++++++++++++++++++++------
1 file changed, 157 insertions(+), 29 deletions(-)
---
diff --git a/src/org.gnome.Mutter.ScreenCast.xml b/src/org.gnome.Mutter.ScreenCast.xml
index 30b94543..54d29654 100644
--- a/src/org.gnome.Mutter.ScreenCast.xml
+++ b/src/org.gnome.Mutter.ScreenCast.xml
@@ -7,59 +7,88 @@
org.gnome.Mutter.ScreenCast:
@short_description: Screen cast interface
- Available @properties (see RecordMonitor and RecordWindow)
+ 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 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.
+ 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.
-->
<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:
- Start the screen cast session
+ Start the screen cast session
-->
<method name="Start" />
<!--
- Stop:
+ Stop:
- Stop the screen cast session
+ Stop the screen cast session
-->
<method name="Stop" />
<!--
- Closed:
+ Closed:
- The session has closed.
+ The session has closed.
-->
<signal name="Closed" />
<!--
- RecordMonitor:
- @connector: Connector of the monitor to record
- @properties: Properties
- @session: Path to the new session object
+ 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:
- Record a single monitor.
+ * "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.
- Available @properties include: (none)
+ 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" />
@@ -68,34 +97,133 @@
</method>
<!--
- RecordWindow:
- @properties: Properties
- @session: Path to the new session object
+ RecordWindow:
+ @properties: Properties used determining what window to select
+ @stream_path: Path to the new stream object
+
+ Supported since API version 2.
- Record a single monitor.
+ Record a single window. The cursor will not be included.
+
+ Available @properties include:
+
+ * "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.
- Available @properties include: (none)
-->
<method name="RecordWindow">
<arg name="properties" type="a{sv}" direction="in" />
<arg name="stream_path" type="o" direction="out" />
</method>
+
+ <!--
+ 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
+ -->
+ <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" />
+ </method>
+
+ <!--
+ RecordVirtual:
+ @properties: Properties
+ @stream_path: Path to the new stream object
+
+ Record a virtual area that will be represented as a virtual monitor. The
+ width and height corresponds to the non-scaled intended stream size.
+
+ Available @properties include:
+
+ * "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.
+
+ 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="RecordVirtual">
+ <arg name="properties" type="a{sv}" direction="in" />
+ <arg name="stream_path" type="o" direction="out" />
+ </method>
</interface>
<!--
- org.gnome.Mutter.ScreenCast.Session:
- @short_description: Screen cast session
+ org.gnome.Mutter.ScreenCast.Stream:
+ @short_description: Screen cast stream
-->
<interface name="org.gnome.Mutter.ScreenCast.Stream">
<!--
- PipeWireStreamAdded:
+ Start:
+ @short_description: Start new stream
+
+ Start a stream of an already started session.
+ -->
+ <method name="Start"/>
+
+ <!--
+ 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>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]