Changes to org.agl.homescreen interface
[staging/HomeScreen.git] / interfaces / homescreen.xml
index 55f4305..999b0e9 100644 (file)
  See the License for the specific language governing permissions and
  limitations under the License. -->
 <node>
-  <interface name="org.agl.homescreen">
-    <method name="hardKeyPressed">
-      <arg name="key" type="i" direction="in"/> <!-- using the inputevent.hpp InputEvent::HardKey type -->
-    </method>
-  </interface>
+<!--
+  org.agl.homescreen:
+  @short_description: A generic interface for the HomeScreen app.
+
+  This interface is a collection of methods from different functional areas to control the HomeScreen app.
+-->
+       <interface name="org.agl.homescreen">
+               <!--
+               hardKeyPressed:
+               @key: The key that was pressed using the inputevent.hpp InputEvent::HardKey type.
+
+               This is used to inject hard keys into the HomeScreen app.
+               -->
+               <method name="hardKeyPressed">
+                       <arg name="key" type="i" direction="in"/>
+               </method>
+               <!--
+               getSurfaceStatus:
+               @surfaceId: The given surface.
+               @status: The status can be unknown (-1), visible (0), invisible (1)
+
+               A surface can have three states. It can be visible, then it is shown on the screen.
+               It can be invisible, then it is not shown on the screen. Or the state is unknown.
+               -->
+               <method name="getSurfaceStatus">
+                       <arg name="surfaceId" type="i" direction="in"/>
+                       <arg name="status" type="i" direction="out"/>
+               </method>
+               <!--
+               requestSurfaceIdToFullScreen:
+               @surfaceId: The surface that request to be shown fullscreen.
+
+               This allows an application to set a surface to full screen.
+               -->
+               <method name="requestSurfaceIdToFullScreen">
+                       <arg name="surfaceId" type="i" direction="in"/>
+               </method>
+               <!--
+                 getAllSurfacesOfProcess:
+                 @pid: The PID of the process.
+                 @surfaceIds: A list of surfaces that were created by the process.
+
+                 The surface IDs can for example be used to assign them to a layout render area.
+               -->
+               <method name="getAllSurfacesOfProcess">
+                       <arg name="pid" type="i" direction="in"/>
+                       <arg name="surfaceIds" type="ai" direction="out"/>
+                       <annotation name="org.qtproject.QtDBus.QtTypeName.Out0" value="QList&lt;int&gt;"/>
+               </method>
+               <!--
+               renderSurfaceToArea:
+               @surfaceId: The surface that is requested.
+               @layoutArea: The layout area where the surface shall be rendered.
+
+               This is a special case. In the normal use case, one layout area is always filled completely
+               with the first surface, that the process creates (more precise: the surface with the lowest id).
+               By using this function, an app can request to position a different surface in the layout area.
+               -->
+               <method name="renderSurfaceToArea">
+                       <arg name="surfaceId" type="i" direction="in"/>
+                       <arg name="layoutArea" type="i" direction="in"/>
+               </method>
+       </interface>
 </node>