ilmControl: added client API for synchronized surfaces
authorMichael Schuldt <michael.schuldt@bmw.de>
Fri, 5 Jul 2013 10:38:26 +0000 (12:38 +0200)
committerTimo Lotterbach <timo.lotterbach@bmw-carit.de>
Fri, 5 Jul 2013 10:56:48 +0000 (12:56 +0200)
Signed-off-by: Michael Schuldt <michael.schuldt@bmw.de>
LayerManagerClient/ilmControl/include/ilm_control.h
LayerManagerClient/ilmControl/src/ilm_control.c
RELEASE_NOTES.txt

index ef8b154..308dcba 100644 (file)
@@ -569,6 +569,27 @@ ilmErrorTypes ilm_layerAddNotification(t_ilm_layer layer, layerNotificationFunc
  */
 ilmErrorTypes ilm_layerRemoveNotification(t_ilm_layer layer);
 
+/**
+ * \brief Enables sychronized composition dependent on the surface list
+ * \ingroup ilmControl
+ * \param[in] pSurfaceId array of surface ids
+ * \param[in] number number of surfaceids in the given array
+ * \return ILM_SUCCESS if the method call was successful
+ * \return ILM_FAILED if the client can not call the method on the service.
+ */
+ilmErrorTypes ilm_setSynchronizedSurfaces(t_ilm_surface *pSurfacId, const t_ilm_uint number);
+
+/**
+ * \brief Disables sychronized composition dependent on the surface list
+ * \ingroup ilmControl
+ * \param[in] pSurfaceId array of surface ids
+ * \param[in] number number of surfaceids in the given array
+ * \return ILM_SUCCESS if the method call was successful
+ * \return ILM_FAILED if the client can not call the method on the service.
+ */
+ilmErrorTypes ilm_removeSynchronizedSurfaces(t_ilm_surface *pSurfacId, const t_ilm_uint number);
+
+
 #ifdef __cplusplus
 } /**/
 #endif /* __cplusplus */
index 8bbc290..b339cdd 100644 (file)
@@ -1037,3 +1037,40 @@ ilmErrorTypes ilm_layerRemoveNotification(t_ilm_layer layer)
     gIpcModule.destroyMessage(command);
     return returnValue;
 }
+
+ilmErrorTypes ilm_setSynchronizedSurfaces(t_ilm_surface *pSurfaceId, const t_ilm_uint number)
+{
+    ilmErrorTypes returnValue = ILM_FAILED;
+
+    t_ilm_message response = 0;
+    t_ilm_message command = gIpcModule.createMessage("SetSynchronizedSurfaces");
+    if (pSurfaceId
+        && command
+        && gIpcModule.appendUintArray(command, pSurfaceId, number)
+        && sendAndWaitForResponse(command, &response, RESPONSE_TIMEOUT_IN_MS, &returnValue))
+    {
+        returnValue = ILM_SUCCESS;
+    }
+    gIpcModule.destroyMessage(response);
+    gIpcModule.destroyMessage(command);
+    return returnValue;
+}
+
+ilmErrorTypes ilm_removeSynchronizedSurfaces(t_ilm_surface *pSurfaceId, const t_ilm_uint number)
+{
+    ilmErrorTypes returnValue = ILM_FAILED;
+
+    t_ilm_message response = 0;
+    t_ilm_message command = gIpcModule.createMessage("RemoveSynchronizedSurfaces");
+    if (pSurfaceId
+        && command
+        && gIpcModule.appendUintArray(command, pSurfaceId, number)
+        && sendAndWaitForResponse(command, &response, RESPONSE_TIMEOUT_IN_MS, &returnValue))
+    {
+        returnValue = ILM_SUCCESS;
+    }
+    gIpcModule.destroyMessage(response);
+    gIpcModule.destroyMessage(command);
+    return returnValue;
+}
+
index 8dea33c..9ea8f28 100644 (file)
@@ -5,9 +5,17 @@ This version includes the following enhancements.
 Bugfixes:
 - Fixing minor memory leaks
 - LayerManagerCommands: fixed array handling, memory leak removed
+- X11WindowSystem: fixed resize handling
 - X11EglImage: fixing a issue which causes memory leak in XServer
 - dbusIpcModule: DBUS Interspection result corrected
 
+Improvements:
+- Improved watchdog plug-in monitoring, to detect possible
+  deadlock in plug-ins and mainthread  
+- adding new interface ilm_setSynchronizedSurfaces, ilm_removeSynchronizedSurfaces
+  to establish synchronized composition on dedicated surfaces this avoids e.g.
+  flickering during night/day switch.
+
 Version 1.0
 ------------------
 This version includes the following enhancements.