#include "profiles.h"
#include "devices.h"
#include "log.h"
+#include "dbus.h"
#ifndef API
#define API __attribute__ ((visibility("default")))
static unsigned int init_cnt;
static pthread_mutex_t fmutex = PTHREAD_MUTEX_INITIALIZER;
+static int restart_callback()
+{
+ const struct device_ops *dev;
+
+ dev = find_device(FEEDBACK_TYPE_VIBRATION);
+ if (dev->init)
+ dev->init();
+ return 0;
+}
+
API int feedback_initialize(void)
{
+ int ret;
+
pthread_mutex_lock(&fmutex);
if (!profile) {
_E("there is no valid profile module."); //LCOV_EXCL_LINE
return FEEDBACK_ERROR_NONE;
}
+ ret = register_signal_handler(restart_callback);
+ if (ret < 0)
+ _E("Fail to register signal handler: %d", ret);
+
/* initialize device */
devices_init();
API int feedback_deinitialize(void)
{
+ int ret;
+
pthread_mutex_lock(&fmutex);
if (!init_cnt) {
pthread_mutex_unlock(&fmutex);
return FEEDBACK_ERROR_NONE;
}
+ ret = unregister_signal_handler(restart_callback);
+ if (ret < 0)
+ _E("Fail to unregister signal handler: %d", ret);
+
/* deinitialize device */
devices_exit();