Warning, /plasma/krdp/src/xdp_dbus_screencast_interface.xml is written in an unsupported language. File is not indexed.
0001 <?xml version="1.0"?>
0002 <!--
0003 Copyright (C) 2017-2018 Red Hat, Inc.
0004
0005 This library is free software; you can redistribute it and/or
0006 modify it under the terms of the GNU Lesser General Public
0007 License as published by the Free Software Foundation; either
0008 version 2 of the License, or (at your option) any later version.
0009
0010 This library is distributed in the hope that it will be useful,
0011 but WITHOUT ANY WARRANTY; without even the implied warranty of
0012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
0013 Lesser General Public License for more details.
0014
0015 You should have received a copy of the GNU Lesser General Public
0016 License along with this library. If not, see <http://www.gnu.org/licenses/>.
0017 -->
0018
0019 <node name="/" xmlns:doc="http://www.freedesktop.org/dbus/1.0/doc.dtd">
0020 <!--
0021 org.freedesktop.portal.ScreenCast:
0022 @short_description: Screen cast portal
0023 -->
0024 <interface name="org.freedesktop.portal.ScreenCast">
0025 <!--
0026 CreateSession:
0027 @options: Vardict with optional further information
0028 @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0029
0030 Create a screen cast session. A successfully created session can at
0031 any time be closed using org.freedesktop.portal.Session::Close, or may
0032 at any time be closed by the portal implementation, which will be
0033 signalled via org.freedesktop.portal.Session::Closed.
0034
0035 The following results get returned via the #org.freedesktop.portal.Request::Response signal:
0036 <variablelist>
0037 <varlistentry>
0038 <term>session_handle o</term>
0039 <listitem><para>
0040 The session handle. An object path for the
0041 #org.freedesktop.portal.Session object representing the created
0042 session.
0043 </para></listitem>
0044 </varlistentry>
0045 </variablelist>
0046 -->
0047 <method name="CreateSession">
0048 <arg type="a{sv}" name="options" direction="in"/>
0049 <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantMap"/>
0050 <arg type="o" name="handle" direction="out"/>
0051 </method>
0052 <!--
0053 SelectSources:
0054 @session_handle: Object path for the #org.freedesktop.portal.Session object
0055 @options: Vardict with optional further information
0056 @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0057
0058 Configure what the screen cast session should record. This method must
0059 be called before starting the session.
0060
0061 Passing invalid input to this method will cause the session to be
0062 closed. An application may only attempt to select sources once per
0063 session.
0064
0065 Supported keys in the @options vardict include:
0066 <variablelist>
0067 <varlistentry>
0068 <term>types u</term>
0069 <listitem><para>
0070 Bitmask of what types of content to record. Default is MONITOR.
0071 </para></listitem>
0072 </varlistentry>
0073 <varlistentry>
0074 <term>multiple b</term>
0075 <listitem><para>
0076 Whether to allow selecting multiple sources. Default is no.
0077 </para></listitem>
0078 </varlistentry>
0079 </variablelist>
0080
0081 For available source types, see the AvailableSourceTypes property.
0082 -->
0083 <method name="SelectSources">
0084 <arg type="o" name="session_handle" direction="in"/>
0085 <arg type="a{sv}" name="options" direction="in"/>
0086 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
0087 <arg type="o" name="handle" direction="out"/>
0088 </method>
0089 <!--
0090 Start:
0091 @session_handle: Object path for the #org.freedesktop.portal.Session object
0092 @parent_window: Identifier for the application window
0093 @options: Vardict with optional further information
0094 @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0095
0096 Start the screen cast session. This will typically result the portal
0097 presenting a dialog letting the user do the selection set up by
0098 SelectSources. An application can only attempt start a session once.
0099
0100 A screen cast session may only be started after having selected sources
0101 using org.freedesktop.portal.ScreenCast::SelectSources.
0102
0103 The @parent_window identifier must be of the form "x11:$XID" for an X11
0104 window. Support for other window systems may be added in the future.
0105
0106 The following results get returned via the
0107 #org.freedesktop.portal.Request::Response signal:
0108 <variablelist>
0109 <varlistentry>
0110 <term>streams a(ua{sv})</term>
0111 <listitem><para>
0112 An array of PipeWire streams. Each stream consists of a PipeWire
0113 node ID (the first element in the tuple, and a Vardict of
0114 properties.
0115
0116 The array will contain a single stream if 'multiple' (see
0117 SelectSources) was set to 'false', or at least one stream if
0118 'multiple' was set to 'true' as part of the SelectSources method.
0119 </para></listitem>
0120 </varlistentry>
0121 </variablelist>
0122
0123 Stream properties include:
0124 <variablelist>
0125 <varlistentry>
0126 <term>position (ii)</term>
0127 <listitem><para>
0128 A tuple consisting of the position (x, y) in the compositor
0129 coordinate space. Note that the position may not be equivalent to a
0130 position in a pixel coordinate space. Only available for monitor
0131 streams.
0132 </para></listitem>
0133 </varlistentry>
0134 <varlistentry>
0135 <term>size (ii)</term>
0136 <listitem><para>
0137 A tuple consisting of (width, height). The size represents the size
0138 of the stream as it is displayed in the compositor coordinate
0139 space. Note that this size may not be equivalent to a size in a
0140 pixel coordinate space. The size may differ from the size of the
0141 stream.
0142 </para></listitem>
0143 </varlistentry>
0144 </variablelist>
0145 -->
0146 <method name="Start">
0147 <arg type="o" name="session_handle" direction="in"/>
0148 <arg type="s" name="parent_window" direction="in"/>
0149 <arg type="a{sv}" name="options" direction="in"/>
0150 <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QVariantMap"/>
0151 <arg type="o" name="handle" direction="out"/>
0152 </method>
0153 <!--
0154 OpenPipeWireRemote:
0155 @session_handle: Object path for the #org.freedesktop.portal.Session object
0156 @options: Vardict with optional further information
0157 @fd: File descriptor of an open PipeWire remote.
0158
0159 Open a file descriptor to the PipeWire remote where the screen cast
0160 streams are available. The file descriptor should be used to create a
0161 <classname>pw_remote</classname> object, by using
0162 <function>pw_remote_connect_fd</function>. Only the screen cast stream
0163 nodes will be available from this PipeWire node.
0164 -->
0165 <method name="OpenPipeWireRemote">
0166 <annotation name="org.gtk.GDBus.C.Name" value="open_pipewire_remote"/>
0167 <annotation name="org.gtk.GDBus.C.UnixFD" value="true"/>
0168 <arg type="o" name="session_handle" direction="in"/>
0169 <arg type="a{sv}" name="options" direction="in"/>
0170 <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap"/>
0171 <arg type="h" name="fd" direction="out"/>
0172 </method>
0173 <!--
0174 AvailableSourceTypes:
0175
0176 A bitmask of available source types. Currently defined types are:
0177
0178 <simplelist>
0179 <member>1: MONITOR</member>
0180 <member>2: WINDOW</member>
0181 </simplelist>
0182 -->
0183 <property name="AvailableSourceTypes" type="u" access="read"/>
0184 <property name="version" type="u" access="read"/>
0185 </interface>
0186 </node>