From: hj kim Date: Tue, 15 Dec 2020 07:42:16 +0000 (+0900) Subject: Add new msg to check service launch status X-Git-Tag: submit/tizen/20201218.042524~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5a565293de9384c122e8b8febad738fbb0038567;p=platform%2Fcore%2Fapi%2Fmedia-controller.git Add new msg to check service launch status Change-Id: I9c7148c34e90e5537913b0507e849eaa30d3e2b4 --- diff --git a/packaging/capi-media-controller.spec b/packaging/capi-media-controller.spec index 43fd00b..69adc4d 100644 --- a/packaging/capi-media-controller.spec +++ b/packaging/capi-media-controller.spec @@ -1,6 +1,6 @@ Name: capi-media-controller Summary: A media controller library in Tizen Native API -Version: 0.2.22 +Version: 0.2.23 Release: 1 Group: Multimedia/API License: Apache-2.0 diff --git a/src/media_controller_ipc.c b/src/media_controller_ipc.c index 3ad7019..7a7d823 100644 --- a/src/media_controller_ipc.c +++ b/src/media_controller_ipc.c @@ -467,34 +467,38 @@ static int __activate_service(void) return MEDIA_CONTROLLER_ERROR_NONE; } -#endif -int _mc_ipc_service_connect(mc_priv_type_e priv_type) +static int __launch_service(mc_priv_type_e priv_type) { int ret = MEDIA_CONTROLLER_ERROR_NONE; -#ifdef _ON_DEMAND_SOCKET_ACTIVATION unsigned int retry_count = 0; -#endif - ret = __make_service_connection(priv_type); + ret = _mc_ipc_send_message_to_server(MC_MSG_SERVICE_LAUNCH, priv_type, "launch"); mc_retvm_if(ret == MEDIA_CONTROLLER_ERROR_NONE, ret, "service is already running!"); mc_retvm_if(ret == MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED, ret, "Permission deny!"); -#ifdef _ON_DEMAND_SOCKET_ACTIVATION ret = __activate_service(); mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Fail to __activate_service"); - ret = __make_service_connection(priv_type); - mc_retvm_if(ret == MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED, ret, "Permission deny!"); - - /* Try to make connection until starting daemon is completed */ - while ((ret != MEDIA_CONTROLLER_ERROR_NONE) && (retry_count++ < MAX_WAIT_COUNT)) { + while (retry_count++ < MAX_WAIT_COUNT) { MC_MILLISEC_SLEEP(200); mc_error("[No-Error] retry_count [%d]", retry_count); - ret = __make_service_connection(priv_type); + ret = _mc_ipc_send_message_to_server(MC_MSG_SERVICE_LAUNCH, priv_type, "launch"); + mc_retvm_if(ret == MEDIA_CONTROLLER_ERROR_NONE, ret, "service is running!"); mc_retvm_if(ret == MEDIA_CONTROLLER_ERROR_PERMISSION_DENIED, ret, "Permission deny!"); } -#endif return ret; } +#endif + +int _mc_ipc_service_connect(mc_priv_type_e priv_type) +{ +#ifdef _ON_DEMAND_SOCKET_ACTIVATION + int ret = MEDIA_CONTROLLER_ERROR_NONE; + ret = __launch_service(priv_type); + mc_retvm_if(ret != MEDIA_CONTROLLER_ERROR_NONE, ret, "Fail to __launch_service"); +#endif + + return __make_service_connection(priv_type); +} diff --git a/svc/include/media_controller_socket.h b/svc/include/media_controller_socket.h index 54dd088..da5b009 100755 --- a/svc/include/media_controller_socket.h +++ b/svc/include/media_controller_socket.h @@ -45,6 +45,7 @@ typedef enum { MC_MSG_CLIENT_GET, MC_MSG_SERVER_CONNECTION, MC_MSG_SERVER_DISCONNECTION, + MC_MSG_SERVICE_LAUNCH, MC_MSG_MAX, } mc_msg_type_e; diff --git a/svc/media_controller_svc.c b/svc/media_controller_svc.c index 76e6b16..aeafc47 100644 --- a/svc/media_controller_svc.c +++ b/svc/media_controller_svc.c @@ -653,6 +653,12 @@ static gboolean __mc_read_service_request_tcp_socket(GIOChannel *src, GIOConditi goto ERROR; } + if (req->req_msg->msg_type == MC_MSG_SERVICE_LAUNCH) { + mc_info("Media Controller Daemon is running"); + msg = MEDIA_CONTROLLER_ERROR_NONE; + goto ERROR; + } + if (g_queue_get_length(request_queue) >= MAX_MC_REQUEST) { mc_error("request_queue is limited until %d", MAX_MC_REQUEST); msg = MEDIA_CONTROLLER_ERROR_INVALID_OPERATION;