summaryrefslogtreecommitdiff
path: root/src/org.gnome.Mutter.ScreenCast.xml
blob: 61345564b878d9b08184f3c18bad530a8aaf2d62 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<!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

      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: 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.
    -->
    <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 the screen cast session
    -->
    <method name="Start" />

    <!--
	Stop:

	Stop the screen cast session
    -->
    <method name="Stop" />

    <!--
	Closed:

	The session has closed.
    -->
    <signal name="Closed" />

    <!--
	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: (none)
    -->
    <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>

    <!--
	RecordWindow:
	@properties: Properties used determining what window to select
	@stream_path: Path to the new stream object

	Record a single window.

	Available @properties include: (none)
    -->
    <method name="RecordWindow">
      <arg name="properties" type="a{sv}" direction="in" />
      <arg name="stream_path" type="o" direction="out" />
    </method>
  </interface>

  <!--
       org.gnome.Mutter.ScreenCast.Stream:
       @short_description: Screen cast stream
  -->
  <interface name="org.gnome.Mutter.ScreenCast.Stream">

    <!--
	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>