feedback: Add new feedback_pattern for "da" profile 97/298397/1 accepted/tizen/7.0/unified/20230911.170233
authorYunhee Seo <yuni.seo@samsung.com>
Tue, 5 Sep 2023 11:43:45 +0000 (20:43 +0900)
committerYunhee Seo <yuni.seo@samsung.com>
Wed, 6 Sep 2023 10:27:07 +0000 (19:27 +0900)
To support new feedback_pattern from "da" profile,
new feedback_patterns are added to feedback_pattern_internal_e.
Also, "da" profile supports existing common profile feedback_pattern at the same time.
Thus, da_str_pattern has both profile feedback_pattern "da" and "common".
To use "da" profile feedback_pattern, "tizen.org/feature/profile" should be set to "da".

Change-Id: Ia7c544df4f9811a15617b7085fcd6a8c5d8f3a7b
Signed-off-by: Yunhee Seo <yuni.seo@samsung.com>
include/feedback-ids-internal.h
src/check.c

index 0dd5c8b..a09342d 100755 (executable)
@@ -244,6 +244,40 @@ typedef enum {
        // Add new pattern ids for IoT devices here
        // ...
        FEEDBACK_PATTERN_IOT_END                = 40000,
+       FEEDBACK_PATTERN_BASIC,
+       FEEDBACK_PATTERN_TOGGLE_ON,
+       FEEDBACK_PATTERN_TOGGLE_OFF,
+       FEEDBACK_PATTERN_LONG_PRESS_ON,
+       FEEDBACK_PATTERN_LONG_PRESS_OFF,
+       FEEDBACK_PATTERN_INVALID,
+       FEEDBACK_PATTERN_CONFIRM,
+       FEEDBACK_PATTERN_POPUP,
+       FEEDBACK_PATTERN_PREHEAT_ENDING,
+       FEEDBACK_PATTERN_TASK_ENDING,
+       FEEDBACK_PATTERN_SCROLL,
+       FEEDBACK_PATTERN_PAGE_TURN,
+       FEEDBACK_PATTERN_OP_START,
+       FEEDBACK_PATTERN_OP_PAUSE,
+       FEEDBACK_PATTERN_OP_STOP,
+       FEEDBACK_PATTERN_DEFAULT,
+       FEEDBACK_PATTERN_DEFAULT_LEVEL1,
+       FEEDBACK_PATTERN_LEVEL1,
+       FEEDBACK_PATTERN_LEVEL2,
+       FEEDBACK_PATTERN_LEVEL3,
+       FEEDBACK_PATTERN_LEVEL4,
+       FEEDBACK_PATTERN_LEVEL5,
+       FEEDBACK_PATTERN_LEVEL6,
+       FEEDBACK_PATTERN_LEVEL7,
+       FEEDBACK_PATTERN_LEVEL8,
+       FEEDBACK_PATTERN_LEVEL9,
+       FEEDBACK_PATTERN_LEVEL10,
+       FEEDBACK_PATTERN_TIMER_ENDING,
+       FEEDBACK_PATTERN_BURNER_DETECTED,
+       FEEDBACK_PATTERN_BURNER_MOVED,
+       FEEDBACK_PATTERN_CONNECTED,
+       FEEDBACK_PATTERN_DISCONNECTED,
+
+       FEEDBACK_PATTERN_DA_END                 = 50000,
        FEEDBACK_PATTERN_INTERNAL_END           = 90000,
 } feedback_pattern_internal_e;
 
index 1b5c67b..88a3708 100644 (file)
@@ -398,6 +398,80 @@ static const struct pattern_field wearable_str_pattern[] = {
        {"FEEDBACK_PATTERN_SMART_GESTURE",FEEDBACK_PATTERN_SMART_GESTURE},
 };
 
+static const struct pattern_field da_str_pattern[] = {
+       {"FEEDBACK_PATTERN_TAP", FEEDBACK_PATTERN_TAP},
+       {"FEEDBACK_PATTERN_SIP", FEEDBACK_PATTERN_SIP},
+       {"FEEDBACK_PATTERN_KEY0", FEEDBACK_PATTERN_KEY0},
+       {"FEEDBACK_PATTERN_KEY1", FEEDBACK_PATTERN_KEY1},
+       {"FEEDBACK_PATTERN_KEY2", FEEDBACK_PATTERN_KEY2},
+       {"FEEDBACK_PATTERN_KEY3", FEEDBACK_PATTERN_KEY3},
+       {"FEEDBACK_PATTERN_KEY4", FEEDBACK_PATTERN_KEY4},
+       {"FEEDBACK_PATTERN_KEY5", FEEDBACK_PATTERN_KEY5},
+       {"FEEDBACK_PATTERN_KEY6", FEEDBACK_PATTERN_KEY6},
+       {"FEEDBACK_PATTERN_KEY7", FEEDBACK_PATTERN_KEY7},
+       {"FEEDBACK_PATTERN_KEY8", FEEDBACK_PATTERN_KEY8},
+       {"FEEDBACK_PATTERN_KEY9", FEEDBACK_PATTERN_KEY9},
+       {"FEEDBACK_PATTERN_KEY_STAR", FEEDBACK_PATTERN_KEY_STAR},
+       {"FEEDBACK_PATTERN_KEY_SHARP", FEEDBACK_PATTERN_KEY_SHARP},
+       {"FEEDBACK_PATTERN_KEY_BACK", FEEDBACK_PATTERN_KEY_BACK},
+       {"FEEDBACK_PATTERN_HOLD", FEEDBACK_PATTERN_HOLD},
+       {"FEEDBACK_PATTERN_HW_TAP", FEEDBACK_PATTERN_HW_TAP},
+       {"FEEDBACK_PATTERN_HW_HOLD", FEEDBACK_PATTERN_HW_HOLD},
+       {"FEEDBACK_PATTERN_MESSAGE", FEEDBACK_PATTERN_MESSAGE},
+       {"FEEDBACK_PATTERN_EMAIL", FEEDBACK_PATTERN_EMAIL},
+       {"FEEDBACK_PATTERN_WAKEUP", FEEDBACK_PATTERN_WAKEUP},
+       {"FEEDBACK_PATTERN_SCHEDULE", FEEDBACK_PATTERN_SCHEDULE},
+       {"FEEDBACK_PATTERN_TIMER", FEEDBACK_PATTERN_TIMER},
+       {"FEEDBACK_PATTERN_GENERAL", FEEDBACK_PATTERN_GENERAL},
+       {"FEEDBACK_PATTERN_POWERON", FEEDBACK_PATTERN_POWERON},
+       {"FEEDBACK_PATTERN_POWEROFF", FEEDBACK_PATTERN_POWEROFF},
+       {"FEEDBACK_PATTERN_CHARGERCONN", FEEDBACK_PATTERN_CHARGERCONN},
+       {"FEEDBACK_PATTERN_CHARGING_ERROR", FEEDBACK_PATTERN_CHARGING_ERROR},
+       {"FEEDBACK_PATTERN_FULLCHARGED", FEEDBACK_PATTERN_FULLCHARGED},
+       {"FEEDBACK_PATTERN_LOWBATT", FEEDBACK_PATTERN_LOWBATT},
+       {"FEEDBACK_PATTERN_LOCK", FEEDBACK_PATTERN_LOCK},
+       {"FEEDBACK_PATTERN_UNLOCK", FEEDBACK_PATTERN_UNLOCK},
+       {"FEEDBACK_PATTERN_VIBRATION_ON", FEEDBACK_PATTERN_VIBRATION_ON},
+       {"FEEDBACK_PATTERN_SILENT_OFF", FEEDBACK_PATTERN_SILENT_OFF},
+       {"FEEDBACK_PATTERN_BT_CONNECTED", FEEDBACK_PATTERN_BT_CONNECTED},
+       {"FEEDBACK_PATTERN_BT_DISCONNECTED", FEEDBACK_PATTERN_BT_DISCONNECTED},
+       {"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_BASIC", FEEDBACK_PATTERN_BASIC},
+       {"FEEDBACK_PATTERN_TOGGLE_ON", FEEDBACK_PATTERN_TOGGLE_ON},
+       {"FEEDBACK_PATTERN_TOGGLE_OFF", FEEDBACK_PATTERN_TOGGLE_OFF},
+       {"FEEDBACK_PATTERN_LONG_PRESS_ON", FEEDBACK_PATTERN_LONG_PRESS_ON},
+       {"FEEDBACK_PATTERN_LONG_PRESS_OFF", FEEDBACK_PATTERN_LONG_PRESS_OFF},
+       {"FEEDBACK_PATTERN_INVALID", FEEDBACK_PATTERN_INVALID},
+       {"FEEDBACK_PATTERN_CONFIRM", FEEDBACK_PATTERN_CONFIRM},
+       {"FEEDBACK_PATTERN_POPUP", FEEDBACK_PATTERN_POPUP},
+       {"FEEDBACK_PATTERN_PREHEAT_ENDING", FEEDBACK_PATTERN_PREHEAT_ENDING},
+       {"FEEDBACK_PATTERN_TASK_ENDING", FEEDBACK_PATTERN_TASK_ENDING},
+       {"FEEDBACK_PATTERN_SCROLL", FEEDBACK_PATTERN_SCROLL},
+       {"FEEDBACK_PATTERN_PAGE_TURN", FEEDBACK_PATTERN_PAGE_TURN},
+       {"FEEDBACK_PATTERN_OP_START", FEEDBACK_PATTERN_OP_START},
+       {"FEEDBACK_PATTERN_OP_PAUSE", FEEDBACK_PATTERN_OP_PAUSE},
+       {"FEEDBACK_PATTERN_OP_STOP", FEEDBACK_PATTERN_OP_STOP},
+       {"FEEDBACK_PATTERN_DEFAULT", FEEDBACK_PATTERN_DEFAULT},
+       {"FEEDBACK_PATTERN_DEFAULT_LEVEL1", FEEDBACK_PATTERN_DEFAULT_LEVEL1},
+       {"FEEDBACK_PATTERN_LEVEL1", FEEDBACK_PATTERN_LEVEL1},
+       {"FEEDBACK_PATTERN_LEVEL2", FEEDBACK_PATTERN_LEVEL2},
+       {"FEEDBACK_PATTERN_LEVEL3", FEEDBACK_PATTERN_LEVEL3},
+       {"FEEDBACK_PATTERN_LEVEL4", FEEDBACK_PATTERN_LEVEL4},
+       {"FEEDBACK_PATTERN_LEVEL5", FEEDBACK_PATTERN_LEVEL5},
+       {"FEEDBACK_PATTERN_LEVEL6", FEEDBACK_PATTERN_LEVEL6},
+       {"FEEDBACK_PATTERN_LEVEL7", FEEDBACK_PATTERN_LEVEL7},
+       {"FEEDBACK_PATTERN_LEVEL8", FEEDBACK_PATTERN_LEVEL8},
+       {"FEEDBACK_PATTERN_LEVEL9", FEEDBACK_PATTERN_LEVEL9},
+       {"FEEDBACK_PATTERN_LEVEL10", FEEDBACK_PATTERN_LEVEL10},
+       {"FEEDBACK_PATTERN_TIMER_ENDING", FEEDBACK_PATTERN_TIMER_ENDING},
+       {"FEEDBACK_PATTERN_BURNER_DETECTED", FEEDBACK_PATTERN_BURNER_DETECTED},
+       {"FEEDBACK_PATTERN_BURNER_MOVED", FEEDBACK_PATTERN_BURNER_MOVED},
+       {"FEEDBACK_PATTERN_CONNECTED", FEEDBACK_PATTERN_CONNECTED},
+       {"FEEDBACK_PATTERN_DISCONNECTED", FEEDBACK_PATTERN_DISCONNECTED},
+};
+
 static const struct pattern_field common_str_pattern[] = {
        {"FEEDBACK_PATTERN_TAP", FEEDBACK_PATTERN_TAP},
        {"FEEDBACK_PATTERN_SIP", FEEDBACK_PATTERN_SIP},
@@ -636,7 +710,8 @@ typedef enum {
        PROFILE_NONE = -1,
        PROFILE_MOBILE = 1,
        PROFILE_WEARABLE = 2,
-       PROFILE_COMMON = 3,
+       PROFILE_DA = 3,
+       PROFILE_COMMON = 4,
 } profile_e;
 
 static int callstatus;
@@ -662,6 +737,7 @@ static int disconnect_alert_mode;
 #define PROFILE                        "tizen.org/feature/profile"
 #define PROFILE_MOBILE_STRING  "mobile"
 #define PROFILE_WEARABLE_STRING        "wearable"
+#define PROFILE_DA_STRING      "da"
 #define PROFILE_COMMON_STRING  "common"
 
 static profile_e get_profile(void)
@@ -686,6 +762,8 @@ static profile_e get_profile(void)
 //LCOV_EXCL_START
        else if (!strncmp(PROFILE_WEARABLE_STRING, profile, len))
                set = PROFILE_WEARABLE;
+       else if (!strncmp(PROFILE_DA_STRING, profile, len))
+               set = PROFILE_DA;
        else
                set = PROFILE_COMMON;
 //LCOV_EXCL_STOP
@@ -708,6 +786,8 @@ static char *profile_get_name()
                profile_name = PROFILE_MOBILE_STRING;
        else if (prof == PROFILE_WEARABLE)
                profile_name = PROFILE_WEARABLE_STRING;
+       else if (prof == PROFILE_DA)
+               profile_name = PROFILE_DA_STRING;
        else
                profile_name = PROFILE_COMMON_STRING;
 
@@ -727,6 +807,8 @@ static int profile_get_num_of_pattern()
 //LCOV_EXCL_START
        else if (prof == PROFILE_WEARABLE)
                return ARR_SIZE(wearable_str_pattern);
+       else if (prof == PROFILE_DA)
+               return ARR_SIZE(da_str_pattern);
        else
                return ARR_SIZE(common_str_pattern);
 //LCOV_EXCL_STOP
@@ -779,6 +861,11 @@ static const char *profile_str_pattern(int pattern)
                        if (pattern == wearable_str_standard[i].id)
                                return wearable_str_standard[i].string;
                }
+       } else if (prof == PROFILE_DA) {
+               for (i = 0; i < profile_get_num_of_pattern(); i++) {
+                       if (pattern == da_str_pattern[i].id)
+                               return da_str_pattern[i].string;
+               }
        } else {
                for (i = 0; i < profile_get_num_of_pattern(); i++) {
                        if (pattern == common_str_pattern[i].id)
@@ -818,6 +905,11 @@ static int profile_get_pattern_enum(char *pattern)
                        if (!strncmp(pattern, wearable_str_standard[i].string, len))
                                return wearable_str_standard[i].id;
                }
+       }else if (prof == PROFILE_DA) {
+               for (i = 0; i < profile_get_num_of_pattern(); i++) {
+                       if (!strncmp(pattern, da_str_pattern[i].string, len))
+                               return da_str_pattern[i].id;
+               }
        } else {
                for (i = 0; i < profile_get_num_of_pattern(); i++) {
                        if (!strncmp(pattern, common_str_pattern[i].string, len))
@@ -936,7 +1028,7 @@ static void profile_init(void)
 
        prof = get_profile();
 
-       if (prof == PROFILE_COMMON)
+       if (prof == PROFILE_COMMON || prof == PROFILE_DA)
                return; //LCOV_EXCL_LINE
        else if (prof == PROFILE_MOBILE) {
                if (vconf_get_bool(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, &lock_sndstatus) < 0)
@@ -1077,7 +1169,7 @@ static void profile_exit(void)
 
        prof = get_profile();
 
-       if (prof == PROFILE_COMMON)
+       if (prof == PROFILE_COMMON || prof == PROFILE_DA)
                return;
        else if (prof == PROFILE_MOBILE) {
                ret_val = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOUND_LOCK_BOOL, feedback_lock_sndstatus_cb);
@@ -1216,7 +1308,7 @@ static bool profile_get_switched_pattern(int pattern, int *switched)
        int changed_pattern = pattern;
        int prof = get_profile();
 
-       if (!switched || prof == PROFILE_COMMON)
+       if (!switched || prof == PROFILE_COMMON || prof == PROFILE_DA)
                return false;
 
        //LCOV_EXCL_START