virtual output: Add implementation for set_available_modes, connect and disconnect.
[platform/core/uifw/libtdm.git] / protocol / tdm.xml
index 18af57d..1248920 100644 (file)
 
 <protocol name="wl_tdm">
 
-    <interface name="wl_tdm_vblank" version="1">
+    <interface name="wl_tdm" version="1">
 
-        <event name="done">
-            <arg name="sequence" type="uint"/>
-            <arg name="tv_sec" type="uint"/>
-            <arg name="tv_usec" type="uint"/>
+        <description summary="the private protocol for TDM">
+      TDM uses the wayland protocol to communicate between tdm client and tdm server.
+        </description>
+
+        <event name="debug_message">
+            <arg name="message" type="string"/>
         </event>
 
+        <event name="debug_done" />
+
+        <request name="debug">
+            <arg name="options" type="string" summary="debug options"/>
+        </request>
+
+        <request name="create_output">
+            <arg name="name" type="string" summary="output's name. 'primary' or 'default' can be used for default."/>
+            <arg name="id" type="new_id" interface="wl_tdm_output"/>
+        </request>
+
+        <request name="create_voutput">
+            <arg name="name" type="string" summary=""/>
+            <arg name="id" type="new_id" interface="wl_tdm_voutput"/>
+        </request>
+
     </interface>
 
-    <interface name="wl_tdm" version="1">
+    <interface name="wl_tdm_output" version="1">
+        <description summary="TDM client output object">
+      When the DPMS of connection status of the output is changed, TDM server
+      will send wl_tdm_output.mode and wl_tdm_output.dpms event.
+        </description>
 
-        <enum name="error">
-            <entry name="invalid_name" value="0"/>
-            <entry name="operation_failed" value="1"/>
-        </enum>
+        <event name="mode">
+            <arg name="width" type="uint"/>
+            <arg name="height" type="uint"/>
+            <arg name="refresh" type="uint"/>
+            <arg name="error" type="uint" summary="error status enumeration"/>
+        </event>
 
-        <request name="wait_vblank">
+        <event name="connection">
+            <arg name="value" type="uint"/>
+            <arg name="error" type="uint" summary="error status enumeration"/>
+        </event>
+
+        <event name="dpms">
+            <arg name="value" type="uint"/>
+            <arg name="error" type="uint" summary="error status enumeration"/>
+        </event>
+
+        <request name="destroy" type="destructor"/>
+
+        <request name="create_vblank">
             <arg name="id" type="new_id" interface="wl_tdm_vblank"/>
+        </request>
+
+        <request name="watch_output_changes">
+            <arg name="enable" type="uint"/>
+        </request>
+
+        <request name="get_connection"/>
+
+        <request name="get_mode"/>
+
+        <request name="get_dpms"/>
+
+    </interface>
+
+    <interface name="wl_tdm_voutput" version="1">
+        <description summary="TDM client virtual output object">
+        </description>
+
+        <request name="destroy" type="destructor"/>
+
+        <request name="set_available_modes">
+            <arg name="index" type="uint" summary=""/>
+            <arg name="clock" type="uint" summary=""/>
+            <arg name="hdisplay" type="uint" summary=""/>
+            <arg name="hsync_start" type="uint" summary=""/>
+            <arg name="hsync_end" type="uint" summary=""/>
+            <arg name="htotal" type="uint" summary=""/>
+            <arg name="hskew" type="uint" summary=""/>
+            <arg name="vdisplay" type="uint" summary=""/>
+            <arg name="vsync_start" type="uint" summary=""/>
+            <arg name="vsync_end" type="uint" summary=""/>
+            <arg name="vtotal" type="uint" summary=""/>
+            <arg name="vscan" type="uint" summary=""/>
+            <arg name="vrefresh" type="uint" summary=""/>
+            <arg name="flags" type="uint" summary=""/>
+            <arg name="type" type="uint" summary=""/>
+            <arg name="name" type="string" summary=""/>
+        </request>
+
+        <request name="connect"/>
+
+        <request name="disconnect"/>
+
+        <event name="ack_message">
+            <arg name="msg" type="uint" enum="message" summary=""/>
+        </event>
+        <enum name="message">
+            <entry name="unknown" value="0" summary=""/>
+            <entry name="added" value="1" summary=""/>
+            <entry name="permission_denied" value="2" summary=""/>
+        </enum>
+    </interface>
+
+    <interface name="wl_tdm_vblank" version="1">
+
+        <event name="stamp">
+            <arg name="stamp" type="uint"/>
+        </event>
+
+        <event name="done">
+            <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
+            <arg name="sequence" type="uint" summary="the sequence number of the vblank"/>
+            <arg name="tv_sec" type="uint" summary="sec of the vblank"/>
+            <arg name="tv_usec" type="uint" summary="usec of the vblank"/>
+            <arg name="error" type="uint" summary="error status enumeration"/>
+        </event>
+
+        <event name="ttrace">
+            <arg name="enable" type="uint"/>
+        </event>
+
+        <request name="destroy" type="destructor"/>
+
+        <request name="set_name">
             <arg name="name" type="string"/>
-            <arg name="interval" type="int"/>
-            <arg name="req_sec" type="uint"/>
-            <arg name="req_usec" type="uint"/>
+        </request>
+
+        <request name="set_fps">
+            <arg name="fps" type="uint"/>
+        </request>
+
+        <request name="set_offset">
+            <arg name="offset" type="int"/>
+        </request>
+
+        <request name="set_enable_fake">
+            <arg name="enable_fake" type="uint"/>
+        </request>
+
+        <request name="wait_vblank">
+            <description summary="Wait for a HW vblank">
+          When wl_tdm_vblank.wait_vblank is called, TDM server will send the
+          wl_tdm_vblank.done event after interval vblanks. If enable_fake == 1,
+          TDM server will send the done event always. Otherwise, TDM server will
+          send the done event with TDM error value.
+            </description>
+
+            <arg name="interval" type="uint"/>
+            <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
+            <arg name="req_sec" type="uint" summary="sec of the request time in client side"/>
+            <arg name="req_usec" type="uint" summary="usec of the request time in client side"/>
+        </request>
+
+        <request name="wait_vblank_seq">
+            <arg name="sequence" type="uint" summary="the target sequence number"/>
+            <arg name="req_id" type="uint" summary="wait_vblank request ID"/>
+            <arg name="req_sec" type="uint" summary="sec of the request time in client side"/>
+            <arg name="req_usec" type="uint" summary="usec of the request time in client side"/>
         </request>
 
     </interface>