Support multi effect pattern 11/225111/4 accepted/tizen/unified/20200311.130818 submit/tizen/20200310.104300
authorYunmi Ha <yunmi.ha@samsung.com>
Mon, 17 Feb 2020 10:07:01 +0000 (19:07 +0900)
committerYunmi Ha <yunmi.ha@samsung.com>
Mon, 9 Mar 2020 08:13:22 +0000 (17:13 +0900)
- Remove rescaling code for level
- Add default pattern for monotone vibration

Change-Id: Ie7b01518bb6c3995c3a3db0193ec7d148bf21611
Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
common/data/vibration.conf
include/feedback-ids-internal.h
mobile/data/vibration.conf
src/check.c
src/vibrator.c
wearable/data/vibration.conf

index 4d25371f6bedc73e0829487e0fb94a53b43c3c75..987c6c6e613cd5769dcb06c5b041c0cc39ece7a3 100644 (file)
@@ -1,29 +1,30 @@
 [Vibration]
-FEEDBACK_PATTERN_SIP=100D
-FEEDBACK_PATTERN_KEY0=100D
-FEEDBACK_PATTERN_KEY1=100D
-FEEDBACK_PATTERN_KEY2=100D
-FEEDBACK_PATTERN_KEY3=100D
-FEEDBACK_PATTERN_KEY4=100D
-FEEDBACK_PATTERN_KEY5=100D
-FEEDBACK_PATTERN_KEY6=100D
-FEEDBACK_PATTERN_KEY7=100D
-FEEDBACK_PATTERN_KEY8=100D
-FEEDBACK_PATTERN_KEY9=100D
-FEEDBACK_PATTERN_KEY_STAR=100D
-FEEDBACK_PATTERN_KEY_SHARP=100D
-FEEDBACK_PATTERN_KEY_BACK=100D
-FEEDBACK_PATTERN_HOLD=100D
-FEEDBACK_PATTERN_HW_TAP=100D
-FEEDBACK_PATTERN_HW_HOLD=100D
-FEEDBACK_PATTERN_MESSAGE=100D
-FEEDBACK_PATTERN_EMAIL=100D
-FEEDBACK_PATTERN_WAKEUP=100D
-FEEDBACK_PATTERN_SCHEDULE=100D
-FEEDBACK_PATTERN_TIMER=100D
-FEEDBACK_PATTERN_GENERAL=100D
-FEEDBACK_PATTERN_POWERON=100D
-FEEDBACK_PATTERN_POWEROFF=100D
-FEEDBACK_PATTERN_CHARGERCONN=100D
-FEEDBACK_PATTERN_LOWBATT=100D
-FEEDBACK_PATTERN_VIBRATION_ON=100D
+FEEDBACK_PATTERN_SIP=100D10000I2100F
+FEEDBACK_PATTERN_KEY0=100D10000I2100F
+FEEDBACK_PATTERN_KEY1=100D10000I2100F
+FEEDBACK_PATTERN_KEY2=100D10000I2100F
+FEEDBACK_PATTERN_KEY3=100D10000I2100F
+FEEDBACK_PATTERN_KEY4=100D10000I2100F
+FEEDBACK_PATTERN_KEY5=100D10000I2100F
+FEEDBACK_PATTERN_KEY6=100D10000I2100F
+FEEDBACK_PATTERN_KEY7=100D10000I2100F
+FEEDBACK_PATTERN_KEY8=100D10000I2100F
+FEEDBACK_PATTERN_KEY9=100D10000I2100F
+FEEDBACK_PATTERN_KEY_STAR=100D10000I2100F
+FEEDBACK_PATTERN_KEY_SHARP=100D10000I2100F
+FEEDBACK_PATTERN_KEY_BACK=100D10000I2100F
+FEEDBACK_PATTERN_HOLD=100D10000I2100F
+FEEDBACK_PATTERN_HW_TAP=100D10000I2100F
+FEEDBACK_PATTERN_HW_HOLD=100D10000I2100F
+FEEDBACK_PATTERN_MESSAGE=100D10000I2100F
+FEEDBACK_PATTERN_EMAIL=100D10000I2100F
+FEEDBACK_PATTERN_WAKEUP=100D10000I2100F
+FEEDBACK_PATTERN_SCHEDULE=100D10000I2100F
+FEEDBACK_PATTERN_TIMER=100D10000I2100F
+FEEDBACK_PATTERN_GENERAL=100D10000I2100F
+FEEDBACK_PATTERN_POWERON=100D10000I2100F
+FEEDBACK_PATTERN_POWEROFF=100D10000I2100F
+FEEDBACK_PATTERN_CHARGERCONN=100D10000I2100F
+FEEDBACK_PATTERN_LOWBATT=100D10000I2100F
+FEEDBACK_PATTERN_VIBRATION_ON=100D10000I2100F
+FEEDBACK_PATTERN_DEFAULT=100D10000I2100F
index 74c668e0174c58de8066dd193103dded3b1a66c9..f0cc2c2bda305c6d9d9063e0725e04645f76f0cf 100755 (executable)
@@ -62,7 +62,7 @@ typedef enum {
 
        FEEDBACK_PATTERN_RINGER                 = 129,   /**< Feedback pattern for incoming call */
        FEEDBACK_PATTERN_NOTIFICATION           = 146,   /**< Feedback pattern for notification */
-
+       FEEDBACK_PATTERN_DEFAULT                = 9999,  /**< Feedback pattern for default information */
        FEEDBACK_PATTERN_RESERVED_END           = 10000,
        // Add new pattern ids for Mobile and Wearable devices here
        // ...
index dc6a9d8b3e55dec06f38169b2594a5b1434be3f5..9f31d72f7cffc6ee03d4ebca960abcb14b42bef4 100644 (file)
@@ -1,39 +1,40 @@
 [Vibration]
-FEEDBACK_PATTERN_SIP=100D
-FEEDBACK_PATTERN_KEY0=100D
-FEEDBACK_PATTERN_KEY1=100D
-FEEDBACK_PATTERN_KEY2=100D
-FEEDBACK_PATTERN_KEY3=100D
-FEEDBACK_PATTERN_KEY4=100D
-FEEDBACK_PATTERN_KEY5=100D
-FEEDBACK_PATTERN_KEY6=100D
-FEEDBACK_PATTERN_KEY7=100D
-FEEDBACK_PATTERN_KEY8=100D
-FEEDBACK_PATTERN_KEY9=100D
-FEEDBACK_PATTERN_KEY_STAR=100D
-FEEDBACK_PATTERN_KEY_SHARP=100D
-FEEDBACK_PATTERN_KEY_BACK=100D
-FEEDBACK_PATTERN_HOLD=100D0W
-FEEDBACK_PATTERN_HW_TAP=100D
-FEEDBACK_PATTERN_HW_HOLD=100D
-FEEDBACK_PATTERN_MESSAGE=250D250W250D750W
-FEEDBACK_PATTERN_EMAIL=250D250W250D750W
-FEEDBACK_PATTERN_WAKEUP=1500D2000W
-FEEDBACK_PATTERN_SCHEDULE=250D250W250D750W
-FEEDBACK_PATTERN_TIMER=1500D2000W
-FEEDBACK_PATTERN_GENERAL=100D0W
-FEEDBACK_PATTERN_POWERON=100D0W
-FEEDBACK_PATTERN_POWEROFF=500D0W
-FEEDBACK_PATTERN_CHARGERCONN=100D0W
-FEEDBACK_PATTERN_LOWBATT=75D25W75D300W
-FEEDBACK_PATTERN_VIBRATION_ON=500D0W
-FEEDBACK_PATTERN_MESSAGE_ON_CALL=0D
-FEEDBACK_PATTERN_EMAIL_ON_CALL=0D
-FEEDBACK_PATTERN_WAKEUP_ON_CALL=0D
-FEEDBACK_PATTERN_SCHEDULE_ON_CALL=0D
-FEEDBACK_PATTERN_TIMER_ON_CALL=0D
-FEEDBACK_PATTERN_GENERAL_ON_CALL=100D
-FEEDBACK_PATTERN_CHARGERCONN_ON_CALL=0D
-FEEDBACK_PATTERN_LOWBATT_ON_CALL=0D
-FEEDBACK_PATTERN_OUTGOING_CALL=100D
-FEEDBACK_PATTERN_SEND_SOS_MESSAGE=75D25W75D300W
+FEEDBACK_PATTERN_SIP=100D10000I2100F
+FEEDBACK_PATTERN_KEY0=100D10000I2100F
+FEEDBACK_PATTERN_KEY1=100D10000I2100F
+FEEDBACK_PATTERN_KEY2=100D10000I2100F
+FEEDBACK_PATTERN_KEY3=100D10000I2100F
+FEEDBACK_PATTERN_KEY4=100D10000I2100F
+FEEDBACK_PATTERN_KEY5=100D10000I2100F
+FEEDBACK_PATTERN_KEY6=100D10000I2100F
+FEEDBACK_PATTERN_KEY7=100D10000I2100F
+FEEDBACK_PATTERN_KEY8=100D10000I2100F
+FEEDBACK_PATTERN_KEY9=100D10000I2100F
+FEEDBACK_PATTERN_KEY_STAR=100D10000I2100F
+FEEDBACK_PATTERN_KEY_SHARP=100D10000I2100F
+FEEDBACK_PATTERN_KEY_BACK=100D10000I2100F
+FEEDBACK_PATTERN_HOLD=100D10000I2100F0W
+FEEDBACK_PATTERN_HW_TAP=100D10000I2100F
+FEEDBACK_PATTERN_HW_HOLD=100D10000I2100F
+FEEDBACK_PATTERN_MESSAGE=250D10000I2100F250W250D10000I2100F750W
+FEEDBACK_PATTERN_EMAIL=250D10000I2100F250W250D10000I2100F750W
+FEEDBACK_PATTERN_WAKEUP=1500D10000I2100F2000W
+FEEDBACK_PATTERN_SCHEDULE=250D10000I2100F250W250D10000I2100F750W
+FEEDBACK_PATTERN_TIMER=1500D10000I2100F2000W
+FEEDBACK_PATTERN_GENERAL=100D10000I2100F0W
+FEEDBACK_PATTERN_POWERON=100D10000I2100F0W
+FEEDBACK_PATTERN_POWEROFF=500D10000I2100F0W
+FEEDBACK_PATTERN_CHARGERCONN=100D10000I2100F0W
+FEEDBACK_PATTERN_LOWBATT=75D10000I2100F25W75D10000I2100F300W
+FEEDBACK_PATTERN_VIBRATION_ON=500D10000I2100F0W
+FEEDBACK_PATTERN_MESSAGE_ON_CALL=0D10000I2100F
+FEEDBACK_PATTERN_EMAIL_ON_CALL=0D10000I2100F
+FEEDBACK_PATTERN_WAKEUP_ON_CALL=0D10000I2100F
+FEEDBACK_PATTERN_SCHEDULE_ON_CALL=0D10000I2100F
+FEEDBACK_PATTERN_TIMER_ON_CALL=0D10000I2100F
+FEEDBACK_PATTERN_GENERAL_ON_CALL=100D10000I2100F
+FEEDBACK_PATTERN_CHARGERCONN_ON_CALL=0D10000I2100F
+FEEDBACK_PATTERN_LOWBATT_ON_CALL=0D10000I2100F
+FEEDBACK_PATTERN_OUTGOING_CALL=100D10000I2100F
+FEEDBACK_PATTERN_SEND_SOS_MESSAGE=75D10000I2100F25W75D10000I2100F300W
+FEEDBACK_PATTERN_DEFAULT=100D10000I2100F
index e5eab3e902d462179f8213d3964da348b1f300e1..5f96d001afe16ff8cef696d81845cc7a9c85dae8 100644 (file)
@@ -108,6 +108,7 @@ static const struct pattern_field mobile_str_pattern[] = {
        {"FEEDBACK_PATTERN_SYSTEM_MID", FEEDBACK_PATTERN_SYSTEM_MID},
        {"FEEDBACK_PATTERN_RINGER", FEEDBACK_PATTERN_RINGER},
        {"FEEDBACK_PATTERN_NOTIFICATION", FEEDBACK_PATTERN_NOTIFICATION},
+       {"FEEDBACK_PATTERN_DEFAULT", FEEDBACK_PATTERN_DEFAULT},
 };
 
 static const struct pattern_field wearable_str_pattern[] = {
@@ -175,6 +176,7 @@ static const struct pattern_field wearable_str_pattern[] = {
        {"FEEDBACK_PATTERN_SYSTEM_MID", FEEDBACK_PATTERN_SYSTEM_MID},
        {"FEEDBACK_PATTERN_RINGER", FEEDBACK_PATTERN_RINGER},
        {"FEEDBACK_PATTERN_NOTIFICATION", FEEDBACK_PATTERN_NOTIFICATION},
+       {"FEEDBACK_PATTERN_DEFAULT", FEEDBACK_PATTERN_DEFAULT},
 };
 
 static const struct pattern_field common_str_pattern[] = {
@@ -232,6 +234,7 @@ static const struct pattern_field common_str_pattern[] = {
        {"FEEDBACK_PATTERN_LIST_REORDER", FEEDBACK_PATTERN_LIST_REORDER},
        {"FEEDBACK_PATTERN_LIST_SLIDER", FEEDBACK_PATTERN_LIST_SLIDER},
        {"FEEDBACK_PATTERN_VOLUME_KEY", FEEDBACK_PATTERN_VOLUME_KEY},
+       {"FEEDBACK_PATTERN_DEFAULT", FEEDBACK_PATTERN_DEFAULT},
 };
 
 typedef enum {
@@ -938,9 +941,9 @@ static int mobile_get_strength_type(int type, int pattern)
        } else if (CHECK_VIBRATION(type)) {
                if (pattern >= FEEDBACK_PATTERN_MESSAGE &&
                    pattern <= FEEDBACK_PATTERN_GENERAL)
-                       return noti_level * HAPTIC_FEEDBACK_STEP;
+                       return (noti_level? (noti_level/2 + 1): 0);
                else
-                       return vib_level * HAPTIC_FEEDBACK_STEP;
+                       return (vib_level? (vib_level/2 + 1): 0);
        }
 
        return -EINVAL;
@@ -962,15 +965,15 @@ static int wearable_get_strength_type(int type, int pattern)
        } else if (CHECK_VIBRATION(type)) {
                if (pattern >= FEEDBACK_PATTERN_TAP && pattern <= FEEDBACK_PATTERN_HW_HOLD) {
                        _D("use default level");
-                       return DEFAULT_VIB_LEVEL * HAPTIC_FEEDBACK_STEP;
+                       return (DEFAULT_VIB_LEVEL? (DEFAULT_VIB_LEVEL/2 + 1): 0);
                }
                /* if call status is ON, vibration magnitude is 20% */
                if (pattern != FEEDBACK_PATTERN_RINGER &&
                    (callstatus == VCONFKEY_CALL_VOICE_ACTIVE || callstatus == VCONFKEY_CALL_VIDEO_ACTIVE)) {
                        _W("force change weak level");
-                       return HAPTIC_FEEDBACK_STEP;
+                       return 1;
                }
-               return noti_level * HAPTIC_FEEDBACK_STEP;
+               return (noti_level? (noti_level/2 + 1): 0);
        }
        return -EINVAL;
 }
@@ -989,7 +992,7 @@ static int common_get_strength_type(int type, int pattern)
                else
                        return VOLUME_TYPE_SYSTEM;
        } else if (CHECK_VIBRATION(type)) {
-               return DEFAULT_VIB_LEVEL * HAPTIC_FEEDBACK_STEP;
+               return (DEFAULT_VIB_LEVEL? (DEFAULT_VIB_LEVEL/2 + 1): 0);
        }
 
        return -EINVAL;
index 15cd741bf5caec7bf2d210d050699d956cb8d5a2..15ffd42c36da7200dfdb397993cb7c97572003a8 100644 (file)
@@ -207,7 +207,7 @@ static int vibrator_play(feedback_pattern_e pattern)
        if (profile->get_strength_type)
                level = profile->get_strength_type(FEEDBACK_TYPE_VIBRATION, pattern);
        else
-               level = DEFAULT_VIB_LEVEL * HAPTIC_FEEDBACK_STEP;
+               level = (DEFAULT_VIB_LEVEL? (DEFAULT_VIB_LEVEL/2 + 1): 0);
 
        temp = strdup(profile->str_pattern(pattern));
        data = trim_str(temp);
index f642a08e13acb252d72bca67f312c0a97487a7a5..55dad7818be9ae7517bdd818b2df6580c1d21156 100644 (file)
@@ -1,18 +1,19 @@
 [Vibration]
-FEEDBACK_PATTERN_TAP=100D
-FEEDBACK_PATTERN_SIP=100D
-FEEDBACK_PATTERN_HOLD=100D
-FEEDBACK_PATTERN_MESSAGE=100D
-FEEDBACK_PATTERN_EMAIL=100D
-FEEDBACK_PATTERN_WAKEUP=100D
-FEEDBACK_PATTERN_SCHEDULE=100D
-FEEDBACK_PATTERN_TIMER=100D
-FEEDBACK_PATTERN_GENERAL=100D
-FEEDBACK_PATTERN_CHARGERCONN=100D
-FEEDBACK_PATTERN_LOWBATT=100D
-FEEDBACK_PATTERN_VIBRATION_ON=100D
-FEEDBACK_PATTERN_BT_CONNECTED=100D
-FEEDBACK_PATTERN_BT_DISCONNECTED=100D
-FEEDBACK_PATTERN_CHARGERCONN_ON_CALL=100D
-FEEDBACK_PATTERN_LOWBATT_ON_CALL=100D
-FEEDBACK_PATTERN_SEND_SOS_MESSAGE=100D
+FEEDBACK_PATTERN_TAP=100D10000I2100F
+FEEDBACK_PATTERN_SIP=100D10000I2100F
+FEEDBACK_PATTERN_HOLD=100D10000I2100F
+FEEDBACK_PATTERN_MESSAGE=100D10000I2100F
+FEEDBACK_PATTERN_EMAIL=100D10000I2100F
+FEEDBACK_PATTERN_WAKEUP=100D10000I2100F
+FEEDBACK_PATTERN_SCHEDULE=100D10000I2100F
+FEEDBACK_PATTERN_TIMER=100D10000I2100F
+FEEDBACK_PATTERN_GENERAL=100D10000I2100F
+FEEDBACK_PATTERN_CHARGERCONN=100D10000I2100F
+FEEDBACK_PATTERN_LOWBATT=100D10000I2100F
+FEEDBACK_PATTERN_VIBRATION_ON=100D10000I2100F
+FEEDBACK_PATTERN_BT_CONNECTED=100D10000I2100F
+FEEDBACK_PATTERN_BT_DISCONNECTED=100D10000I2100F
+FEEDBACK_PATTERN_CHARGERCONN_ON_CALL=100D10000I2100F
+FEEDBACK_PATTERN_LOWBATT_ON_CALL=100D10000I2100F
+FEEDBACK_PATTERN_SEND_SOS_MESSAGE=100D10000I2100F
+FEEDBACK_PATTERN_DEFAULT=100D10000I2100F