SET(dependents ${dependents} " lwipc")
ENDIF(${MUSE_USE_LWIPC})
+IF(${MUSE_TTRACE_LOG})
+SET(dependents ${dependents} " ttrace")
+ENDIF(${MUSE_TTRACE_LOG})
+
SET(pc_dependents "dlog gio-2.0 mm-common capi-base-common libtbm")
INCLUDE(FindPkgConfig)
[Unit]
Description=muse server
-After=display-manager.service
[Service]
Type=forking
SupplementaryGroups=priv_mediastorage priv_camera
[Install]
-WantedBy=multi-user.target
+WantedBy=basic.target
%if "%{?TIZEN_PRODUCT_TV}" == "1"
BuildRequires: pkgconfig(libresourced)
BuildRequires: pkgconfig(lwipc)
+BuildRequires: pkgconfig(ttrace)
%endif
Requires(post): /sbin/ldconfig
MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
%if "%{?TIZEN_PRODUCT_TV}" == "1"
-export CFLAGS+=" -DTIZEN_PRODUCT_TV -DMUSE_REGISTER_VIP -DMUSE_USE_LWIPC"
-cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIBDIR=%{_libdir} -DTZ_SYS_DATA=%TZ_SYS_DATA -DMUSE_REGISTER_VIP=1
+export CFLAGS+=" -DTIZEN_PRODUCT_TV -DMUSE_REGISTER_VIP -DMUSE_USE_LWIPC -DMUSE_TTRACE_LOG"
+cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIBDIR=%{_libdir} -DTZ_SYS_DATA=%TZ_SYS_DATA -DMUSE_REGISTER_VIP=1 -DMUSE_TTRACE_LOG=1
%else
cmake . -DCMAKE_INSTALL_PREFIX=/usr -DFULLVER=%{version} -DMAJORVER=${MAJORVER} -DLIBDIR=%{_libdir} -DTZ_SYS_DATA=%TZ_SYS_DATA
%endif
install -m 0644 %SOURCE5 %{buildroot}%{_unitdir}/muse-server.service
%install_service starter.target.wants muse-server.service
%else
-mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
+mkdir -p %{buildroot}%{_unitdir}/basic.target.wants
install -m 0644 %SOURCE4 %{buildroot}%{_unitdir}/muse-server.service
-%install_service multi-user.target.wants muse-server.service
+%install_service basic.target.wants muse-server.service
%endif
%else
mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants
%{_libdir}/libmused.so.*
%{_datadir}/license/%{name}
%{_unitdir}/muse-server.service
+%if "%{?profile}" == "tv"
%if ("%{VD_PRODUCT_TYPE}" == "AUDIO")
%{_unitdir}/starter.target.wants/muse-server.service
%else
+%{_unitdir}/basic.target.wants/muse-server.service
+%endif
+%else
%{_unitdir}/multi-user.target.wants/muse-server.service
%endif
%{_unitdir}/muse-server.socket
#ifdef MUSE_USE_LWIPC
#include <lwipc.h>
+#define MUSE_LWIPC_WAIT_TIME 1000
#endif
#define MUSE_LOG_SLEEP_TIMER 10
muse_module_h module = NULL;
muse_core_workqueue_job_t *job = NULL;
- LOGD("Enter");
+ LOGI("Enter");
server_sockfd = g_io_channel_unix_get_fd(source);
client_len = sizeof(client_address);
client_sockfd = accept(server_sockfd, (struct sockaddr *)&client_address, &client_len);
- LOGD("server: %d client: %d", server_sockfd, client_sockfd);
+ LOGI("server: %d client: %d", server_sockfd, client_sockfd);
if (client_sockfd < 0) {
strerror_r(errno, err_msg, MAX_ERROR_MSG_LEN);
muse_core_workqueue_get_instance()->add_job(job);
- LOGD("Leave");
+ LOGI("Leave");
return TRUE;
out:
close(server_sockfd);
int sockfd;
char err_msg[MAX_ERROR_MSG_LEN] = {'\0',};
- LOGD("Enter");
+ LOGI("Enter");
g_return_val_if_fail(channel < MUSE_CHANNEL_MAX, MM_ERROR_INVALID_ARGUMENT);
/*Create socket*/
LOGE("[socket failure] sock: %s", err_msg);
return ret;
}
- LOGD("sockfd: %d", sockfd);
+ LOGI("sockfd: %d", sockfd);
if (fcntl(sockfd, F_SETFD, FD_CLOEXEC) < 0) {
strerror_r(errno, err_msg, MAX_ERROR_MSG_LEN);
return ret;
}
- LOGD("Leave");
+ LOGI("Leave");
return sockfd;
}
+#ifdef MUSE_USE_LWIPC
+static void _muse_core_wait_event()
+{
+ const char *lw_event_list[] = { "wm_ready", "avoc_ready" };
+ unsigned int count = sizeof(lw_event_list) / sizeof(char *);
+ char buffer[LWIPC_MAX_EVENTNAME];
+
+ if (LwipcWaitMultiEvents(lw_event_list, count, true, MUSE_LWIPC_WAIT_TIME, buffer) != 0)
+ LOGE("Fail to receive Multiple Events");
+}
+#endif
+
gpointer muse_core_main_loop(gpointer data)
{
#if 0
int ready_fd;
#endif
- LOGD("Enter");
+ LOGI("Enter");
ret = _muse_core_check_server_is_running();
if (ret == -1) {
}
#ifdef MUSE_USE_LWIPC
+ _muse_core_wait_event();
+
if (LwipcEventDone(MUSE_SERVER_READY) < 0)
LOGE("Fail to send server ready done event");
#else
module->api_module = api_module;
module->is_create_api_called = true;
module->ch[MUSE_CHANNEL_MSG].dll_handle = muse_core_module_get_instance()->load(api_module);
+#ifndef MUSE_USE_LWIPC
if (access(MUSE_SERVER_READY, F_OK) == 0)
+#endif
muse_core_cmd_dispatch(module, MUSE_MODULE_COMMAND_CREATE_SERVER_ACK);
module->ch[MUSE_CHANNEL_DATA].queue = g_queue_new();
g_mutex_init(&module->ch[MUSE_CHANNEL_DATA].mutex);
#include "muse_core_security.h"
#include "muse_core_tool.h"
#include <gst/gst.h>
+#ifdef MUSE_TTRACE_LOG
+#include <trace.h>
+#endif
static void _muse_core_server_setup_syslog(void);
static void _muse_core_server_gst_init(char **cmd);
int index;
char err_msg[MAX_ERROR_MSG_LEN] = {'\0',};
+#ifdef MUSE_TTRACE_LOG
+ trace_begin("MUSE:START");
+#endif
+
_muse_core_server_setup_syslog();
/* daemonizing */
muse_core_ipc_init();
muse_core_security_init();
muse_core_msg_init();
+#ifdef MUSE_TTRACE_LOG
+ trace_begin("MUSE:gst_init:resistry path:%s", getenv("GST_REGISTRY"));
+#endif
_muse_core_server_gst_init(argv);
+#ifdef MUSE_TTRACE_LOG
+ trace_end();
+#endif
if (argc > 1 && argv)
muse_core_tool_parse_params(argc, argv);
+#ifdef MUSE_TTRACE_LOG
+ trace_begin("MUSE:preloading module");
+#endif
for (index = 0; index < muse_core_config_get_instance()->get_host_cnt(); index++) {
if (0 == strcmp(muse_core_config_get_instance()->get_preloaded(index), "yes")) {
muse_module_h module = NULL;
cmd_dispatcher[MUSE_MODULE_COMMAND_INITIALIZE](module);
}
}
+#ifdef MUSE_TTRACE_LOG
+ trace_end();
+#endif
if (muse_core_security_get_instance()->new() < 0) {
LOGE("Error - muse_core_security new functoion");
result = chdir("/");
LOGD("result = %d sid: %d pgid: %d pid: %d ppid: %d", result, (int)getsid(0), (int)getpgid(0), (int)getpid(), (int)getppid());
+#ifdef MUSE_TTRACE_LOG
+ trace_end();
+#endif
return muse_core_run();
}