summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Schuldt <michael.schuldt@bmw.de>2013-07-05 12:38:26 +0200
committerTimo Lotterbach <timo.lotterbach@bmw-carit.de>2013-07-05 12:56:48 +0200
commite460fd26532781f4474e4cf2cc7661e546a2c764 (patch)
treec6084491482c4b1871a1ee18289c7c56dbe8dfcb
parentf0b9f4236dcc88e187c58d435eb3904584eca5d7 (diff)
downloadlayer_management-e460fd26532781f4474e4cf2cc7661e546a2c764.tar.gz
ilmControl: added client API for synchronized surfaces
Signed-off-by: Michael Schuldt <michael.schuldt@bmw.de>
-rw-r--r--LayerManagerClient/ilmControl/include/ilm_control.h21
-rw-r--r--LayerManagerClient/ilmControl/src/ilm_control.c37
-rw-r--r--RELEASE_NOTES.txt8
3 files changed, 66 insertions, 0 deletions
diff --git a/LayerManagerClient/ilmControl/include/ilm_control.h b/LayerManagerClient/ilmControl/include/ilm_control.h
index ef8b154..308dcba 100644
--- a/LayerManagerClient/ilmControl/include/ilm_control.h
+++ b/LayerManagerClient/ilmControl/include/ilm_control.h
@@ -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 */
diff --git a/LayerManagerClient/ilmControl/src/ilm_control.c b/LayerManagerClient/ilmControl/src/ilm_control.c
index 8bbc290..b339cdd 100644
--- a/LayerManagerClient/ilmControl/src/ilm_control.c
+++ b/LayerManagerClient/ilmControl/src/ilm_control.c
@@ -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;
+}
+
diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index 8dea33c..9ea8f28 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -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.