diff options
author | Timo Lotterbach <timo.lotterbach@bmw-carit.de> | 2011-12-01 13:33:30 +0100 |
---|---|---|
committer | Michael Schuldt <michael.schuldt@bmw-carit.de> | 2011-12-05 08:35:17 +0100 |
commit | 40e1928f7657d54a10904b73447de9ecd7b95e26 (patch) | |
tree | 9212a8594c20d8cda57d1383e6f8344cee411323 /LayerManagerClient | |
parent | a1b594c0c79c48e47d56dfd5e9e98cb7b30909fa (diff) | |
download | layer_management-40e1928f7657d54a10904b73447de9ecd7b95e26.tar.gz |
SurfaceCreate and SurfaceSetNativeContent are two separate steps now; ilmClient::CreateSurface() behaves the same way as before by sending both commands
Diffstat (limited to 'LayerManagerClient')
-rw-r--r-- | LayerManagerClient/ilmClient/src/ilm_client.c | 82 |
1 files changed, 52 insertions, 30 deletions
diff --git a/LayerManagerClient/ilmClient/src/ilm_client.c b/LayerManagerClient/ilmClient/src/ilm_client.c index 4cdb024..9f4a491 100644 --- a/LayerManagerClient/ilmClient/src/ilm_client.c +++ b/LayerManagerClient/ilmClient/src/ilm_client.c @@ -1210,40 +1210,62 @@ ilmErrorTypes ilm_layergroupSetOpacity(t_ilm_layergroup group, t_ilm_float opaci ilmErrorTypes ilm_surfaceCreate(t_ilm_nativehandle nativehandle, t_ilm_int width, t_ilm_int height, ilmPixelFormat pixelFormat, t_ilm_surface* pSurfaceId) { - ilmErrorTypes error = ILM_FAILED; + ilmErrorTypes result = ILM_FAILED; DBusMessage *message; - // Setup parameter to send - t_ilm_param surfaceParam[5]; - _ilm_setup_param(&surfaceParam[0], DBUS_TYPE_UINT32, &nativehandle); - _ilm_setup_param(&surfaceParam[1], DBUS_TYPE_UINT32, &width); - _ilm_setup_param(&surfaceParam[2], DBUS_TYPE_UINT32, &height); - _ilm_setup_param(&surfaceParam[3], DBUS_TYPE_UINT32, &pixelFormat); - _ilm_setup_param(&surfaceParam[4], DBUS_TYPE_UINT32, pSurfaceId); - - if (*pSurfaceId == INVALID_ID) - { - // Setup Call - message = _ilm_dbus_method_call(g_ilm_client->dbus_connection, "CreateSurface", &surfaceParam[0], 4); - } - else { - message = _ilm_dbus_method_call(g_ilm_client->dbus_connection, "CreateSurfaceFromId", &surfaceParam[0], 5); - } + // Setup parameter to send + t_ilm_param surfaceParam[1]; + _ilm_setup_param(&surfaceParam[0], DBUS_TYPE_UINT32, pSurfaceId); + + if (*pSurfaceId == INVALID_ID) + { + // Setup Call + message = _ilm_dbus_method_call(g_ilm_client->dbus_connection, "CreateSurface", &surfaceParam[0], 0); + } + else + { + message = _ilm_dbus_method_call(g_ilm_client->dbus_connection, "CreateSurfaceFromId", &surfaceParam[0], 1); + } + + if (message) + { + ILM_CHECK_METHOD_ERROR(message); + result = _ilm_get_dbus_basic_elements(message, 1, &surfaceParam[0]); + _ilm_close_dbus_method_call(message); + } + else + { + ILM_ERROR("ilm_surfaceCreate","IPC Method (CreateSurface[Id]) call not possible can't setup remote message\n"); + result = ILM_ERROR_ON_CONNECTION; + } + } + + { + // Setup parameter to send + t_ilm_param surfaceParam[5]; + _ilm_setup_param(&surfaceParam[0], DBUS_TYPE_UINT32, pSurfaceId); + _ilm_setup_param(&surfaceParam[1], DBUS_TYPE_UINT32, &nativehandle); + _ilm_setup_param(&surfaceParam[2], DBUS_TYPE_UINT32, &width); + _ilm_setup_param(&surfaceParam[3], DBUS_TYPE_UINT32, &height); + _ilm_setup_param(&surfaceParam[4], DBUS_TYPE_UINT32, &pixelFormat); + + message = _ilm_dbus_method_call(g_ilm_client->dbus_connection, "SetSurfaceNativeContent", &surfaceParam[0], 5); + + if (message) + { + ILM_CHECK_METHOD_ERROR(message); + result = _ilm_get_dbus_basic_elements(message, 1, &surfaceParam[0]); + _ilm_close_dbus_method_call(message); + } + else + { + ILM_ERROR("ilm_surfaceCreate","IPC Method (SetSurfaceNativeContent) call not possible can't setup remote message\n"); + result = ILM_ERROR_ON_CONNECTION; + } + } - if (message) - { - ILM_CHECK_METHOD_ERROR(message); - error = _ilm_get_dbus_basic_elements(message, 1, &surfaceParam[4]); - _ilm_close_dbus_method_call(message); - } - else - { - ILM_ERROR("ilm_surfaceCreate","IPC Method call not possible can't setup remote message\n"); - return ILM_ERROR_ON_CONNECTION; - } - - return error; + return result; } ilmErrorTypes ilm_surfaceCreatePlaceholder(t_ilm_surface *pSurfaceId) |