additional fix for lower framework
authorPius Lee <pius.lee@samsung.com>
Fri, 10 Feb 2012 10:32:32 +0000 (19:32 +0900)
committerPius Lee <pius.lee@samsung.com>
Fri, 10 Feb 2012 10:32:32 +0000 (19:32 +0900)
debian/changelog
include/haptic_private.h
src/haptic.c
src/haptic_private.c

index 076a445..c5855e2 100644 (file)
@@ -1,3 +1,11 @@
+capi-system-haptic (0.1.0-10) unstable; urgency=low
+
+  * additional fix for lower framework 
+  * Git: api/haptic
+  * Tag: capi-system-haptic_0.1.0-10
+
+ -- DongGi Jang <dg0402.jang@samsung.com>  Thu, 02 Feb 2012 16:41:18 +0900
+
 capi-system-haptic (0.1.0-9) unstable; urgency=low
 
   * patch for lower framework functions
 capi-system-haptic (0.1.0-9) unstable; urgency=low
 
   * patch for lower framework functions
index cbe4059..cbb459f 100755 (executable)
@@ -26,7 +26,6 @@ extern "C" {
 
 void _haptic_init();
 void _haptic_deinit();
 
 void _haptic_init();
 void _haptic_deinit();
-int _haptic_play_monotone(int dev, int duration, haptic_level_e level);
        
 #ifdef __cplusplus
 }
        
 #ifdef __cplusplus
 }
index d9d94cb..3c38779 100755 (executable)
@@ -137,7 +137,7 @@ int haptic_initialize()
         id = device_haptic_open(_DEV[i], 0);
         if(id < 0) {
             for (j=i; i>=0; i--){
         id = device_haptic_open(_DEV[i], 0);
         if(id < 0) {
             for (j=i; i>=0; i--){
-                device_haptic_close(_DEV[i]);
+                device_haptic_close(haptic_ids[i]);
             }
             RETURN_ERR(HAPTIC_ERROR_OPERATION_FAILED);
         }
             }
             RETURN_ERR(HAPTIC_ERROR_OPERATION_FAILED);
         }
@@ -162,7 +162,7 @@ int haptic_deinitialize()
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
 
     for(i=0; i<=max_device; i++){
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
 
     for(i=0; i<=max_device; i++){
-        err = device_haptic_close(_DEV[i]);
+        err = device_haptic_close(haptic_ids[i]);
     }
     initialize = 0;
 
     }
     initialize = 0;
 
@@ -190,7 +190,7 @@ int haptic_get_file_duration(int device_index, const char *file_name , int* dura
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
     
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
     
-    device_index = ((device_index < 3) ? _DEV[device_index] : DEV_IDX_ALL); // xxx
+    device_index = ((device_index < 3) ? device_index : 0); // xxx
 
     if(!invalid_ivt(file_name))
         RETURN_ERR(HAPTIC_ERROR_NOT_SUPPORTED_FORMAT);
 
     if(!invalid_ivt(file_name))
         RETURN_ERR(HAPTIC_ERROR_NOT_SUPPORTED_FORMAT);
@@ -214,7 +214,7 @@ int haptic_vibrate_file(int device_index, const char *file_name , int count , ha
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
 
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
 
-    device_index = ((device_index < 3) ? _DEV[device_index] : DEV_IDX_ALL); // xxx
+    device_index = ((device_index < 3) ? device_index : 0); // xxx
 
     if(!initialize)
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
 
     if(!initialize)
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
@@ -253,7 +253,7 @@ int haptic_vibrate_monotone(int device_index , int duration)
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
 
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
 
-    device_index = ((device_index < 3) ? _DEV[device_index] : DEV_IDX_ALL); // xxx
+    device_index = ((device_index < 3) ? device_index : 0); // xxx
 
     if(!initialize)
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
 
     if(!initialize)
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
@@ -277,7 +277,7 @@ int haptic_stop_device(int device_index)
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
 
     if(device_index < 0 || device_index > max_device)
         RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
 
-    device_index = ((device_index < 3) ? _DEV[device_index] : DEV_IDX_ALL); // xxx
+    device_index = ((device_index < 3) ? device_index : 0); // xxx
 
     if(!initialize)
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
 
     if(!initialize)
         RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
@@ -304,6 +304,31 @@ static void _free_pattern_from_table(int index)
     g_array_index(pattern_table, struct _vibe_pattern *, index) = NULL;
 }
 
     g_array_index(pattern_table, struct _vibe_pattern *, index) = NULL;
 }
 
+static int _haptic_play_monotone(int device_index, long duration, haptic_level_e level)
+{
+       int ret;
+
+    if(device_index < 0 || device_index > max_device)
+        RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
+
+    device_index = ((device_index < 3) ? device_index : 0); // xxx
+
+    if(!initialize)
+        RETURN_ERR(HAPTIC_ERROR_NOT_INITIALIZED);
+
+
+       ret = device_haptic_play_monotone_with_feedback_level(haptic_ids[device_index], duration, _LEVEL[level]);
+
+       if(ret < 0){
+        if(ret == -2)
+            RETURN_ERR(HAPTIC_ERROR_OPERATION_FAILED);
+        else
+            RETURN_ERR(HAPTIC_ERROR_INVALID_PARAMETER);
+    }
+
+       return HAPTIC_ERROR_NONE;
+}
+
 static gboolean _haptic_play_iter(gpointer data)
 {
     int err;
 static gboolean _haptic_play_iter(gpointer data)
 {
     int err;
@@ -331,8 +356,7 @@ static gboolean _haptic_play_iter(gpointer data)
         level = HAPTIC_LEVEL_5;
 
     if(level != HAPTIC_LEVEL_0 || time != 0){
         level = HAPTIC_LEVEL_5;
 
     if(level != HAPTIC_LEVEL_0 || time != 0){
-//        err = _haptic_play_monotone(device, time, level);
-        err = haptic_vibrate_monotone(device, time);
+        err = _haptic_play_monotone(device, time, level);
         if(err<0){
             pattern->error = err;
             return false;
         if(err<0){
             pattern->error = err;
             return false;
index 46e597b..2754181 100644 (file)
@@ -61,14 +61,6 @@ enum {
 
 static int immersion;
 
 
 static int immersion;
 
-static int IMM_LEVEL[] = {
-    0, 0, 2000, 4000, 6000, 8000, 10000
-};
-
-static int ETC_LEVEL[] = {
-    0,0, 55, 60, 65, 70, 80
-};
-
 void _haptic_init()
 {
     immersion = access(IMMERSION_DRV_NODE, F_OK) == 0;
 void _haptic_init()
 {
     immersion = access(IMMERSION_DRV_NODE, F_OK) == 0;
@@ -78,70 +70,3 @@ void _haptic_deinit()
 {
 }
 
 {
 }
 
-int _haptic_play_monotone(int dev, int duration, haptic_level_e level)
-{
-    int status;
-    int input = 0;
-    unsigned int cmd;
-
-    if(duration < 1 || duration > INPUT_PARM_MAX)
-        return HAPTIC_ERROR_INVALID_PARAMETER;
-
-    dev = DEV_IDX_ALL; // xxx
-
-    if(dev != DEV_IDX_ALL && dev != DEV_IDX_0 && dev != DEV_IDX_1)
-        return HAPTIC_ERROR_INVALID_PARAMETER;
-
-    if(level == HAPTIC_LEVEL_0)
-        return HAPTIC_ERROR_NONE;
-
-    if(level < HAPTIC_LEVEL_1 || level > HAPTIC_LEVEL_5)
-        return HAPTIC_ERROR_INVALID_PARAMETER;
-
-    input = immersion ? IMM_LEVEL[level] : ETC_LEVEL[level];
-    if(input == 0)
-        return HAPTIC_ERROR_NONE;
-
-    if (immersion) {
-        cmd = COMP_CMD(dev, input);
-        status = device_set_property(DEVTYPE_EFFECT_HAPTIC,
-                CMD_PROPERTY_SET_STRENGTH, (int)cmd);
-//        printf("capi [%d - %d - %d] [%d %d]\n", DEVTYPE_EFFECT_HAPTIC, CMD_PROPERTY_SET_STRENGTH, cmd, dev, input);
-        if (status < 0) {
-            return HAPTIC_ERROR_OPERATION_FAILED;
-        }
-
-        cmd = COMP_CMD(dev, 0x05);
-        status =
-            device_set_property(DEVTYPE_EFFECT_HAPTIC,
-                    CMD_PROPERTY_SET_PRIORITY, (int)cmd);
-        if (status < 0) {
-            return HAPTIC_ERROR_OPERATION_FAILED;
-        }
-    }
-
-    if (immersion) {
-        cmd = COMP_CMD(dev, duration);
-        status =
-            device_set_property(DEVTYPE_EFFECT_HAPTIC,
-                    CMD_SET_NORMAL_PLAY, (int)cmd);
-        if (status < 0) {
-            return HAPTIC_ERROR_OPERATION_FAILED;
-        }
-    } else {
-        status =
-            device_set_property(DEVTYPE_HAPTIC, HAPTIC_PROP_LEVEL,
-                    input);
-        if (status < 0) {
-            return HAPTIC_ERROR_OPERATION_FAILED;
-        }
-
-        status =
-            device_set_property(DEVTYPE_HAPTIC, HAPTIC_PROP_ONESHOT,
-                    duration);
-        if (status < 0) {
-            return HAPTIC_ERROR_OPERATION_FAILED;
-        }
-    }
-    return HAPTIC_ERROR_NONE;
-}