#include "config.h"
#include "TizenLinkEffect.h"
+#if ENABLE(TIZEN_LINK_EFFECT)
#include "feedback.h"
+#include <dlfcn.h>
-#if ENABLE(TIZEN_LINK_EFFECT)
namespace WebCore {
-void TizenLinkEffect::playLinkEffect()
+static int (*feedback_play)(int);
+
+static void* getHandle()
{
+ void* handle = dlopen("libfeedback.so.0", RTLD_NOW);
+ if (!handle)
+ return 0;
+
+ int (*feedback_initialize)() = (int(*)(void))dlsym(handle, "feedback_initialize");
+ if (!feedback_initialize) {
+ dlclose(handle);
+ return 0;
+ }
+
+ feedback_play = (int(*)(int))dlsym(handle, "feedback_play");
+ if (!feedback_play) {
+ dlclose(handle);
+ return 0;
+ }
+
feedback_initialize();
+ return handle;
+}
+
+void TizenLinkEffect::playLinkEffect()
+{
+ static void* handle = getHandle();
+
+ if (!handle)
+ return;
+
feedback_play(FEEDBACK_PATTERN_TAP);
- feedback_deinitialize();
}
}