Warning, /network/krfb/dbus/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>