diff options
author | Marcus Fritzsch <marcus.fritzsch@xse.de> | 2014-07-21 17:26:26 +0200 |
---|---|---|
committer | Nobuhiko Tanibata <NOBUHIKO_TANIBATA@denso.co.jp> | 2014-08-12 22:15:13 +0900 |
commit | 85fcf107ff9fae3d6a00e15d5c12ed2116593431 (patch) | |
tree | 53d2a1c5344b3164410cd06bab7fec22163c4cf4 | |
parent | 469e06de04f44265cf5f709f5a2a684e86fc21f4 (diff) | |
download | wayland-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.c | 253 |
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; } |