Warning, /plasma/kpipewire/tests/org.freedesktop.portal.RemoteDesktop.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.RemoteDesktop:
0022       @short_description: Remote desktop portal
0023 
0024       The Remote desktop portal allows to create remote desktop sessions.
0025 
0026       This documentation describes version 1 of this interface.
0027   -->
0028   <interface name="org.freedesktop.portal.RemoteDesktop">
0029     <!--
0030         CreateSession:
0031         @options: Vardict with optional further information
0032         @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0033 
0034         Create a remote desktop session.
0035 
0036         A remote desktop session is used to allow remote controlling a desktop
0037         session.
0038 
0039         A remote desktop session may only be started and stopped with this interface,
0040         but you can use the #org.freedesktop.portal.Session object created with this
0041         method together with certain methods on the #org.freedesktop.portal.ScreenCast
0042         interface. Specifically, you can call
0043         org.freedesktop.portal.ScreenCast.SelectSources() to also get screen content,
0044         and org.freedesktop.portal.ScreenCast.OpenPipewireRemote() to acquire a file
0045         descriptor for a PipeWire remote. See #org.freedesktop.portal.ScreenCast for
0046         more information on how to use those methods.
0047 
0048         Supported keys in the @options vardict include:
0049         <variablelist>
0050           <varlistentry>
0051             <term>handle_token s</term>
0052             <listitem><para>
0053               A string that will be used as the last element of the @handle. Must be a valid
0054               object path element. See the #org.freedesktop.portal.Request documentation for
0055               more information about the @handle.
0056             </para></listitem>
0057           </varlistentry>
0058           <varlistentry>
0059             <term>session_handle_token s</term>
0060             <listitem><para>
0061               A string that will be used as the last element of the session handle. Must be a valid
0062               object path element. See the #org.freedesktop.portal.Session documentation for
0063               more information about the session handle.
0064             </para></listitem>
0065           </varlistentry>
0066         </variablelist>
0067 
0068         The following results get returned via the #org.freedesktop.portal.Request::Response signal:
0069         <variablelist>
0070           <varlistentry>
0071             <term>session_handle o</term>
0072             <listitem><para>
0073               The session handle. An object path for the
0074               #org.freedesktop.portal.Session object representing the created
0075               session.
0076             </para></listitem>
0077           </varlistentry>
0078         </variablelist>
0079     -->
0080     <method name="CreateSession">
0081       <arg type="a{sv}" name="options" direction="in"/>
0082       <annotation name="org.qtproject.QtDBus.QtTypeName.In0" value="QVariantMap" />
0083       <arg type="o" name="handle" direction="out"/>
0084     </method>
0085     <!--
0086         SelectDevices:
0087         @session_handle: Object path for the #org.freedesktop.portal.Session object
0088         @options: Vardict with optional further information
0089         @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0090 
0091         Select input devices to remote control.
0092 
0093         Supported keys in the @options vardict include:
0094         <variablelist>
0095           <varlistentry>
0096             <term>handle_token s</term>
0097             <listitem><para>
0098               A string that will be used as the last element of the @handle. Must be a valid
0099               object path element. See the #org.freedesktop.portal.Request documentation for
0100               more information about the @handle.
0101             </para></listitem>
0102           </varlistentry>
0103           <varlistentry>
0104             <term>types u</term>
0105             <listitem><para>
0106               Bitmask of what device types to request remote controlling of.
0107               Default is all.
0108             </para></listitem>
0109           </varlistentry>
0110         </variablelist>
0111 
0112         For available source types, see the AvailableDeviceTypes property.
0113     -->
0114     <method name="SelectDevices">
0115       <arg type="o" name="session_handle" direction="in"/>
0116       <arg type="a{sv}" name="options" direction="in"/>
0117       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0118       <arg type="o" name="handle" direction="out"/>
0119     </method>
0120     <!--
0121         Start:
0122         @session_handle: Object path for the #org.freedesktop.portal.Session object
0123         @parent_window: Identifier for the application window, see <link linkend="parent_window">Common Conventions</link>
0124         @options: Vardict with optional further information
0125         @handle: Object path for the #org.freedesktop.portal.Request object representing this call
0126 
0127         Start the remote desktop session. This will typically result in the portal
0128         presenting a dialog letting the user select what to share, including
0129         devices and optionally screen content if screen cast sources was
0130         selected.
0131 
0132         Supported keys in the @options vardict include:
0133         <variablelist>
0134           <varlistentry>
0135             <term>handle_token s</term>
0136             <listitem><para>
0137               A string that will be used as the last element of the @handle. Must be a valid
0138               object path element. See the #org.freedesktop.portal.Request documentation for
0139               more information about the @handle.
0140             </para></listitem>
0141           </varlistentry>
0142         </variablelist>
0143 
0144         The following results get returned via the
0145         #org.freedesktop.portal.Request::Response signal:
0146         <variablelist>
0147           <varlistentry>
0148             <term>devices u</term>
0149             <listitem><para>
0150               A bitmask of the devices selected by the user.
0151             </para></listitem>
0152           </varlistentry>
0153         </variablelist>
0154 
0155         If a screen cast source was selected, the results of the
0156         #org.freedesktop.portal.ScreenCast.Start response signal may be
0157         included.
0158     -->
0159     <method name="Start">
0160       <arg type="o" name="session_handle" direction="in"/>
0161       <arg type="s" name="parent_window" direction="in"/>
0162       <arg type="a{sv}" name="options" direction="in"/>
0163       <annotation name="org.qtproject.QtDBus.QtTypeName.In2" value="QVariantMap" />
0164       <arg type="o" name="handle" direction="out"/>
0165     </method>
0166     <!--
0167         NotifyPointerMotion:
0168         @session_handle: Object path for the #org.freedesktop.portal.Session object
0169         @options: Vardict with optional further information
0170         @dx: Relative movement on the x axis
0171         @dy: Relative movement on the y axis
0172 
0173         Notify about a new relative pointer motion event. The (dx, dy) vector
0174         represents the new pointer position in the streams logical coordinate
0175         space.
0176     -->
0177     <method name="NotifyPointerMotion">
0178       <arg type="o" name="session_handle" direction="in"/>
0179       <arg type="a{sv}" name="options" direction="in"/>
0180       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0181       <arg type="d" name="dx" direction="in"/>
0182       <arg type="d" name="dy" direction="in"/>
0183     </method>
0184     <!--
0185         NotifyPointerMotionAbsolute:
0186         @session_handle: Object path for the #org.freedesktop.portal.Session object
0187         @options: Vardict with optional further information
0188         @stream: The PipeWire stream node the coordinate is relative to
0189         @x: Pointer motion x coordinate
0190         @y: Pointer motion y coordinate
0191 
0192         Notify about a new absolute pointer motion event. The (x, y) position
0193         represents the new pointer position in the streams logical coordinate
0194         space (see the logical_size stream property in
0195         #org.freedesktop.portal.ScreenCast).
0196     -->
0197     <method name="NotifyPointerMotionAbsolute">
0198       <arg type="o" name="session_handle" direction="in"/>
0199       <arg type="a{sv}" name="options" direction="in"/>
0200       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0201       <arg type="u" name="stream" direction="in"/>
0202       <arg type="d" name="x" direction="in"/>
0203       <arg type="d" name="y" direction="in"/>
0204     </method>
0205     <!--
0206         NotifyPointerButton:
0207         @session_handle: Object path for the #org.freedesktop.portal.Session object
0208         @options: Vardict with optional further information
0209         @button: The pointer button was pressed or released
0210         @state: The new state of the button
0211 
0212         The pointer button is encoded according to Linux Evdev button codes.
0213 
0214         May only be called if POINTER access was provided after starting the
0215         session.
0216 
0217         Available button states:
0218         <simplelist>
0219           <member>0: Released</member>
0220           <member>1: Pressed</member>
0221         </simplelist>
0222     -->
0223     <method name="NotifyPointerButton">
0224       <arg type="o" name="session_handle" direction="in"/>
0225       <arg type="a{sv}" name="options" direction="in"/>
0226       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0227       <arg type="i" name="button" direction="in"/>
0228       <arg type="u" name="state" direction="in"/>
0229     </method>
0230     <!--
0231         NotifyPointerAxis:
0232         @session_handle: Object path for the #org.freedesktop.portal.Session object
0233         @options: Vardict with optional further information
0234         @dx: Relative axis movement on the x axis
0235         @dy: Relative axis movement on the y axis
0236 
0237         The axis movement from a 'smooth scroll' device, such as a touchpad.
0238         When applicable, the size of the motion delta should be equivalent to
0239         the motion vector of a pointer motion done using the same advice.
0240 
0241         May only be called if POINTER access was provided after starting the
0242         session.
0243 
0244         Supported keys in the @options vardict include:
0245         <variablelist>
0246           <varlistentry>
0247             <term>finish b</term>
0248             <listitem><para>
0249               If set to true, this is the last axis event in a series, for
0250               example as a result of the fingers being lifted from a touchpad
0251               after a two-finger scroll.  Default is false.
0252             </para></listitem>
0253           </varlistentry>
0254         </variablelist>
0255     -->
0256     <method name="NotifyPointerAxis">
0257       <arg type="o" name="session_handle" direction="in"/>
0258       <arg type="a{sv}" name="options" direction="in"/>
0259       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0260       <arg type="d" name="dx" direction="in"/>
0261       <arg type="d" name="dy" direction="in"/>
0262     </method>
0263     <!--
0264         NotifyPointerAxisDiscrete:
0265         @session_handle: Object path for the #org.freedesktop.portal.Session object
0266         @options: Vardict with optional further information
0267         @axis: The axis that was scrolled
0268         @steps: The number of steps scrolled
0269 
0270         May only be called if POINTER access was provided after starting the
0271         session.
0272 
0273         Available axes:
0274         <simplelist>
0275           <member>0: Vertical scroll</member>
0276           <member>1: Horizontal scroll</member>
0277         </simplelist>
0278     -->
0279     <method name="NotifyPointerAxisDiscrete">
0280       <arg type="o" name="session_handle" direction="in"/>
0281       <arg type="a{sv}" name="options" direction="in"/>
0282       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0283       <arg type="u" name="axis" direction="in"/>
0284       <arg type="i" name="steps" direction="in"/>
0285     </method>
0286     <!--
0287         NotifyKeyboardKeycode:
0288         @session_handle: Object path for the #org.freedesktop.portal.Session object
0289         @options: Vardict with optional further information
0290         @keycode: Keyboard code that was pressed or released
0291         @state: New state of keyboard keycode
0292 
0293         May only be called if KEYBOARD access was provided after starting the
0294         session.
0295 
0296         Available keyboard keycode states:
0297         <simplelist>
0298           <member>0: Released</member>
0299           <member>1: Pressed</member>
0300         </simplelist>
0301     -->
0302     <method name="NotifyKeyboardKeycode">
0303       <arg type="o" name="session_handle" direction="in"/>
0304       <arg type="a{sv}" name="options" direction="in"/>
0305       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0306       <arg type="i" name="keycode" direction="in"/>
0307       <arg type="u" name="state" direction="in"/>
0308     </method>
0309     <!--
0310         NotifyKeyboardKeysym:
0311         @session_handle: Object path for the #org.freedesktop.portal.Session object
0312         @options: Vardict with optional further information
0313         @keysym: Keyboard symbol that was pressed or released
0314         @state: New state of keyboard keysym
0315 
0316         May only be called if KEYBOARD access was provided after starting the
0317         session.
0318 
0319         Available keyboard keysym states:
0320         <simplelist>
0321           <member>0: Released</member>
0322           <member>1: Pressed</member>
0323         </simplelist>
0324     -->
0325     <method name="NotifyKeyboardKeysym">
0326       <arg type="o" name="session_handle" direction="in"/>
0327       <arg type="a{sv}" name="options" direction="in"/>
0328       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0329       <arg type="i" name="keysym" direction="in"/>
0330       <arg type="u" name="state" direction="in"/>
0331     </method>
0332     <!--
0333         NotifyTouchDown:
0334         @session_handle: Object path for the #org.freedesktop.portal.Session object
0335         @options: Vardict with optional further information
0336         @stream: The PipeWire stream node the coordinate is relative to
0337         @slot: Touch slot where touch point appeared
0338         @x: Touch down x coordinate
0339         @y: Touch down y coordinate
0340 
0341         May only be called if TOUCHSCREEN access was provided after starting the
0342         session.
0343 
0344         Notify about a new touch down event. The (x, y) position
0345         represents the new touch point position in the streams logical
0346         coordinate space (see the logical_size stream property in
0347         #org.freedesktop.portal.ScreenCast).
0348     -->
0349     <method name="NotifyTouchDown">
0350       <arg type="o" name="session_handle" direction="in"/>
0351       <arg type="a{sv}" name="options" direction="in"/>
0352       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0353       <arg type="u" name="stream" direction="in"/>
0354       <arg type="u" name="slot" direction="in"/>
0355       <arg type="d" name="x" direction="in"/>
0356       <arg type="d" name="y" direction="in"/>
0357     </method>
0358     <!--
0359         NotifyTouchMotion:
0360         @session_handle: Object path for the #org.freedesktop.portal.Session object
0361         @options: Vardict with optional further information
0362         @stream: The PipeWire stream node the coordinate is relative to
0363         @slot: Touch slot where touch point appeared
0364         @x: Touch motion x coordinate
0365         @y: Touch motion y coordinate
0366 
0367         May only be called if TOUCHSCREEN access was provided after starting the
0368         session.
0369 
0370         Notify about a new touch motion event. The (x, y) position
0371         represents where the touch point position in the streams logical
0372         coordinate space moved (see the logical_size stream property in
0373         #org.freedesktop.portal.ScreenCast).
0374     -->
0375     <method name="NotifyTouchMotion">
0376       <arg type="o" name="session_handle" direction="in"/>
0377       <arg type="a{sv}" name="options" direction="in"/>
0378       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0379       <arg type="u" name="stream" direction="in"/>
0380       <arg type="u" name="slot" direction="in"/>
0381       <arg type="d" name="x" direction="in"/>
0382       <arg type="d" name="y" direction="in"/>
0383     </method>
0384     <!--
0385         NotifyTouchUp:
0386         @session_handle: Object path for the #org.freedesktop.portal.Session object
0387         @options: Vardict with optional further information
0388         @slot: Touch slot where touch point appeared
0389 
0390         May only be called if TOUCHSCREEN access was provided after starting the
0391         session.
0392 
0393         Notify about a new touch up event.
0394     -->
0395     <method name="NotifyTouchUp">
0396       <arg type="o" name="session_handle" direction="in"/>
0397       <arg type="a{sv}" name="options" direction="in"/>
0398       <annotation name="org.qtproject.QtDBus.QtTypeName.In1" value="QVariantMap" />
0399       <arg type="u" name="slot" direction="in"/>
0400     </method>
0401     <!--
0402         AvailableDeviceTypes:
0403 
0404         A bitmask of available source types. Currently defined types are:
0405 
0406         <simplelist>
0407           <member>1: KEYBOARD</member>
0408           <member>2: POINTER</member>
0409           <member>4: TOUCHSCREEN</member>
0410         </simplelist>
0411     -->
0412     <property name="AvailableDeviceTypes" type="u" access="read"/>
0413     <property name="version" type="u" access="read"/>
0414   </interface>
0415 </node>