summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Fritzsch <marcus.fritzsch@xse.de>2014-07-21 17:26:26 +0200
committerNobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp>2014-08-12 22:15:13 +0900
commit85fcf107ff9fae3d6a00e15d5c12ed2116593431 (patch)
tree53d2a1c5344b3164410cd06bab7fec22163c4cf4
parent469e06de04f44265cf5f709f5a2a684e86fc21f4 (diff)
downloadwayland-ivi-extension-85fcf107ff9fae3d6a00e15d5c12ed2116593431.tar.gz
ilmControl: renamed get_instace, moved context locking inside it
Renamed get_instance() to sync_and_acquire_instance() to cleanly state that there is more than just return an instance pointer. Acquires the state lock and does a display_roundtrip_queue() Signed-off-by: Marcus Fritzsch <marcus.fritzsch@xse.de>
-rw-r--r--ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c253
1 files changed, 106 insertions, 147 deletions
diff --git a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
index c04458a..73d90d3 100644
--- a/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
+++ b/ivi-layermanagement-api/ilmControl/src/ilm_control_wayland_platform.c
@@ -401,7 +401,7 @@ static inline void unlock_context(struct ilm_control_context *ctx)
static int init_control(void);
-static struct ilm_control_context* get_instance(void);
+static struct ilm_control_context* sync_and_acquire_instance(void);
static int create_controller_layer(struct wayland_context *ctx, t_ilm_uint width, t_ilm_uint height, t_ilm_layer layerid);
@@ -1371,15 +1371,20 @@ init_control(void)
}
static struct ilm_control_context*
-get_instance(void)
+sync_and_acquire_instance(void)
{
struct ilm_control_context *ctx = &ilm_context;
lock_context(ctx);
display_roundtrip_queue(ctx->main_ctx.display, ctx->main_ctx.queue);
- unlock_context(ctx);
return ctx;
}
+static void release_instance(void)
+{
+ struct ilm_control_context *ctx = &ilm_context;
+ unlock_context(ctx);
+}
+
static uint32_t
gen_layer_id(struct ilm_control_context *ctx)
{
@@ -1448,8 +1453,7 @@ wayland_getPropertiesOfLayer(t_ilm_uint layerID,
struct ilmLayerProperties* pLayerProperties)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
if (pLayerProperties != NULL) {
@@ -1464,7 +1468,7 @@ wayland_getPropertiesOfLayer(t_ilm_uint layerID,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1500,8 +1504,7 @@ wayland_getPropertiesOfScreen(t_ilm_display screenID,
struct ilmScreenProperties* pScreenProperties)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pScreenProperties != NULL) {
struct screen_context *ctx_screen = NULL;
@@ -1521,7 +1524,7 @@ wayland_getPropertiesOfScreen(t_ilm_display screenID,
pScreenProperties->screenHeight = 0;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1543,8 +1546,7 @@ static ilmErrorTypes
wayland_getScreenIDs(t_ilm_uint* pNumberOfIDs, t_ilm_uint** ppIDs)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if ((pNumberOfIDs != NULL) && (ppIDs != NULL)) {
struct screen_context *ctx_scrn = NULL;
@@ -1564,7 +1566,7 @@ wayland_getScreenIDs(t_ilm_uint* pNumberOfIDs, t_ilm_uint** ppIDs)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1572,8 +1574,7 @@ static ilmErrorTypes
wayland_getLayerIDs(t_ilm_int* pLength, t_ilm_layer** ppArray)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if ((pLength != NULL) && (ppArray != NULL)) {
struct layer_context *ctx_layer = NULL;
@@ -1596,7 +1597,7 @@ wayland_getLayerIDs(t_ilm_int* pLength, t_ilm_layer** ppArray)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1606,8 +1607,7 @@ wayland_getLayerIDsOnScreen(t_ilm_uint screenId,
t_ilm_layer** ppArray)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if ((pLength != NULL) && (ppArray != NULL)) {
struct screen_context *ctx_screen = NULL;
@@ -1641,7 +1641,7 @@ wayland_getLayerIDsOnScreen(t_ilm_uint screenId,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1649,8 +1649,7 @@ static ilmErrorTypes
wayland_getSurfaceIDs(t_ilm_int* pLength, t_ilm_surface** ppArray)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if ((pLength != NULL) && (ppArray != NULL)) {
struct surface_context *ctx_surf = NULL;
@@ -1670,7 +1669,7 @@ wayland_getSurfaceIDs(t_ilm_int* pLength, t_ilm_surface** ppArray)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1679,15 +1678,14 @@ wayland_getSurfaceIDsOnLayer(t_ilm_layer layer,
t_ilm_int* pLength,
t_ilm_surface** ppArray)
{
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
struct surface_context *ctx_surf = NULL;
t_ilm_uint length = 0;
t_ilm_surface* ids = NULL;
if ((pLength == NULL) || (ppArray == NULL)) {
- unlock_context(ctx);
+ release_instance();
return ILM_FAILED;
}
@@ -1695,14 +1693,14 @@ wayland_getSurfaceIDsOnLayer(t_ilm_layer layer,
&ctx->main_ctx, (uint32_t)layer);
if (ctx_layer == NULL) {
- unlock_context(ctx);
+ release_instance();
return ILM_FAILED;
}
length = wl_list_length(&ctx_layer->order.list_surface);
*ppArray = (t_ilm_surface*)malloc(length * sizeof *ppArray);
if (*ppArray == NULL) {
- unlock_context(ctx);
+ release_instance();
return ILM_FAILED;
}
@@ -1713,7 +1711,7 @@ wayland_getSurfaceIDsOnLayer(t_ilm_layer layer,
}
*pLength = length;
- unlock_context(ctx);
+ release_instance();
return ILM_SUCCESS;
}
@@ -1753,8 +1751,7 @@ wayland_layerCreateWithDimension(t_ilm_layer* pLayerId,
t_ilm_uint height)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
uint32_t layerid = 0;
int32_t is_inside = 0;
@@ -1785,7 +1782,7 @@ wayland_layerCreateWithDimension(t_ilm_layer* pLayerId,
}
} while(0);
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1793,8 +1790,7 @@ static ilmErrorTypes
wayland_layerRemove(t_ilm_layer layerId)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
struct layer_context *ctx_next = NULL;
@@ -1811,7 +1807,7 @@ wayland_layerRemove(t_ilm_layer layerId)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1823,14 +1819,13 @@ wayland_layerGetType(t_ilm_layer layerId, ilmLayerType* pLayerType)
return ILM_ERROR_INVALID_ARGUMENTS;
}
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
*pLayerType = wayland_controller_is_inside_layer_list(&ctx->main_ctx.list_layer, layerId) ?
ILM_LAYERTYPE_SOFTWARE2D :
ILM_LAYERTYPE_UNKNOWN;
- unlock_context(ctx);
+ release_instance();
return ILM_SUCCESS; // even if non existent?
}
@@ -1838,8 +1833,7 @@ static ilmErrorTypes
wayland_layerSetVisibility(t_ilm_layer layerId, t_ilm_bool newVisibility)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
ctx_layer = (struct layer_context*)wayland_controller_get_layer_context(
@@ -1855,7 +1849,7 @@ wayland_layerSetVisibility(t_ilm_layer layerId, t_ilm_bool newVisibility)
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1863,8 +1857,7 @@ static ilmErrorTypes
wayland_layerGetVisibility(t_ilm_layer layerId, t_ilm_bool *pVisibility)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pVisibility != NULL) {
struct layer_context *ctx_layer = NULL;
@@ -1879,7 +1872,7 @@ wayland_layerGetVisibility(t_ilm_layer layerId, t_ilm_bool *pVisibility)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1887,8 +1880,7 @@ static ilmErrorTypes
wayland_layerSetOpacity(t_ilm_layer layerId, t_ilm_float opacity)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
ctx_layer = (struct layer_context*)wayland_controller_get_layer_context(
@@ -1901,7 +1893,7 @@ wayland_layerSetOpacity(t_ilm_layer layerId, t_ilm_float opacity)
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1909,8 +1901,7 @@ static ilmErrorTypes
wayland_layerGetOpacity(t_ilm_layer layerId, t_ilm_float *pOpacity)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pOpacity != NULL) {
struct layer_context *ctx_layer = NULL;
@@ -1925,7 +1916,7 @@ wayland_layerGetOpacity(t_ilm_layer layerId, t_ilm_float *pOpacity)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1935,8 +1926,7 @@ wayland_layerSetSourceRectangle(t_ilm_layer layerId,
t_ilm_uint width, t_ilm_uint height)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
ctx_layer = (struct layer_context*)wayland_controller_get_layer_context(
@@ -1951,7 +1941,7 @@ wayland_layerSetSourceRectangle(t_ilm_layer layerId,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1961,8 +1951,7 @@ wayland_layerSetDestinationRectangle(t_ilm_layer layerId,
t_ilm_int width, t_ilm_int height)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
ctx_layer = (struct layer_context*)wayland_controller_get_layer_context(
@@ -1976,7 +1965,7 @@ wayland_layerSetDestinationRectangle(t_ilm_layer layerId,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -1984,8 +1973,7 @@ static ilmErrorTypes
wayland_layerGetDimension(t_ilm_layer layerId, t_ilm_uint *pDimension)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
if (pDimension != NULL) {
@@ -1999,7 +1987,7 @@ wayland_layerGetDimension(t_ilm_layer layerId, t_ilm_uint *pDimension)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2007,8 +1995,7 @@ static ilmErrorTypes
wayland_layerSetDimension(t_ilm_layer layerId, t_ilm_uint *pDimension)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
if (pDimension != NULL) {
@@ -2024,7 +2011,7 @@ wayland_layerSetDimension(t_ilm_layer layerId, t_ilm_uint *pDimension)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2032,8 +2019,7 @@ static ilmErrorTypes
wayland_layerGetPosition(t_ilm_layer layerId, t_ilm_uint *pPosition)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
if (pPosition != NULL) {
@@ -2047,7 +2033,7 @@ wayland_layerGetPosition(t_ilm_layer layerId, t_ilm_uint *pPosition)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2055,8 +2041,7 @@ static ilmErrorTypes
wayland_layerSetPosition(t_ilm_layer layerId, t_ilm_uint *pPosition)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
if (pPosition != NULL) {
@@ -2072,7 +2057,7 @@ wayland_layerSetPosition(t_ilm_layer layerId, t_ilm_uint *pPosition)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2080,8 +2065,7 @@ static ilmErrorTypes
wayland_layerSetOrientation(t_ilm_layer layerId, ilmOrientation orientation)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
int32_t iviorientation = 0;
@@ -2117,7 +2101,7 @@ wayland_layerSetOrientation(t_ilm_layer layerId, ilmOrientation orientation)
returnValue = ILM_SUCCESS;
} while(0);
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2125,8 +2109,7 @@ static ilmErrorTypes
wayland_layerGetOrientation(t_ilm_layer layerId, ilmOrientation *pOrientation)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
if (pOrientation != NULL) {
@@ -2139,7 +2122,7 @@ wayland_layerGetOrientation(t_ilm_layer layerId, ilmOrientation *pOrientation)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2158,8 +2141,7 @@ wayland_layerSetRenderOrder(t_ilm_layer layerId,
t_ilm_int number)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
ctx_layer = (struct layer_context*)wayland_controller_get_layer_context(
@@ -2186,7 +2168,7 @@ wayland_layerSetRenderOrder(t_ilm_layer layerId,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2214,8 +2196,7 @@ static ilmErrorTypes
wayland_surfaceSetVisibility(t_ilm_surface surfaceId, t_ilm_bool newVisibility)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
uint32_t visibility = 0;
@@ -2229,7 +2210,7 @@ wayland_surfaceSetVisibility(t_ilm_surface surfaceId, t_ilm_bool newVisibility)
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2237,8 +2218,7 @@ static ilmErrorTypes
wayland_surfaceSetOpacity(t_ilm_surface surfaceId, t_ilm_float opacity)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
wl_fixed_t opacity_fixed = 0;
@@ -2250,7 +2230,7 @@ wayland_surfaceSetOpacity(t_ilm_surface surfaceId, t_ilm_float opacity)
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2258,8 +2238,7 @@ static ilmErrorTypes
wayland_surfaceGetOpacity(t_ilm_surface surfaceId, t_ilm_float *pOpacity)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pOpacity != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2270,7 +2249,7 @@ wayland_surfaceGetOpacity(t_ilm_surface surfaceId, t_ilm_float *pOpacity)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2298,8 +2277,7 @@ wayland_surfaceSetDestinationRectangle(t_ilm_surface surfaceId,
t_ilm_int width, t_ilm_int height)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
ctx_surf = get_surface_context(&ctx->main_ctx, surfaceId);
@@ -2310,7 +2288,7 @@ wayland_surfaceSetDestinationRectangle(t_ilm_surface surfaceId,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2318,8 +2296,7 @@ static ilmErrorTypes
wayland_surfaceSetDimension(t_ilm_surface surfaceId, t_ilm_uint *pDimension)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pDimension != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2334,7 +2311,7 @@ wayland_surfaceSetDimension(t_ilm_surface surfaceId, t_ilm_uint *pDimension)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2342,8 +2319,7 @@ static ilmErrorTypes
wayland_surfaceGetPosition(t_ilm_surface surfaceId, t_ilm_uint *pPosition)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pPosition != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2355,7 +2331,7 @@ wayland_surfaceGetPosition(t_ilm_surface surfaceId, t_ilm_uint *pPosition)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2363,8 +2339,7 @@ static ilmErrorTypes
wayland_surfaceSetPosition(t_ilm_surface surfaceId, t_ilm_uint *pPosition)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pPosition != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2379,7 +2354,7 @@ wayland_surfaceSetPosition(t_ilm_surface surfaceId, t_ilm_uint *pPosition)
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2388,8 +2363,7 @@ wayland_surfaceSetOrientation(t_ilm_surface surfaceId,
ilmOrientation orientation)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
int32_t iviorientation = 0;
@@ -2424,7 +2398,7 @@ wayland_surfaceSetOrientation(t_ilm_surface surfaceId,
returnValue = ILM_SUCCESS;
} while(0);
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2433,8 +2407,7 @@ wayland_surfaceGetOrientation(t_ilm_surface surfaceId,
ilmOrientation *pOrientation)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pOrientation != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2445,7 +2418,7 @@ wayland_surfaceGetOrientation(t_ilm_surface surfaceId,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2454,8 +2427,7 @@ wayland_surfaceGetPixelformat(t_ilm_layer surfaceId,
ilmPixelFormat *pPixelformat)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pPixelformat != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2466,7 +2438,7 @@ wayland_surfaceGetPixelformat(t_ilm_layer surfaceId,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2484,8 +2456,7 @@ wayland_displaySetRenderOrder(t_ilm_display display,
t_ilm_layer *pLayerId, const t_ilm_uint number)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct screen_context *ctx_scrn = NULL;
ctx_scrn = get_screen_context_by_id(&ctx->main_ctx, (uint32_t)display);
@@ -2510,7 +2481,7 @@ wayland_displaySetRenderOrder(t_ilm_display display,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2518,8 +2489,7 @@ static ilmErrorTypes
wayland_takeScreenshot(t_ilm_uint screen, t_ilm_const_string filename)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct screen_context *ctx_scrn = NULL;
ctx_scrn = get_screen_context_by_id(&ctx->main_ctx, (uint32_t)screen);
@@ -2530,7 +2500,7 @@ wayland_takeScreenshot(t_ilm_uint screen, t_ilm_const_string filename)
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2538,8 +2508,7 @@ static ilmErrorTypes
wayland_takeLayerScreenshot(t_ilm_const_string filename, t_ilm_layer layerid)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
ctx_layer = (struct layer_context*)wayland_controller_get_layer_context(
@@ -2551,7 +2520,7 @@ wayland_takeLayerScreenshot(t_ilm_const_string filename, t_ilm_layer layerid)
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2560,8 +2529,7 @@ wayland_takeSurfaceScreenshot(t_ilm_const_string filename,
t_ilm_surface surfaceid)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
ctx_surf = get_surface_context(&ctx->main_ctx, (uint32_t)surfaceid);
@@ -2572,7 +2540,7 @@ wayland_takeSurfaceScreenshot(t_ilm_const_string filename,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2600,8 +2568,7 @@ wayland_layerAddNotification(t_ilm_layer layer,
layerNotificationFunc callback)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
ctx_layer = (struct layer_context*)wayland_controller_get_layer_context(
@@ -2614,7 +2581,7 @@ wayland_layerAddNotification(t_ilm_layer layer,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2631,8 +2598,7 @@ wayland_surfaceAddNotification(t_ilm_surface surface,
surfaceNotificationFunc callback)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
ctx_surf = (struct surface_context*)get_surface_context(
@@ -2645,7 +2611,7 @@ wayland_surfaceAddNotification(t_ilm_surface surface,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2660,8 +2626,7 @@ static ilmErrorTypes
wayland_getNativeHandle(t_ilm_uint pid, t_ilm_int *n_handle,
t_ilm_nativehandle **p_handles)
{
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct nativehandle_context *p_nh_ctx = NULL;
*n_handle = 0;
@@ -2679,7 +2644,7 @@ wayland_getNativeHandle(t_ilm_uint pid, t_ilm_int *n_handle,
}
}
- unlock_context(ctx);
+ release_instance();
return (*n_handle > 0) ? ILM_SUCCESS : ILM_FAILED;
}
@@ -2688,8 +2653,7 @@ wayland_getPropertiesOfSurface(t_ilm_uint surfaceID,
struct ilmSurfaceProperties* pSurfaceProperties)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pSurfaceProperties != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2702,7 +2666,7 @@ wayland_getPropertiesOfSurface(t_ilm_uint surfaceID,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2711,8 +2675,7 @@ wayland_layerAddSurface(t_ilm_layer layerId,
t_ilm_surface surfaceId)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
struct surface_context *ctx_surf = NULL;
@@ -2725,7 +2688,7 @@ wayland_layerAddSurface(t_ilm_layer layerId,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2734,8 +2697,7 @@ wayland_layerRemoveSurface(t_ilm_layer layerId,
t_ilm_surface surfaceId)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct layer_context *ctx_layer = NULL;
struct surface_context *ctx_surf = NULL;
@@ -2748,7 +2710,7 @@ wayland_layerRemoveSurface(t_ilm_layer layerId,
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2757,8 +2719,7 @@ wayland_surfaceGetDimension(t_ilm_surface surfaceId,
t_ilm_uint *pDimension)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (pDimension != NULL) {
struct surface_context *ctx_surf = NULL;
@@ -2771,7 +2732,7 @@ wayland_surfaceGetDimension(t_ilm_surface surfaceId,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2780,8 +2741,7 @@ wayland_surfaceGetVisibility(t_ilm_surface surfaceId,
t_ilm_bool *pVisibility)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
if (pVisibility != NULL) {
@@ -2792,7 +2752,7 @@ wayland_surfaceGetVisibility(t_ilm_surface surfaceId,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2802,8 +2762,7 @@ wayland_surfaceSetSourceRectangle(t_ilm_surface surfaceId,
t_ilm_int width, t_ilm_int height)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
struct surface_context *ctx_surf = NULL;
ctx_surf = get_surface_context(&ctx->main_ctx, (uint32_t)surfaceId);
@@ -2816,7 +2775,7 @@ wayland_surfaceSetSourceRectangle(t_ilm_surface surfaceId,
}
}
- unlock_context(ctx);
+ release_instance();
return returnValue;
}
@@ -2824,8 +2783,7 @@ static ilmErrorTypes
wayland_commitChanges(void)
{
ilmErrorTypes returnValue = ILM_FAILED;
- struct ilm_control_context *ctx = get_instance();
- lock_context(ctx);
+ struct ilm_control_context *ctx = sync_and_acquire_instance();
if (ctx->main_ctx.controller != NULL) {
ivi_controller_commit_changes(ctx->main_ctx.controller);
@@ -2834,6 +2792,7 @@ wayland_commitChanges(void)
returnValue = ILM_SUCCESS;
}
- unlock_context(ctx);
+ release_instance();
+
return returnValue;
}