Sync code with mcd product 35/235735/7
authorYunmi Ha <yunmi.ha@samsung.com>
Tue, 9 Jun 2020 07:24:12 +0000 (16:24 +0900)
committerYunmi Ha <yunmi.ha@samsung.com>
Tue, 16 Jun 2020 06:18:47 +0000 (15:18 +0900)
- Add additional internal ids
- Add additional product ids
- Add some check code for additional vconf value

Change-Id: I8e5420bb6d48aa280c4247ce769ed4276789c216
Signed-off-by: Yunmi Ha <yunmi.ha@samsung.com>
170 files changed:
CMakeLists.txt
common/data/vibration.conf
include/feedback-ids-internal.h
include/feedback-ids-product.h [new file with mode: 0644]
include/feedback-internal.h [changed mode: 0644->0755]
mobile/data/vibration.conf
packaging/libfeedback.spec
src/check.c
src/common.h
src/feedback.c
src/profiles.h
src/sound.c
src/vibrator.c
wearable/data/sound.conf
wearable/data/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg [new file with mode: 0755]
wearable/data/sound/BT_Connection/BT_Connect.ogg [new file with mode: 0755]
wearable/data/sound/BT_Connection/BT_Disconnect.ogg [new file with mode: 0755]
wearable/data/sound/BT_Connection/BT_Pair_Waiting(Progress).ogg [new file with mode: 0755]
wearable/data/sound/BT_Connection/BT_Paring(Popup).ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Email_Doorbell.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Gear_Communication_Push.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/General_notification_Pure_Bell.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Message_Knock.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Notification1(default).ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Notification2.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Notification3.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Notification4.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Notification5.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/Schedule_Grasshopper.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Clockwork.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Driving_Signal.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Flicker.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/General_notification_Pure_Bell(default).ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Ice_Cube.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Metallic.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Music_Box.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Ticktac.ogg [new file with mode: 0755]
wearable/data/sound/Notifications/for_3G/Wine_Glass.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/Ringtone1(default).ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/Ringtone2.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/Ringtone3.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/Ringtone4.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/Ringtone5.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/Wine_Glass(default).ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Across_the_Skies.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/City_Lights.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Masterpiece.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Modernness.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Office_Hours.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Spaceship.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Sweet_Tone.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Timeless.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Twinkle.ogg [new file with mode: 0755]
wearable/data/sound/Ringtones/for_3G/Wine_Glass(default).ogg [new file with mode: 0755]
wearable/data/sound/S-Health/Countdown.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/Countdown_Start_cue.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/Notice.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/Pause_Resume.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/Reward1.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/Reward2.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/S-Health_Measuring_Error.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/S-Health_Measuring_Success.ogg [new file with mode: 0755]
wearable/data/sound/S-Health/Separator.ogg [new file with mode: 0755]
wearable/data/sound/Safety/CMAS.ogg [new file with mode: 0755]
wearable/data/sound/Safety/Low_power_ringtone.ogg [new file with mode: 0755]
wearable/data/sound/Safety/Pressure_alert.ogg [new file with mode: 0755]
wearable/data/sound/Safety/Safety_warning.ogg [new file with mode: 0755]
wearable/data/sound/Safety/Temp_warning_beep.ogg [new file with mode: 0755]
wearable/data/sound/Safety/Temp_warning_double_beep.ogg [new file with mode: 0755]
wearable/data/sound/System/Alarms_on_call.ogg [new file with mode: 0755]
wearable/data/sound/System/Call_Connect.ogg [new file with mode: 0755]
wearable/data/sound/System/Call_End.ogg [new file with mode: 0755]
wearable/data/sound/System/Charger_connection.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key0.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key1.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key2.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key3.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key4.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key5.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key6.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key7.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key8.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/Key9.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/KeyAsterisk.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/KeySharp.wav [new file with mode: 0755]
wearable/data/sound/System/DTMF/key0.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key1.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key2.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key3.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key4.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key5.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key6.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key7.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key8.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/key9.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/keyasterisk.ogg [new file with mode: 0755]
wearable/data/sound/System/DTMF/keysharp.ogg [new file with mode: 0755]
wearable/data/sound/System/Find_my_Gear.ogg [new file with mode: 0755]
wearable/data/sound/System/Hourly_alert.ogg [new file with mode: 0755]
wearable/data/sound/System/Low_Battery.ogg [new file with mode: 0755]
wearable/data/sound/System/PowerOn.ogg [new file with mode: 0755]
wearable/data/sound/System/Screen_Capture.ogg [new file with mode: 0755]
wearable/data/sound/System/Silent_mode_off.ogg [new file with mode: 0755]
wearable/data/sound/System/Temp_warning.ogg [new file with mode: 0755]
wearable/data/sound/System/Temp_warning_beep.ogg [new file with mode: 0755]
wearable/data/sound/System/Temp_warning_double_beep.ogg [new file with mode: 0755]
wearable/data/sound/System/Touch.ogg [new file with mode: 0755]
wearable/data/sound/System/Volume_control.wav [new file with mode: 0755]
wearable/data/sound/System/sip.ogg [new file with mode: 0755]
wearable/data/sound/System/sip_backspace.ogg [new file with mode: 0755]
wearable/data/vibration.conf
wearable/data/vibration/CMAS [new file with mode: 0644]
wearable/data/vibration/CMAS_CA [new file with mode: 0644]
wearable/data/vibration/E_W1 [new file with mode: 0644]
wearable/data/vibration/E_W2 [new file with mode: 0644]
wearable/data/vibration/F_W [new file with mode: 0644]
wearable/data/vibration/G_WB [new file with mode: 0644]
wearable/data/vibration/H_LIGHT [new file with mode: 0644]
wearable/data/vibration/J_WB [new file with mode: 0644]
wearable/data/vibration/J_WB_10 [new file with mode: 0644]
wearable/data/vibration/J_WB_2 [new file with mode: 0644]
wearable/data/vibration/J_WB_3 [new file with mode: 0644]
wearable/data/vibration/J_WB_4 [new file with mode: 0644]
wearable/data/vibration/J_WB_5 [new file with mode: 0644]
wearable/data/vibration/J_WB_6 [new file with mode: 0644]
wearable/data/vibration/J_WB_7 [new file with mode: 0644]
wearable/data/vibration/J_WB_8 [new file with mode: 0644]
wearable/data/vibration/J_WB_9 [new file with mode: 0644]
wearable/data/vibration/J_WHB [new file with mode: 0644]
wearable/data/vibration/J_WW [new file with mode: 0644]
wearable/data/vibration/J_W_10 [new file with mode: 0644]
wearable/data/vibration/J_W_2 [new file with mode: 0644]
wearable/data/vibration/J_W_3 [new file with mode: 0644]
wearable/data/vibration/J_W_4 [new file with mode: 0644]
wearable/data/vibration/J_W_5 [new file with mode: 0644]
wearable/data/vibration/J_W_6 [new file with mode: 0644]
wearable/data/vibration/J_W_7 [new file with mode: 0644]
wearable/data/vibration/J_W_8 [new file with mode: 0644]
wearable/data/vibration/J_W_9 [new file with mode: 0644]
wearable/data/vibration/K_WB [new file with mode: 0644]
wearable/data/vibration/K_WB_10 [new file with mode: 0644]
wearable/data/vibration/K_WB_2 [new file with mode: 0644]
wearable/data/vibration/K_WB_3 [new file with mode: 0644]
wearable/data/vibration/K_WB_4 [new file with mode: 0644]
wearable/data/vibration/K_WB_5 [new file with mode: 0644]
wearable/data/vibration/K_WB_6 [new file with mode: 0644]
wearable/data/vibration/K_WB_7 [new file with mode: 0644]
wearable/data/vibration/K_WB_8 [new file with mode: 0644]
wearable/data/vibration/K_WB_9 [new file with mode: 0644]
wearable/data/vibration/K_WW [new file with mode: 0644]
wearable/data/vibration/K_W_10 [new file with mode: 0644]
wearable/data/vibration/K_W_2 [new file with mode: 0644]
wearable/data/vibration/K_W_3 [new file with mode: 0644]
wearable/data/vibration/K_W_4 [new file with mode: 0644]
wearable/data/vibration/K_W_5 [new file with mode: 0644]
wearable/data/vibration/K_W_6 [new file with mode: 0644]
wearable/data/vibration/K_W_7 [new file with mode: 0644]
wearable/data/vibration/K_W_8 [new file with mode: 0644]
wearable/data/vibration/K_W_9 [new file with mode: 0644]
wearable/data/vibration/M1 [new file with mode: 0644]
wearable/data/vibration/M2 [new file with mode: 0644]
wearable/data/vibration/N [new file with mode: 0644]
wearable/data/vibration/O [new file with mode: 0644]
wearable/data/vibration/P [new file with mode: 0644]
wearable/data/vibration/Q [new file with mode: 0644]
wearable/data/vibration/R [new file with mode: 0644]
wearable/data/vibration/S2 [new file with mode: 0644]
wearable/data/vibration/S_B [new file with mode: 0644]
wearable/data/vibration/T [new file with mode: 0644]
wearable/data/vibration/T_LIGHT [new file with mode: 0644]

index 486bca0..f9852ae 100644 (file)
@@ -23,7 +23,8 @@ SET(HEADERS
        include/feedback.h
        include/feedback-ids.h
        include/feedback-internal.h
-       include/feedback-ids-internal.h)
+       include/feedback-ids-internal.h
+       include/feedback-ids-product.h)
 
 ADD_DEFINITIONS("-DFEEDBACK_SYS_SHARE=\"${TZ_SYS_SHARE}\"")
 ADD_DEFINITIONS("-DFEEDBACK_SYS_RO_SHARE=\"${TZ_SYS_RO_SHARE}\"")
@@ -32,7 +33,7 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/src)
 
 INCLUDE(FindPkgConfig)
-pkg_check_modules(pkgs REQUIRED vconf mm-keysound dlog glib-2.0 dbus-1 gio-2.0 capi-system-info)
+pkg_check_modules(pkgs REQUIRED vconf mm-keysound dlog glib-2.0 dbus-1 gio-2.0 capi-system-info capi-media-sound-manager capi-media-wav-player)
 
 FOREACH(flag ${pkgs_CFLAGS})
        SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
index 987c6c6..43d0a88 100644 (file)
@@ -27,4 +27,3 @@ FEEDBACK_PATTERN_POWEROFF=100D10000I2100F
 FEEDBACK_PATTERN_CHARGERCONN=100D10000I2100F
 FEEDBACK_PATTERN_LOWBATT=100D10000I2100F
 FEEDBACK_PATTERN_VIBRATION_ON=100D10000I2100F
-FEEDBACK_PATTERN_DEFAULT=100D10000I2100F
index f0cc2c2..0dd5c8b 100755 (executable)
@@ -42,6 +42,11 @@ extern "C" {
  */
 typedef enum {
        FEEDBACK_PATTERN_INTERNAL_NONE = FEEDBACK_PATTERN_NONE,
+       FEEDBACK_PATTERN_SIP_BACKSPACE          = 2,
+       FEEDBACK_PATTERN_SIP_FUNCTION           = 3,
+       FEEDBACK_PATTERN_SIP_FJKEY              = 4,
+       FEEDBACK_PATTERN_MAX_CHARACTER          = 5,
+       FEEDBACK_PATTERN_MULTI_TAP              = 20,
 
        FEEDBACK_PATTERN_MESSAGE_ON_CALL        = 24,    /**< feedback pattern when incoming a message on call */
        FEEDBACK_PATTERN_EMAIL_ON_CALL          = 26,    /**< feedback pattern when incoming an email on call */
@@ -49,23 +54,189 @@ typedef enum {
        FEEDBACK_PATTERN_SCHEDULE_ON_CALL       = 30,    /**< feedback pattern when alert schedule alarm on call */
        FEEDBACK_PATTERN_TIMER_ON_CALL          = 32,    /**< feedback pattern when alert timer on call */
        FEEDBACK_PATTERN_GENERAL_ON_CALL        = 34,    /**< feedback pattern when alert general event on call */
-
+       FEEDBACK_PATTERN_SMART_ALERT            = 35,
        FEEDBACK_PATTERN_CHARGERCONN_ON_CALL    = 39,    /**< feedback pattern when connecting charger on call */
        FEEDBACK_PATTERN_CHARGING_ERROR_ON_CALL = 41,    /**< feedback pattern when occuring charging error on call */
        FEEDBACK_PATTERN_FULLCHARGED_ON_CALL    = 43,    /**< feedback pattern when full charged on call */
        FEEDBACK_PATTERN_LOWBATT_ON_CALL        = 45,    /**< feedback pattern when low battery on call */
-
+       FEEDBACK_PATTERN_LOCK_SWIPE             = 48,
+       FEEDBACK_PATTERN_UNLOCK_SWIPE,
+       FEEDBACK_PATTERN_GEOMETRIC_LOCK,
+       FEEDBACK_PATTERN_CALLCONNECT,
+       FEEDBACK_PATTERN_DISCALLCONNECT,
        FEEDBACK_PATTERN_OUTGOING_CALL          = 53,    /**< feedback pattern when connected outgoing call */
+       FEEDBACK_PATTERN_MINUTEMINDER,
+       FEEDBACK_PATTERN_BT_PAIRING             = 59,
+       FEEDBACK_PATTERN_BT_WAITING,
        FEEDBACK_PATTERN_SCREEN_CAPTURE         = 61,    /**< feedback pattern when screen capture */
 
-       FEEDBACK_PATTERN_SEND_SOS_MESSAGE       = 69,    /**< feedback pattern when sending SOS message */
+       FEEDBACK_PATTERN_UV_PROCESSING          = 95,
+       FEEDBACK_PATTERN_SHEALTH_START,
+       FEEDBACK_PATTERN_SHEALTH_PAUSE,
+       FEEDBACK_PATTERN_SHEALTH_STOP,
+       FEEDBACK_PATTERN_3RD_APPLICATION,
+       FEEDBACK_PATTERN_TICK,
+       FEEDBACK_PATTERN_TRANSITION_CIRCULAR,
+       FEEDBACK_PATTERN_TRANSITION_POP,
+       FEEDBACK_PATTERN_PROCESS,
+       FEEDBACK_PATTERN_MOVE_LIST,
+       FEEDBACK_PATTERN_DISMISS,
+       FEEDBACK_PATTERN_CLOCK_SECOND_HAND,
+       //SYSTEM_SHORT
+       //SYSTEM_ERROR
+       FEEDBACK_PATTERN_SPIRAL_DOWN            = 109,
+       FEEDBACK_PATTERN_MOVE_LIST_2,
+       FEEDBACK_PATTERN_SPIRAL_UP,
+       //SYSTEM_LONG
+       //SYSTEM_MID
+       FEEDBACK_PATTERN_SILENCE                = 114,
+       FEEDBACK_PATTERN_INACTIVE_TENSION,
+       FEEDBACK_PATTERN_INACTIVE_FINE,
+       //END_EFFECT
+       FEEDBACK_PATTERN_SHEALTH_NOTICE         = 118,
+       FEEDBACK_PATTERN_SHEALTH_GENTLE_ALERT,
+       FEEDBACK_PATTERN_END_EFFECT_FINE,
+       FEEDBACK_PATTERN_CLICK_VALUE,
+       FEEDBACK_PATTERN_CLICK_FINE_TRAIN_1,
+       FEEDBACK_PATTERN_CLICK_FINE,
+       FEEDBACK_PATTERN_CLICK_SLIDER,
+       FEEDBACK_PATTERN_CLICK_MEDIUM,
+       FEEDBACK_PATTERN_CLICK_STRONG,
+       FEEDBACK_PATTERN_TURN_RIGHT,
+       FEEDBACK_PATTERN_TURN_LEFT,
+       FEEDBACK_PATTERN_FUNCTION               = 129,
+//     FEEDBACK_PATTERN_RINGER                 = 129,   /**< Feedback pattern for incoming call */
+       FEEDBACK_PATTERN_VOICE_START,
+       FEEDBACK_PATTERN_VOICE_STOP,
+       FEEDBACK_PATTERN_COMMUNICATION,
+       FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ,
+       FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ,
+       //GENERAL_STRONG_BUZZ
+       FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ = 136,
+       FEEDBACK_PATTERN_SCHEDULE_STRONG_BUZZ,
+       FEEDBACK_PATTERN_WAKEUP_STRONG_BUZZ,
+       FEEDBACK_PATTERN_TIMER_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RINGER_STRONG_BUZZ,
+       FEEDBACK_PATTERN_HEARTBEAT,
+       FEEDBACK_PATTERN_HEARTBEAT_FAST,
+       FEEDBACK_PATTERN_SETTING_ON,
+       FEEDBACK_PATTERN_SETTING_OFF,
+       FEEDBACK_PATTERN_CONNECT,
+       FEEDBACK_PATTERN_DISCONNECT             = 146,
+//     FEEDBACK_PATTERN_NOTIFICATION           = 146,  /**< Feedback pattern for notification */
+       FEEDBACK_PATTERN_FIND_MY_GEAR,
+       FEEDBACK_PATTERN_NOTIFICATION_1,
+       FEEDBACK_PATTERN_NOTIFICATION_1_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_2,
+       FEEDBACK_PATTERN_NOTIFICATION_2_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_3,
+       FEEDBACK_PATTERN_NOTIFICATION_3_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_4,
+       FEEDBACK_PATTERN_NOTIFICATION_4_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_5,
+       FEEDBACK_PATTERN_NOTIFICATION_5_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_6,
+       FEEDBACK_PATTERN_NOTIFICATION_6_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_7,
+       FEEDBACK_PATTERN_NOTIFICATION_7_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_8,
+       FEEDBACK_PATTERN_NOTIFICATION_8_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_9,
+       FEEDBACK_PATTERN_NOTIFICATION_9_STRONG_BUZZ,
+       FEEDBACK_PATTERN_NOTIFICATION_10,
+       FEEDBACK_PATTERN_NOTIFICATION_10_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_1,
+       FEEDBACK_PATTERN_RING_1_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_2,
+       FEEDBACK_PATTERN_RING_2_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_3,
+       FEEDBACK_PATTERN_RING_3_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_4,
+       FEEDBACK_PATTERN_RING_4_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_5,
+       FEEDBACK_PATTERN_RING_5_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_6,
+       FEEDBACK_PATTERN_RING_6_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_7,
+       FEEDBACK_PATTERN_RING_7_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_8,
+       FEEDBACK_PATTERN_RING_8_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_9,
+       FEEDBACK_PATTERN_RING_9_STRONG_BUZZ,
+       FEEDBACK_PATTERN_RING_10,
+       FEEDBACK_PATTERN_RING_10_STRONG_BUZZ,
+
+       FEEDBACK_PATTERN_ALARM_1,
+       FEEDBACK_PATTERN_ALARM_1_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_2,
+       FEEDBACK_PATTERN_ALARM_2_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_3,
+       FEEDBACK_PATTERN_ALARM_3_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_4,
+       FEEDBACK_PATTERN_ALARM_4_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_5,
+       FEEDBACK_PATTERN_ALARM_5_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_6,
+       FEEDBACK_PATTERN_ALARM_6_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_7,
+       FEEDBACK_PATTERN_ALARM_7_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_8,
+       FEEDBACK_PATTERN_ALARM_8_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_9,
+       FEEDBACK_PATTERN_ALARM_9_STRONG_BUZZ,
+       FEEDBACK_PATTERN_ALARM_10,
+       FEEDBACK_PATTERN_ALARM_10_STRONG_BUZZ,
+       FEEDBACK_PATTERN_PICKER,
+       FEEDBACK_PATTERN_PICKER_FINISH,
+       FEEDBACK_PATTERN_ON_OFF_SWITCH,
+       FEEDBACK_PATTERN_REORDER,
+       FEEDBACK_PATTERN_CURSOR_MOVE,
 
-       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
        // ...
+       FEEDBACK_PATTERN_MMS = FEEDBACK_PATTERN_RESERVED_END,
+
+       FEEDBACK_PATTERN_HOURLY_ALERT,
+       FEEDBACK_PATTERN_SAFETY_ALERT,
+       FEEDBACK_PATTERN_ACCIDENT_DETECT,
+       FEEDBACK_PATTERN_SEND_SOS_MESSAGE,
+       FEEDBACK_PATTERN_END_SOS_MESSAGE,
+       FEEDBACK_PATTERN_EMERGENCY_BUZZER,
+       FEEDBACK_PATTERN_SAFETY_LOW_POWER,
+       FEEDBACK_PATTERN_CMAS,
+       FEEDBACK_PATTERN_RINGER,
+       FEEDBACK_PATTERN_NOTIFICATION,
+       FEEDBACK_PATTERN_INFO,
+       FEEDBACK_PATTERN_WARNING,
+       FEEDBACK_PATTERN_ERROR,
+       FEEDBACK_PATTERN_EMERGENCY,
+       FEEDBACK_PATTERN_INTERNAL_WAKEUP,
+       FEEDBACK_PATTERN_INTERNAL_TIMER,
+       FEEDBACK_PATTERN_TEMPERATURE_WARNING,
+       FEEDBACK_PATTERN_COOLDOWN_WARNING_1,
+       FEEDBACK_PATTERN_COOLDOWN_WARNING_2,
+       FEEDBACK_PATTERN_SPEED_UP,
+       FEEDBACK_PATTERN_SLOW_DOWN,
+       FEEDBACK_PATTERN_KEEP_THIS_PACE,
+       FEEDBACK_PATTERN_GOAL_ACHIEVED,
+       FEEDBACK_PATTERN_EXERCISE_COUNT,
+       FEEDBACK_PATTERN_START_CUE,
+       FEEDBACK_PATTERN_HEALTH_PACE,
+       FEEDBACK_PATTERN_INACTIVE_TIME,
+       FEEDBACK_PATTERN_CMAS_CA,
+       FEEDBACK_PATTERN_NFC_SUCCESS,
+
+       FEEDBACK_PATTERN_MEASURING_SUCCESS,
+       FEEDBACK_PATTERN_MEASURING_FAILURE,
+       FEEDBACK_PATTERN_MEDITATION, /**< Feedback pattern for meditation start/stop timer (Since 5.5) */
+       FEEDBACK_PATTERN_MEDITATION_INTERVAL, /**< Feedback pattern for meditation interval (notification) (Since 5.5) */
+
+       FEEDBACK_PATTERN_FALL_DETECTION_1,
+       FEEDBACK_PATTERN_FALL_DETECTION_2,
+
+       FEEDBACK_PATTERN_SMART_GESTURE,
+
        FEEDBACK_PATTERN_MOBILE_END             = 20000,
        // Add new pattern ids for TV devices here
        // ...
diff --git a/include/feedback-ids-product.h b/include/feedback-ids-product.h
new file mode 100644 (file)
index 0000000..0278d5e
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ * libfeedback
+ * Copyright (c) 2000-2020 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * PROPRIETARY/CONFIDENTIAL
+ *
+ * This software is the confidential and proprietary information of
+ * SAMSUNG ELECTRONICS ("Confidential Information").
+ * You shall not disclose such Confidential Information and shall
+ * use it only in accordance with the terms of the license agreement
+ * you entered into with SAMSUNG ELECTRONICS.
+ * SAMSUNG make no representations or warranties about the suitability
+ * of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for
+ * a particular purpose, or non-infringement.
+ * SAMSUNG shall not be liable for any damages suffered by licensee as
+ * a result of using, modifying or distributing this software or its derivatives.
+ */
+
+
+#ifndef __FEEDBACK_IDS_PRODUCT_H__
+#define __FEEDBACK_IDS_PRODUCT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @addtogroup CAPI_FEEDBACK_MODULE
+ * @{
+ */
+
+/**
+ * @brief Enumeration for feedback interface of the product pre-defined patterns.
+ * @details Each feedback pattern can have separate media files of each types.
+ *          But depending on vendor design, pattern may not have any type of file.
+ * @since_tizen 4.0.0.4
+ */
+typedef enum {
+       FEEDBACK_PATTERN_BREATHING_EXHALE = 12000,    /**< feedback pattern for breathing exhale */
+       FEEDBACK_PATTERN_BOS, /**< feedback pattern for bixby begin of speech */
+       FEEDBACK_PATTERN_EOS, /**< feedback pattern for bixby end of speech */
+       FEEDBACK_PATTERN_UDS, /**< feedback pattern for bixby undetected speech */
+} feedback_pattern_product_e;
+
+/**
+ * @}
+ */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif //__FEEDBACK_IDS_PRODUCT_H__
old mode 100644 (file)
new mode 100755 (executable)
index 6c93801..cbf670d
@@ -22,6 +22,7 @@
 #include <tizen_error.h>
 #include <feedback-ids.h>
 #include "feedback-ids-internal.h"
+#include "feedback-ids-product.h"
 
 #ifdef __cplusplus
 extern "C" {
index 9f31d72..f8fc70c 100644 (file)
@@ -37,4 +37,3 @@ 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 2d9128f..59ce44b 100644 (file)
@@ -16,6 +16,8 @@ BuildRequires:  pkgconfig(mm-keysound)
 BuildRequires:  pkgconfig(glib-2.0)
 BuildRequires:  pkgconfig(gio-2.0)
 BuildRequires:  pkgconfig(capi-base-common)
+BuildRequires:  pkgconfig(capi-media-sound-manager)
+BuildRequires:  pkgconfig(capi-media-wav-player)
 BuildRequires:  pkgconfig(dbus-1)
 BuildRequires:  pkgconfig(libtzplatform-config)
 BuildRequires:  pkgconfig(capi-system-info)
@@ -125,10 +127,6 @@ install -m 0644 gcov-obj/* %{buildroot}%{_datadir}/gcov/obj
 
 %postun -p /sbin/ldconfig
 
-%postun -n svi-data
-rm -rf %{_datadir}/feedback/
-rm -rf %{TZ_SYS_SHARE}/feedback/
-
 %files
 %defattr(-,root,root,-)
 %{_libdir}/libfeedback.so.*
@@ -153,9 +151,8 @@ rm -rf %{TZ_SYS_SHARE}/feedback/
 %manifest svi-data.manifest
 
 %post -n svi-data-profile_mobile
-ln -sf feedback.mobile %{_datadir}/feedback
-%preun -n svi-data-profile_mobile
-rm -f %{_datadir}/feedback
+rm -rf %{_datadir}/feedback
+ln -sf %{_datadir}/feedback.mobile %{_datadir}/feedback
 %files -n svi-data-profile_mobile
 %defattr(644,root,root,-)
 %{_datadir}/feedback.mobile/*
@@ -163,9 +160,8 @@ rm -f %{_datadir}/feedback
 %manifest svi-data.manifest
 
 %post -n svi-data-profile_wearable
-ln -sf feedback.wearable %{_datadir}/feedback
-%preun -n svi-data-profile_wearable
-rm -f %{_datadir}/feedback
+rm -rf %{_datadir}/feedback
+ln -sf %{_datadir}/feedback.wearable %{_datadir}/feedback
 %files -n svi-data-profile_wearable
 %defattr(644,root,root,-)
 %{_datadir}/feedback.wearable/*
index 5f96d00..32f4576 100644 (file)
 #include <stdlib.h>
 #include <vconf.h>
 #include <system_info.h>
+#include <sys/stat.h>
 
 #include "feedback.h"
 #include "feedback-internal.h"
 #include "profiles.h"
 #include "log.h"
 
+#define BUZZ_CONVERTED 2
+#define MAX_VIB_LEVEL  2
+
 /* Temporary keys */
 #ifndef VCONFKEY_SETAPPL_VIBRATE_WHEN_NOTIFICATION_BOOL
 #define VCONFKEY_SETAPPL_VIBRATE_WHEN_NOTIFICATION_BOOL "db/setting/sound/vibrate_when_notification"
 #define VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL "db/setting/sound/haptic_feedback_on"
 #endif
 
+/* noti type */
+#ifndef VCONFKEY_SETAPPL_NOTI_VIBRATION_PATTERN_INT
+#define VCONFKEY_SETAPPL_NOTI_VIBRATION_PATTERN_INT "db/setting/sound/noti/vibration_type"
+#endif
+
+#ifndef VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT
+#define VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT "db/setting/disconnect_alert/type"
+#endif
+
 
 static const char *profile_str_type[] = {
        "FEEDBACK_TYPE_NONE",
@@ -108,7 +121,39 @@ 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},
+
+       {"FEEDBACK_PATTERN_SIP_BACKSPACE", FEEDBACK_PATTERN_SIP_BACKSPACE},
+       {"FEEDBACK_PATTERN_SIP_FUNCTION", FEEDBACK_PATTERN_SIP_FUNCTION},
+       {"FEEDBACK_PATTERN_SIP_FJKEY", FEEDBACK_PATTERN_SIP_FJKEY},
+       {"FEEDBACK_PATTERN_MAX_CHARACTER", FEEDBACK_PATTERN_MAX_CHARACTER},
+       {"FEEDBACK_PATTERN_MULTI_TAP", FEEDBACK_PATTERN_MULTI_TAP},
+       {"FEEDBACK_PATTERN_HW_TAP", FEEDBACK_PATTERN_HW_TAP},
+       {"FEEDBACK_PATTERN_HW_HOLD", FEEDBACK_PATTERN_HW_HOLD},
+       {"FEEDBACK_PATTERN_SMART_ALERT", FEEDBACK_PATTERN_SMART_ALERT},
+       {"FEEDBACK_PATTERN_GEOMETRIC_LOCK", FEEDBACK_PATTERN_GEOMETRIC_LOCK},
+       {"FEEDBACK_PATTERN_CALLCONNECT", FEEDBACK_PATTERN_CALLCONNECT},
+       {"FEEDBACK_PATTERN_DISCALLCONNECT", FEEDBACK_PATTERN_DISCALLCONNECT},
+       {"FEEDBACK_PATTERN_MINUTEMINDER", FEEDBACK_PATTERN_MINUTEMINDER},
+       {"FEEDBACK_PATTERN_BT_PAIRING", FEEDBACK_PATTERN_BT_PAIRING},
+       {"FEEDBACK_PATTERN_BT_WAITING", FEEDBACK_PATTERN_BT_WAITING},
+       {"FEEDBACK_PATTERN_MMS", FEEDBACK_PATTERN_MMS},
+       {"FEEDBACK_PATTERN_HOURLY_ALERT", FEEDBACK_PATTERN_HOURLY_ALERT},
+       {"FEEDBACK_PATTERN_SAFETY_ALERT", FEEDBACK_PATTERN_SAFETY_ALERT},
+       {"FEEDBACK_PATTERN_ACCIDENT_DETECT", FEEDBACK_PATTERN_ACCIDENT_DETECT},
+       {"FEEDBACK_PATTERN_END_SOS_MESSAGE", FEEDBACK_PATTERN_END_SOS_MESSAGE},
+       {"FEEDBACK_PATTERN_EMERGENCY_BUZZER", FEEDBACK_PATTERN_EMERGENCY_BUZZER},
+       {"FEEDBACK_PATTERN_SAFETY_LOW_POWER", FEEDBACK_PATTERN_SAFETY_LOW_POWER},
+       {"FEEDBACK_PATTERN_CMAS", FEEDBACK_PATTERN_CMAS},
+       {"FEEDBACK_PATTERN_CMAS_CA", FEEDBACK_PATTERN_CMAS_CA},
+       {"FEEDBACK_PATTERN_INFO", FEEDBACK_PATTERN_INFO},
+       {"FEEDBACK_PATTERN_WARNING", FEEDBACK_PATTERN_WARNING},
+       {"FEEDBACK_PATTERN_ERROR", FEEDBACK_PATTERN_ERROR},
+       {"FEEDBACK_PATTERN_EMERGENCY", FEEDBACK_PATTERN_EMERGENCY},
+       {"FEEDBACK_PATTERN_INTERNAL_WAKEUP", FEEDBACK_PATTERN_INTERNAL_WAKEUP},
+       {"FEEDBACK_PATTERN_INTERNAL_TIMER", FEEDBACK_PATTERN_INTERNAL_TIMER},
+       {"FEEDBACK_PATTERN_TEMPERATURE_WARNING", FEEDBACK_PATTERN_TEMPERATURE_WARNING},
+       {"FEEDBACK_PATTERN_COOLDOWN_WARNING_1", FEEDBACK_PATTERN_COOLDOWN_WARNING_1},
+       {"FEEDBACK_PATTERN_COOLDOWN_WARNING_2", FEEDBACK_PATTERN_COOLDOWN_WARNING_2},
 };
 
 static const struct pattern_field wearable_str_pattern[] = {
@@ -176,7 +221,180 @@ 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},
+
+       {"FEEDBACK_PATTERN_SIP_BACKSPACE", FEEDBACK_PATTERN_SIP_BACKSPACE},
+       {"FEEDBACK_PATTERN_SIP_FUNCTION", FEEDBACK_PATTERN_SIP_FUNCTION},
+       {"FEEDBACK_PATTERN_SIP_FJKEY", FEEDBACK_PATTERN_SIP_FJKEY},
+       {"FEEDBACK_PATTERN_MAX_CHARACTER", FEEDBACK_PATTERN_MAX_CHARACTER},
+       {"FEEDBACK_PATTERN_MULTI_TAP", FEEDBACK_PATTERN_MULTI_TAP},
+       {"FEEDBACK_PATTERN_HW_TAP", FEEDBACK_PATTERN_HW_TAP},
+       {"FEEDBACK_PATTERN_HW_HOLD", FEEDBACK_PATTERN_HW_HOLD},
+       {"FEEDBACK_PATTERN_SMART_ALERT", FEEDBACK_PATTERN_SMART_ALERT},
+       {"FEEDBACK_PATTERN_GEOMETRIC_LOCK", FEEDBACK_PATTERN_GEOMETRIC_LOCK},
+       {"FEEDBACK_PATTERN_CALLCONNECT", FEEDBACK_PATTERN_CALLCONNECT},
+       {"FEEDBACK_PATTERN_DISCALLCONNECT", FEEDBACK_PATTERN_DISCALLCONNECT},
+       {"FEEDBACK_PATTERN_MINUTEMINDER", FEEDBACK_PATTERN_MINUTEMINDER},
+       {"FEEDBACK_PATTERN_BT_PAIRING", FEEDBACK_PATTERN_BT_PAIRING},
+       {"FEEDBACK_PATTERN_BT_WAITING", FEEDBACK_PATTERN_BT_WAITING},
+
+       {"FEEDBACK_PATTERN_UV_PROCESSING", FEEDBACK_PATTERN_UV_PROCESSING},
+       {"FEEDBACK_PATTERN_SHEALTH_START", FEEDBACK_PATTERN_SHEALTH_START},
+       {"FEEDBACK_PATTERN_SHEALTH_PAUSE", FEEDBACK_PATTERN_SHEALTH_PAUSE},
+       {"FEEDBACK_PATTERN_SHEALTH_STOP", FEEDBACK_PATTERN_SHEALTH_STOP},
+       {"FEEDBACK_PATTERN_BREATHING_EXHALE", FEEDBACK_PATTERN_BREATHING_EXHALE},
+       {"FEEDBACK_PATTERN_3RD_APPLICATION", FEEDBACK_PATTERN_3RD_APPLICATION},
+       {"FEEDBACK_PATTERN_TICK", FEEDBACK_PATTERN_TICK},
+       {"FEEDBACK_PATTERN_TRANSITION_CIRCULAR", FEEDBACK_PATTERN_TRANSITION_CIRCULAR},
+       {"FEEDBACK_PATTERN_TRANSITION_POP", FEEDBACK_PATTERN_TRANSITION_POP},
+       {"FEEDBACK_PATTERN_PROCESS", FEEDBACK_PATTERN_PROCESS},
+       {"FEEDBACK_PATTERN_MOVE_LIST", FEEDBACK_PATTERN_MOVE_LIST},
+       {"FEEDBACK_PATTERN_DISMISS", FEEDBACK_PATTERN_DISMISS},
+       {"FEEDBACK_PATTERN_CLOCK_SECOND_HAND", FEEDBACK_PATTERN_CLOCK_SECOND_HAND},
+
+       {"FEEDBACK_PATTERN_SPIRAL_DOWN",FEEDBACK_PATTERN_SPIRAL_DOWN},
+       {"FEEDBACK_PATTERN_MOVE_LIST_2",FEEDBACK_PATTERN_MOVE_LIST_2},
+       {"FEEDBACK_PATTERN_SPIRAL_UP",FEEDBACK_PATTERN_SPIRAL_UP},
+
+       {"FEEDBACK_PATTERN_SILENCE",FEEDBACK_PATTERN_SILENCE},
+       {"FEEDBACK_PATTERN_INACTIVE_TENSION",FEEDBACK_PATTERN_INACTIVE_TENSION},
+       {"FEEDBACK_PATTERN_INACTIVE_FINE", FEEDBACK_PATTERN_INACTIVE_FINE},
+
+       {"FEEDBACK_PATTERN_END_EFFECT", FEEDBACK_PATTERN_END_EFFECT},
+       {"FEEDBACK_PATTERN_SHEALTH_NOTICE", FEEDBACK_PATTERN_SHEALTH_NOTICE},
+       {"FEEDBACK_PATTERN_SHEALTH_GENTLE_ALERT", FEEDBACK_PATTERN_SHEALTH_GENTLE_ALERT},
+       {"FEEDBACK_PATTERN_END_EFFECT_FINE", FEEDBACK_PATTERN_END_EFFECT_FINE},
+       {"FEEDBACK_PATTERN_CLICK_VALUE", FEEDBACK_PATTERN_CLICK_VALUE},
+       {"FEEDBACK_PATTERN_CLICK_FINE_TRAIN_1", FEEDBACK_PATTERN_CLICK_FINE_TRAIN_1},
+       {"FEEDBACK_PATTERN_CLICK_FINE", FEEDBACK_PATTERN_CLICK_FINE},
+       {"FEEDBACK_PATTERN_CLICK_SLIDER", FEEDBACK_PATTERN_CLICK_SLIDER},
+       {"FEEDBACK_PATTERN_CLICK_MEDIUM", FEEDBACK_PATTERN_CLICK_MEDIUM},
+       {"FEEDBACK_PATTERN_CLICK_STRONG", FEEDBACK_PATTERN_CLICK_STRONG},
+       {"FEEDBACK_PATTERN_TURN_RIGHT", FEEDBACK_PATTERN_TURN_RIGHT},
+       {"FEEDBACK_PATTERN_TURN_LEFT", FEEDBACK_PATTERN_TURN_LEFT},
+       {"FEEDBACK_PATTERN_FUNCTION", FEEDBACK_PATTERN_FUNCTION},
+       {"FEEDBACK_PATTERN_VOICE_START", FEEDBACK_PATTERN_VOICE_START},
+       {"FEEDBACK_PATTERN_VOICE_STOP", FEEDBACK_PATTERN_VOICE_STOP},
+       {"FEEDBACK_PATTERN_COMMUNICATION", FEEDBACK_PATTERN_COMMUNICATION},
+       {"FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ", FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ", FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ},
+
+       {"FEEDBACK_PATTERN_GENERAL_STRONG_BUZZ", FEEDBACK_PATTERN_GENERAL_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ", FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_SCHEDULE_STRONG_BUZZ", FEEDBACK_PATTERN_SCHEDULE_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_WAKEUP_STRONG_BUZZ", FEEDBACK_PATTERN_WAKEUP_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_TIMER_STRONG_BUZZ", FEEDBACK_PATTERN_TIMER_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RINGER_STRONG_BUZZ", FEEDBACK_PATTERN_RINGER_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_HEARTBEAT", FEEDBACK_PATTERN_HEARTBEAT},
+       {"FEEDBACK_PATTERN_HEARTBEAT_FAST", FEEDBACK_PATTERN_HEARTBEAT_FAST},
+       {"FEEDBACK_PATTERN_SETTING_ON", FEEDBACK_PATTERN_SETTING_ON},
+       {"FEEDBACK_PATTERN_SETTING_OFF", FEEDBACK_PATTERN_SETTING_OFF},
+       {"FEEDBACK_PATTERN_CONNECT", FEEDBACK_PATTERN_CONNECT},
+       {"FEEDBACK_PATTERN_DISCONNECT", FEEDBACK_PATTERN_DISCONNECT},
+       {"FEEDBACK_PATTERN_FIND_MY_GEAR", FEEDBACK_PATTERN_FIND_MY_GEAR},
+       {"FEEDBACK_PATTERN_NOTIFICATION_1", FEEDBACK_PATTERN_NOTIFICATION_1},
+       {"FEEDBACK_PATTERN_NOTIFICATION_1_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_1_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_NOTIFICATION_2", FEEDBACK_PATTERN_NOTIFICATION_2},
+       {"FEEDBACK_PATTERN_NOTIFICATION_2_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_2_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_NOTIFICATION_3", FEEDBACK_PATTERN_NOTIFICATION_3},
+       {"FEEDBACK_PATTERN_NOTIFICATION_3_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_3_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_NOTIFICATION_4", FEEDBACK_PATTERN_NOTIFICATION_4},
+       {"FEEDBACK_PATTERN_NOTIFICATION_4_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_4_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_NOTIFICATION_5", FEEDBACK_PATTERN_NOTIFICATION_5},
+       {"FEEDBACK_PATTERN_NOTIFICATION_5_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_5_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_NOTIFICATION_6", FEEDBACK_PATTERN_NOTIFICATION_6},
+       {"FEEDBACK_PATTERN_NOTIFICATION_6_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_6_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_NOTIFICATION_7", FEEDBACK_PATTERN_NOTIFICATION_7},
+       {"FEEDBACK_PATTERN_NOTIFICATION_7_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_7_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_NOTIFICATION_8", FEEDBACK_PATTERN_NOTIFICATION_8}, /* Added pattern for notification */
+       {"FEEDBACK_PATTERN_NOTIFICATION_8_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_8_STRONG_BUZZ}, /* Added pattern for notification */
+       {"FEEDBACK_PATTERN_NOTIFICATION_9", FEEDBACK_PATTERN_NOTIFICATION_9}, /* Added pattern for notification */
+       {"FEEDBACK_PATTERN_NOTIFICATION_9_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_9_STRONG_BUZZ}, /* Added pattern for notification */
+       {"FEEDBACK_PATTERN_NOTIFICATION_10", FEEDBACK_PATTERN_NOTIFICATION_10}, /* Added pattern for notification */
+       {"FEEDBACK_PATTERN_NOTIFICATION_10_STRONG_BUZZ", FEEDBACK_PATTERN_NOTIFICATION_10_STRONG_BUZZ}, /* Added pattern for notification */
+
+       {"FEEDBACK_PATTERN_RING_1", FEEDBACK_PATTERN_RING_1},
+       {"FEEDBACK_PATTERN_RING_1_STRONG_BUZZ", FEEDBACK_PATTERN_RING_1_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RING_2", FEEDBACK_PATTERN_RING_2},
+       {"FEEDBACK_PATTERN_RING_2_STRONG_BUZZ", FEEDBACK_PATTERN_RING_2_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RING_3", FEEDBACK_PATTERN_RING_3},
+       {"FEEDBACK_PATTERN_RING_3_STRONG_BUZZ", FEEDBACK_PATTERN_RING_3_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RING_4", FEEDBACK_PATTERN_RING_4},
+       {"FEEDBACK_PATTERN_RING_4_STRONG_BUZZ", FEEDBACK_PATTERN_RING_4_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RING_5", FEEDBACK_PATTERN_RING_5},
+       {"FEEDBACK_PATTERN_RING_5_STRONG_BUZZ", FEEDBACK_PATTERN_RING_5_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RING_6", FEEDBACK_PATTERN_RING_6},
+       {"FEEDBACK_PATTERN_RING_6_STRONG_BUZZ", FEEDBACK_PATTERN_RING_6_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RING_7", FEEDBACK_PATTERN_RING_7},
+       {"FEEDBACK_PATTERN_RING_7_STRONG_BUZZ", FEEDBACK_PATTERN_RING_7_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_RING_8", FEEDBACK_PATTERN_RING_8}, /* Added pattern for ring */
+       {"FEEDBACK_PATTERN_RING_8_STRONG_BUZZ", FEEDBACK_PATTERN_RING_8_STRONG_BUZZ}, /* Added pattern for ring */
+       {"FEEDBACK_PATTERN_RING_9", FEEDBACK_PATTERN_RING_9}, /* Added pattern for ring */
+       {"FEEDBACK_PATTERN_RING_9_STRONG_BUZZ", FEEDBACK_PATTERN_RING_9_STRONG_BUZZ}, /* Added pattern for ring */
+       {"FEEDBACK_PATTERN_RING_10", FEEDBACK_PATTERN_RING_10}, /* Added pattern for ring */
+       {"FEEDBACK_PATTERN_RING_10_STRONG_BUZZ", FEEDBACK_PATTERN_RING_10_STRONG_BUZZ}, /* Added pattern for ring */
+       {"FEEDBACK_PATTERN_ALARM_1", FEEDBACK_PATTERN_ALARM_1},
+       {"FEEDBACK_PATTERN_ALARM_1_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_1_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_ALARM_2", FEEDBACK_PATTERN_ALARM_2},
+       {"FEEDBACK_PATTERN_ALARM_2_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_2_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_ALARM_3", FEEDBACK_PATTERN_ALARM_3},
+       {"FEEDBACK_PATTERN_ALARM_3_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_3_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_ALARM_4", FEEDBACK_PATTERN_ALARM_4},
+       {"FEEDBACK_PATTERN_ALARM_4_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_4_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_ALARM_5", FEEDBACK_PATTERN_ALARM_5},
+       {"FEEDBACK_PATTERN_ALARM_5_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_5_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_ALARM_6", FEEDBACK_PATTERN_ALARM_6},
+       {"FEEDBACK_PATTERN_ALARM_6_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_6_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_ALARM_7", FEEDBACK_PATTERN_ALARM_7},
+       {"FEEDBACK_PATTERN_ALARM_7_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_7_STRONG_BUZZ},
+       {"FEEDBACK_PATTERN_ALARM_8", FEEDBACK_PATTERN_ALARM_8}, /* Added pattern for alarm */
+       {"FEEDBACK_PATTERN_ALARM_8_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_8_STRONG_BUZZ}, /* Added pattern for alarm */
+       {"FEEDBACK_PATTERN_ALARM_9", FEEDBACK_PATTERN_ALARM_9}, /* Added pattern for alarm */
+       {"FEEDBACK_PATTERN_ALARM_9_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_9_STRONG_BUZZ}, /* Added pattern for alarm */
+       {"FEEDBACK_PATTERN_ALARM_10", FEEDBACK_PATTERN_ALARM_10}, /* Added pattern for alarm */
+       {"FEEDBACK_PATTERN_ALARM_10_STRONG_BUZZ", FEEDBACK_PATTERN_ALARM_10_STRONG_BUZZ}, /* Added pattern for alarm */
+       {"FEEDBACK_PATTERN_PICKER", FEEDBACK_PATTERN_PICKER},
+       {"FEEDBACK_PATTERN_PICKER_FINISH", FEEDBACK_PATTERN_PICKER_FINISH},
+       {"FEEDBACK_PATTERN_ON_OFF_SWITCH", FEEDBACK_PATTERN_ON_OFF_SWITCH},
+       {"FEEDBACK_PATTERN_REORDER", FEEDBACK_PATTERN_REORDER},
+       {"FEEDBACK_PATTERN_CURSOR_MOVE", FEEDBACK_PATTERN_CURSOR_MOVE},
+       {"FEEDBACK_PATTERN_MMS", FEEDBACK_PATTERN_MMS},
+       {"FEEDBACK_PATTERN_HOURLY_ALERT", FEEDBACK_PATTERN_HOURLY_ALERT},
+       {"FEEDBACK_PATTERN_SAFETY_ALERT", FEEDBACK_PATTERN_SAFETY_ALERT},
+       {"FEEDBACK_PATTERN_ACCIDENT_DETECT", FEEDBACK_PATTERN_ACCIDENT_DETECT},
+       {"FEEDBACK_PATTERN_END_SOS_MESSAGE", FEEDBACK_PATTERN_END_SOS_MESSAGE},
+       {"FEEDBACK_PATTERN_EMERGENCY_BUZZER", FEEDBACK_PATTERN_EMERGENCY_BUZZER},
+       {"FEEDBACK_PATTERN_SAFETY_LOW_POWER", FEEDBACK_PATTERN_SAFETY_LOW_POWER},
+       {"FEEDBACK_PATTERN_CMAS", FEEDBACK_PATTERN_CMAS},
+       {"FEEDBACK_PATTERN_CMAS_CA", FEEDBACK_PATTERN_CMAS_CA},
+       {"FEEDBACK_PATTERN_NOTIFICATION", FEEDBACK_PATTERN_NOTIFICATION},
+       {"FEEDBACK_PATTERN_INFO", FEEDBACK_PATTERN_INFO},
+       {"FEEDBACK_PATTERN_WARNING", FEEDBACK_PATTERN_WARNING},
+       {"FEEDBACK_PATTERN_ERROR", FEEDBACK_PATTERN_ERROR},
+       {"FEEDBACK_PATTERN_EMERGENCY", FEEDBACK_PATTERN_EMERGENCY},
+       {"FEEDBACK_PATTERN_INTERNAL_WAKEUP", FEEDBACK_PATTERN_INTERNAL_WAKEUP},
+       {"FEEDBACK_PATTERN_INTERNAL_TIMER", FEEDBACK_PATTERN_INTERNAL_TIMER},
+       {"FEEDBACK_PATTERN_TEMPERATURE_WARNING", FEEDBACK_PATTERN_TEMPERATURE_WARNING},
+       {"FEEDBACK_PATTERN_COOLDOWN_WARNING_1", FEEDBACK_PATTERN_COOLDOWN_WARNING_1},
+       {"FEEDBACK_PATTERN_COOLDOWN_WARNING_2", FEEDBACK_PATTERN_COOLDOWN_WARNING_2},
+       {"FEEDBACK_PATTERN_SPEED_UP", FEEDBACK_PATTERN_SPEED_UP},
+       {"FEEDBACK_PATTERN_SLOW_DOWN", FEEDBACK_PATTERN_SLOW_DOWN},
+       {"FEEDBACK_PATTERN_KEEP_THIS_PACE", FEEDBACK_PATTERN_KEEP_THIS_PACE},
+       {"FEEDBACK_PATTERN_GOAL_ACHIEVED", FEEDBACK_PATTERN_GOAL_ACHIEVED},
+       {"FEEDBACK_PATTERN_EXERCISE_COUNT", FEEDBACK_PATTERN_EXERCISE_COUNT},
+       {"FEEDBACK_PATTERN_START_CUE", FEEDBACK_PATTERN_START_CUE},
+       {"FEEDBACK_PATTERN_HEALTH_PACE", FEEDBACK_PATTERN_HEALTH_PACE},
+       {"FEEDBACK_PATTERN_INACTIVE_TIME", FEEDBACK_PATTERN_INACTIVE_TIME},
+       {"FEEDBACK_PATTERN_MEASURING_SUCCESS", FEEDBACK_PATTERN_MEASURING_SUCCESS},
+       {"FEEDBACK_PATTERN_MEASURING_FAILURE", FEEDBACK_PATTERN_MEASURING_FAILURE},
+       {"FEEDBACK_PATTERN_BOS", FEEDBACK_PATTERN_BOS},
+       {"FEEDBACK_PATTERN_EOS", FEEDBACK_PATTERN_EOS},
+       {"FEEDBACK_PATTERN_UDS", FEEDBACK_PATTERN_UDS},
+       {"FEEDBACK_PATTERN_NFC_SUCCESS", FEEDBACK_PATTERN_NFC_SUCCESS},
+       {"FEEDBACK_PATTERN_MEDITATION", FEEDBACK_PATTERN_MEDITATION},
+       {"FEEDBACK_PATTERN_MEDITATION_INTERVAL", FEEDBACK_PATTERN_MEDITATION_INTERVAL},
+       {"FEEDBACK_PATTERN_FALL_DETECTION_1", FEEDBACK_PATTERN_FALL_DETECTION_1},
+       {"FEEDBACK_PATTERN_FALL_DETECTION_2", FEEDBACK_PATTERN_FALL_DETECTION_2},
+       {"FEEDBACK_PATTERN_SMART_GESTURE",FEEDBACK_PATTERN_SMART_GESTURE},
 };
 
 static const struct pattern_field common_str_pattern[] = {
@@ -234,7 +452,183 @@ 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 {
+       FEEDBACK_STANDARD_START = 2000,
+       A,
+       A_W = A,
+       A_W2,
+       B,
+       B_W = B,
+       C,
+       D,
+       E_W1 = D,
+       E,
+       E_W2 = E,
+       F,
+       F_W = F,
+       G,
+       G_W = G,
+       H,
+       H_LIGHT,
+       I,
+       J_W = I,
+       J,
+       J_WB = J,
+       K,
+       K_W = K,
+       L,
+       K_WB = L,
+       CMAS,
+       M,
+       J_W_2 = M,
+       J_WB_2,
+       J_W_3,
+       J_WB_3,
+       J_W_4,
+       J_WB_4,
+       J_W_5,
+       J_WB_5,
+       J_W_6,
+       J_WB_6,
+       J_W_7,
+       J_WB_7,
+       J_W_8,
+       J_WB_8,
+       J_W_9,
+       J_WB_9,
+       J_W_10,
+       J_WB_10,
+       K_W_2,
+       K_WB_2,
+       K_W_3,
+       K_WB_3,
+       K_W_4,
+       K_WB_4,
+       K_W_5,
+       K_WB_5,
+       K_W_6,
+       K_WB_6,
+       K_W_7,
+       K_WB_7,
+       K_W_8,
+       K_WB_8,
+       K_W_9,
+       K_WB_9,
+       K_W_10,
+       K_WB_10,
+       J_WW,
+       K_WW,
+       G_WB,
+       J_WH,
+       J_WHB,
+       K_W_N,
+       M1,
+       M2,
+       N,
+       O,
+       P,
+       Q,
+       R,
+       S,
+       S_B,
+       S2,
+       T,
+       T_LIGHT,
+       CMAS_CA,
+       FEEDBACK_STANDARD_END,
+} feedback_standard_pattern_e;
+
+static const struct pattern_field wearable_str_standard[] = {
+       {"A_W", A_W},
+       {"A_W2", A_W2},
+       {"B_W", B_W},
+       {"C", C},
+       {"E_W1", E_W1},
+       {"E_W2", E_W2},
+       {"F_W", F_W},
+       {"G_W", G_W},
+       {"H", H},
+       {"H_LIGHT", H_LIGHT},
+       {"J_W", J_W},
+       {"J_WB", J_WB},
+       {"K_W", K_W},
+       {"K_WB", K_WB},
+       {"CMAS", CMAS},
+       {"CMAS_CA", CMAS_CA},
+       {"J_W_2", J_W_2},
+       {"J_WB_2", J_WB_2},
+       {"J_W_3", J_W_3},
+       {"J_WB_3", J_WB_3},
+       {"J_W_4", J_W_4},
+       {"J_WB_4", J_WB_4},
+       {"J_W_5", J_W_5},
+       {"J_WB_5", J_WB_5},
+       {"J_W_6", J_W_6},
+       {"J_WB_6", J_WB_6},
+       {"J_W_7", J_W_7},
+       {"J_WB_7", J_WB_7},
+       {"J_W_8", J_W_8},
+       {"J_WB_8", J_WB_8},
+       {"J_W_9", J_W_9},
+       {"J_WB_9", J_WB_9},
+       {"J_W_10", J_W_10},
+       {"J_WB_10", J_WB_10},
+       {"K_W_2", K_W_2},
+       {"K_WB_2", K_WB_2},
+       {"K_W_3", K_W_3},
+       {"K_WB_3", K_WB_3},
+       {"K_W_4", K_W_4},
+       {"K_WB_4", K_WB_4},
+       {"K_W_5", K_W_5},
+       {"K_WB_5", K_WB_5},
+       {"K_W_6", K_W_6},
+       {"K_WB_6", K_WB_6},
+       {"K_W_7", K_W_7},
+       {"K_WB_7", K_WB_7},
+       {"K_W_8", K_W_8},
+       {"K_WB_8", K_WB_8},
+       {"K_W_9", K_W_9},
+       {"K_WB_9", K_WB_9},
+       {"K_W_10", K_W_10},
+       {"K_WB_10", K_WB_10},
+       {"J_WW", J_WW},
+       {"K_WW", K_WW},
+       {"G_WB", G_WB},
+       {"J_WH", J_WH},
+       {"J_WHB", J_WHB},
+       {"K_W_N", K_W_N},
+       {"T", T},
+       {"T_LIGHT", T_LIGHT},
+       {"M1", M1},
+       {"M2", M2},
+       {"N", N},
+       {"O", O},
+       {"P", P},
+       {"Q", Q},
+       {"R", R},
+       {"S", S},
+       {"S2", S2},
+       {"S_B", S_B},
+};
+
+static const struct pattern_field mobile_str_standard[] = {
+       {"A", A},
+       {"B", B},
+       {"C", C},
+       {"D", D},
+       {"E", E},
+       {"F", F},
+       {"G", G},
+       {"H", H},
+       {"I", I},
+       {"J", J},
+       {"K", K},
+       {"L", L},
+       {"M", M},
+       {"CMAS", CMAS},
+       {"CMAS_CA", CMAS_CA},
 };
 
 typedef enum {
@@ -252,9 +646,18 @@ static int noti_vibstatus;
 static int vib_level;
 static int noti_level;
 static int feedbackstatus;
-
+static int vib_when_ring;
+static int vib_noti_index;
+static int vib_call_index;
+static char snd_noti_path[PATH_MAX];
+static char snd_call_path[PATH_MAX];
 static char *profile_name = NULL;
 
+static int dnd_mode;
+static int theater_mode;
+static int goodnight_mode;
+static int disconnect_alert_mode;
+
 #define PROFILE                        "tizen.org/feature/profile"
 #define PROFILE_MOBILE_STRING  "mobile"
 #define PROFILE_WEARABLE_STRING        "wearable"
@@ -328,6 +731,27 @@ static int profile_get_num_of_pattern()
 //LCOV_EXCL_STOP
 }
 
+static int profile_get_num_of_standard(void)
+{
+       static int size = -1;
+       int prof;
+
+       if (size >= 0)
+               return size;
+
+       prof = get_profile();
+
+       if (prof == PROFILE_MOBILE)
+               size = ARR_SIZE(mobile_str_standard);
+//LCOV_EXCL_START
+       else if (prof == PROFILE_WEARABLE)
+               size = ARR_SIZE(wearable_str_standard);
+       else
+               size = 0;
+//LCOV_EXCL_STOP
+       return size;
+}
+
 static const char *profile_str_pattern(int pattern)
 {
        int prof;
@@ -340,12 +764,20 @@ static const char *profile_str_pattern(int pattern)
                        if (pattern == mobile_str_pattern[i].id)
                                return mobile_str_pattern[i].string;
                }
+               for (i = 0; i < profile_get_num_of_standard(); i++) {
+                       if (pattern == mobile_str_standard[i].id)
+                               return mobile_str_standard[i].string;
+               }
 //LCOV_EXCL_START
        } else if (prof == PROFILE_WEARABLE) {
                for (i = 0; i < profile_get_num_of_pattern(); i++) {
                        if (pattern == wearable_str_pattern[i].id)
                                return wearable_str_pattern[i].string;
                }
+               for (i = 0; i < profile_get_num_of_standard(); i++) {
+                       if (pattern == wearable_str_standard[i].id)
+                               return wearable_str_standard[i].string;
+               }
        } else {
                for (i = 0; i < profile_get_num_of_pattern(); i++) {
                        if (pattern == common_str_pattern[i].id)
@@ -371,12 +803,20 @@ static int profile_get_pattern_enum(char *pattern)
                        if (!strncmp(pattern, mobile_str_pattern[i].string, len))
                                return mobile_str_pattern[i].id;
                }
+               for (i = 0; i < profile_get_num_of_standard(); i++) {
+                       if (!strncmp(pattern, mobile_str_standard[i].string, len))
+                               return mobile_str_standard[i].id;
+               }
 //LCOV_EXCL_START
        } else if (prof == PROFILE_WEARABLE) {
                for (i = 0; i < profile_get_num_of_pattern(); i++) {
                        if (!strncmp(pattern, wearable_str_pattern[i].string, len))
                                return wearable_str_pattern[i].id;
                }
+               for (i = 0; i < profile_get_num_of_standard(); i++) {
+                       if (!strncmp(pattern, wearable_str_standard[i].string, len))
+                               return wearable_str_standard[i].id;
+               }
        } else {
                for (i = 0; i < profile_get_num_of_pattern(); i++) {
                        if (!strncmp(pattern, common_str_pattern[i].string, len))
@@ -423,10 +863,73 @@ static void feedback_feedbackstatus_cb(keynode_t *key, void* data)
 {
        feedbackstatus = vconf_keynode_get_bool(key);
 }
+
+static void feedback_vib_when_ring_cb(keynode_t *key, void* data)
+{
+       vib_when_ring = vconf_keynode_get_bool(key);
+}
+
+static void snd_noti_path_cb(keynode_t *key, void* data)
+{
+       char* path = vconf_keynode_get_str(key);
+       struct stat st;
+
+       if (!path)
+               return;
+
+       if (stat(path, &st) < 0)
+               return;
+       snprintf(snd_noti_path, PATH_MAX, "%s", path);
+}
+
+static void snd_call_path_cb(keynode_t *key, void* data)
+{
+       char* path = vconf_keynode_get_str(key);
+       struct stat st;
+
+       if (!path)
+               return;
+
+       if (stat(path, &st) < 0)
+               return;
+       snprintf(snd_call_path, PATH_MAX, "%s", path);
+}
+
+static void vib_noti_type_cb(keynode_t *key, void* data)
+{
+       vib_noti_index = vconf_keynode_get_int(key);
+}
+
+static void vib_call_type_cb(keynode_t *key, void* data)
+{
+       vib_call_index = vconf_keynode_get_int(key);
+}
+
+static void feedback_dnd_mode_cb(keynode_t *key, void* data)
+{
+       dnd_mode = vconf_keynode_get_bool(key);
+}
+
+static void feedback_theater_mode_cb(keynode_t *key, void* data)
+{
+       theater_mode = vconf_keynode_get_bool(key);
+}
+
+static void feedback_goodnight_mode_cb(keynode_t *key, void* data)
+{
+       goodnight_mode = vconf_keynode_get_bool(key);
+}
+
+static void feedback_disconnect_alert_mode_cb(keynode_t *key, void* data)
+{
+       disconnect_alert_mode = vconf_keynode_get_int(key);
+}
 //LCOV_EXCL_STOP
 
 static void profile_init(void)
 {
+       char *path;
+       struct stat st;
        int prof;
        int ret;
 
@@ -471,6 +974,53 @@ static void profile_init(void)
        if (vconf_get_bool(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, &feedbackstatus) < 0)
                _W("VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL ==> FAIL!!"); //LCOV_EXCL_LINE
 
+       if (vconf_get_bool(VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL, &vib_when_ring) < 0)
+               _W("VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL ==> FAIL!!"); //LCOV_EXCL_LINE
+
+       path = vconf_get_str(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR);
+       if (path) {
+               if (stat(path, &st) < 0) {
+                       free(path);
+                       path = vconf_get_str(VCONFKEY_SETAPPL_NOTI_RINGTONE_DEFAULT_PATH_STR);
+               }
+               if (path) {
+                       snprintf(snd_noti_path, PATH_MAX, "%s", path);
+                       free(path);
+               }
+       } else
+               snprintf(snd_noti_path, PATH_MAX, "NULL");
+
+       path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR);
+       if (path) {
+               if (stat(path, &st) < 0) {
+                       free(path);
+                       path = vconf_get_str(VCONFKEY_SETAPPL_CALL_RINGTONE_DEFAULT_PATH_STR);
+               }
+               if (path) {
+                       snprintf(snd_call_path, PATH_MAX, "%s", path);
+                       free(path);
+               }
+       } else
+               snprintf(snd_call_path, PATH_MAX, "NULL");
+
+       if (vconf_get_int(VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT, &vib_call_index) < 0)
+               _W("VCONFKEY_SETAPPL_SETAPPL_CALL_VIBRATION_PATTERN_INT ==> FAIL!!"); //LCOV_EXCL_LINE
+
+       if (vconf_get_int(VCONFKEY_SETAPPL_NOTI_VIBRATION_PATTERN_INT, &vib_noti_index) < 0)
+               _W("VCONFKEY_SETAPPL_SETAPPL_NOTI_VIBRATION_PATTERN_INT ==> FAIL!!"); //LCOV_EXCL_LINE
+
+       if (vconf_get_bool(VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, &dnd_mode) < 0)
+               _W("VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL ==> FAIL!!"); //LCOV_EXCL_LINE
+
+       if (vconf_get_bool(VCONFKEY_SETAPPL_THEATER_MODE_ENABLE, &theater_mode) < 0)
+               _W("VCONFKEY_SETAPPL_THEATER_MODE_ENABLE ==> FAIL!!"); //LCOV_EXCL_LINE
+
+       if (vconf_get_bool(VCONFKEY_SETAPPL_GOODNIGHT_MODE_ENABLE, &goodnight_mode) < 0)
+               _W("VCONFKEY_SETAPPL_GOODNIGHT_MODE_ENABLE ==> FAIL!!"); //LCOV_EXCL_LINE
+
+       if (vconf_get_int(VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT, &disconnect_alert_mode) < 0)
+               _W("VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT ==> FAIL!!"); //LCOV_EXCL_LINE
+
        /* add watch for status value */
        ret = vconf_notify_key_changed(VCONFKEY_CALL_STATE, feedback_callstatus_cb, NULL);
        if (ret != 0)
@@ -490,6 +1040,33 @@ static void profile_init(void)
        ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, feedback_feedbackstatus_cb, NULL);
        if (ret != 0)
                _W("Add watch for VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL, feedback_vib_when_ring_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, snd_noti_path_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, snd_call_path_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_NOTI_VIBRATION_PATTERN_INT, vib_noti_type_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_NOTI_VIBRATION_PATTERN_INT failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT, vib_call_type_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, feedback_dnd_mode_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_THEATER_MODE_ENABLE, feedback_theater_mode_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_THEATER_MODE_ENABLE failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_GOODNIGHT_MODE_ENABLE, feedback_goodnight_mode_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_GOODNIGHT_MODE_ENABLE failed");
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT, feedback_disconnect_alert_mode_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT failed");
 }
 
 static void profile_exit(void)
@@ -526,83 +1103,193 @@ static void profile_exit(void)
        ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL, feedback_feedbackstatus_cb);
        if (ret != 0)
                _W("Remove watch for VCONFKEY_SETAPPL_HAPTIC_FEEDBACK_STATUS_BOOL failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL, feedback_vib_when_ring_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_VIBRATE_WHEN_RINGING_BOOL failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR, snd_noti_path_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_NOTI_MSG_RINGTONE_PATH_STR failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR, snd_call_path_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_CALL_RINGTONE_PATH_STR failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_NOTI_VIBRATION_PATTERN_INT, vib_noti_type_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_NOTI_VIBRATION_PATTERN_INT failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT, vib_call_type_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_CALL_VIBRATION_PATTERN_INT failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL, feedback_dnd_mode_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_BLOCKMODE_WEARABLE_BOOL failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_THEATER_MODE_ENABLE, feedback_theater_mode_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_THEATER_MODE_ENABLE failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_GOODNIGHT_MODE_ENABLE, feedback_goodnight_mode_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_GOODNIGHT_MODE_ENABLE failed");
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT, feedback_disconnect_alert_mode_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_DISCONNECT_ALERT_TYPE_INT failed");
 }
 
-static bool profile_get_switched_pattern(int pattern, int *switched)
+//LCOV_EXCL_START
+static int wearable_get_switched_pattern(int pattern)
 {
-       int prof;
+       int changed_pattern = pattern;
 
-       prof = get_profile();
+       switch (changed_pattern) {
+               case FEEDBACK_PATTERN_RINGER:
+               case FEEDBACK_PATTERN_RINGER_STRONG_BUZZ:
+                       changed_pattern = FEEDBACK_PATTERN_RING_1 + vib_call_index;
+                       break;
+               case FEEDBACK_PATTERN_MESSAGE:
+               case FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_EMAIL:
+               case FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_GENERAL:
+               case FEEDBACK_PATTERN_GENERAL_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_3RD_APPLICATION:
+               case FEEDBACK_PATTERN_COMMUNICATION:
+               case FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ:
+                       changed_pattern = FEEDBACK_PATTERN_NOTIFICATION_1 + vib_noti_index;
+                       break;
+               case FEEDBACK_PATTERN_WAKEUP:
+               case FEEDBACK_PATTERN_INTERNAL_WAKEUP:
+                       if (callstatus)
+                               changed_pattern = FEEDBACK_PATTERN_WAKEUP_ON_CALL;
+                       break;
+               case FEEDBACK_PATTERN_TIMER:
+               case FEEDBACK_PATTERN_INTERNAL_TIMER:
+                       if (callstatus)
+                               changed_pattern = FEEDBACK_PATTERN_TIMER_ON_CALL;
+                       break;
+               default:
+                       break;
+       }
 
-       if (prof == PROFILE_COMMON)
-               return false;
+       return changed_pattern;
+}
+//LCOV_EXCL_STOP
 
-       if (!switched)
-               return false;
+static int mobile_get_switched_pattern(int pattern)
+{
+       int changed_pattern = pattern;
 
        if (callstatus == VCONFKEY_CALL_OFF)
-               return false;
+               return changed_pattern;
+
+       if (is_sound_mode() &&
+               pattern != FEEDBACK_PATTERN_WAKEUP && pattern != FEEDBACK_PATTERN_INTERNAL_WAKEUP &&
+               pattern != FEEDBACK_PATTERN_TIMER && pattern != FEEDBACK_PATTERN_INTERNAL_TIMER)
+               return changed_pattern;
 
        /* in case of call connected or connecting */
        _D("Call status is connected or connecting."); //LCOV_EXCL_LINE
-       if (pattern == FEEDBACK_PATTERN_MESSAGE)
-               *switched = FEEDBACK_PATTERN_MESSAGE_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_EMAIL)
-               *switched = FEEDBACK_PATTERN_EMAIL_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_WAKEUP)
-               *switched = FEEDBACK_PATTERN_WAKEUP_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_SCHEDULE)
-               *switched = FEEDBACK_PATTERN_SCHEDULE_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_TIMER)
-               *switched = FEEDBACK_PATTERN_TIMER_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_GENERAL)
-               *switched = FEEDBACK_PATTERN_GENERAL_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_CHARGERCONN)
-               *switched = FEEDBACK_PATTERN_CHARGERCONN_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_CHARGING_ERROR)
-               *switched = FEEDBACK_PATTERN_CHARGING_ERROR_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_FULLCHARGED)
-               *switched = FEEDBACK_PATTERN_FULLCHARGED_ON_CALL;
-       else if (pattern == FEEDBACK_PATTERN_LOWBATT)
-               *switched = FEEDBACK_PATTERN_LOWBATT_ON_CALL;
-       else
+       if (changed_pattern == FEEDBACK_PATTERN_MESSAGE)
+               changed_pattern = FEEDBACK_PATTERN_MESSAGE_ON_CALL;
+       else if(changed_pattern == FEEDBACK_PATTERN_EMAIL)
+               changed_pattern = FEEDBACK_PATTERN_EMAIL_ON_CALL;
+       else if ((changed_pattern == FEEDBACK_PATTERN_WAKEUP) || (pattern == FEEDBACK_PATTERN_INTERNAL_WAKEUP))
+               changed_pattern = FEEDBACK_PATTERN_WAKEUP_ON_CALL;
+       else if (changed_pattern == FEEDBACK_PATTERN_SCHEDULE)
+               changed_pattern = FEEDBACK_PATTERN_SCHEDULE_ON_CALL;
+       else if ((changed_pattern == FEEDBACK_PATTERN_TIMER) || (pattern == FEEDBACK_PATTERN_INTERNAL_TIMER))
+               changed_pattern = FEEDBACK_PATTERN_TIMER_ON_CALL;
+       else if (changed_pattern == FEEDBACK_PATTERN_GENERAL)
+               changed_pattern = FEEDBACK_PATTERN_GENERAL_ON_CALL;
+       else if (changed_pattern == FEEDBACK_PATTERN_CHARGERCONN)
+               changed_pattern = FEEDBACK_PATTERN_CHARGERCONN_ON_CALL;
+       else if (changed_pattern == FEEDBACK_PATTERN_CHARGING_ERROR)
+               changed_pattern = FEEDBACK_PATTERN_CHARGING_ERROR_ON_CALL;
+       else if (changed_pattern == FEEDBACK_PATTERN_FULLCHARGED)
+               changed_pattern = FEEDBACK_PATTERN_FULLCHARGED_ON_CALL;
+       else if (changed_pattern == FEEDBACK_PATTERN_LOWBATT)
+               changed_pattern = FEEDBACK_PATTERN_LOWBATT_ON_CALL;
+
+       return changed_pattern;
+}
+
+
+static bool profile_get_switched_pattern(int pattern, int *switched)
+{
+       int changed_pattern = pattern;
+       int prof = get_profile();
+
+       if (!switched || prof == PROFILE_COMMON)
                return false;
 
-       return true;
+       //LCOV_EXCL_START
+       if (prof == PROFILE_WEARABLE)
+               changed_pattern = wearable_get_switched_pattern(changed_pattern);
+       //LCOV_EXCL_STOP
+       else
+               changed_pattern = mobile_get_switched_pattern(changed_pattern);
+
+       if (changed_pattern != pattern) {
+               *switched = changed_pattern;
+               return true;
+       }
+       return false;
 }
 
 static bool mobile_is_notification_type(int pattern)
 {
        switch (pattern) {
        case FEEDBACK_PATTERN_WAKEUP:
+       case FEEDBACK_PATTERN_INTERNAL_WAKEUP:
        case FEEDBACK_PATTERN_WAKEUP_ON_CALL:
        case FEEDBACK_PATTERN_TIMER:
+       case FEEDBACK_PATTERN_INTERNAL_TIMER:
        case FEEDBACK_PATTERN_TIMER_ON_CALL:
        case FEEDBACK_PATTERN_MESSAGE ... FEEDBACK_PATTERN_EMAIL_ON_CALL:
        case FEEDBACK_PATTERN_SCHEDULE:
        case FEEDBACK_PATTERN_SCHEDULE_ON_CALL:
        case FEEDBACK_PATTERN_GENERAL ... FEEDBACK_PATTERN_LOWBATT_ON_CALL:
+       case FEEDBACK_PATTERN_SAFETY_ALERT:
+       case FEEDBACK_PATTERN_CMAS:
+       case FEEDBACK_PATTERN_CMAS_CA:
                return true;
        }
        return false;
 }
 
+//LCOV_EXCL_START
 static bool wearable_is_notification_type(int pattern)
 {
        switch (pattern) {
        case FEEDBACK_PATTERN_WAKEUP:
+       case FEEDBACK_PATTERN_INTERNAL_WAKEUP:
        case FEEDBACK_PATTERN_WAKEUP_ON_CALL:
        case FEEDBACK_PATTERN_TIMER:
+       case FEEDBACK_PATTERN_INTERNAL_TIMER:
        case FEEDBACK_PATTERN_TIMER_ON_CALL:
                return false;
        case FEEDBACK_PATTERN_MESSAGE ... FEEDBACK_PATTERN_EMAIL_ON_CALL:
        case FEEDBACK_PATTERN_SCHEDULE:
        case FEEDBACK_PATTERN_SCHEDULE_ON_CALL:
-       case FEEDBACK_PATTERN_GENERAL ... FEEDBACK_PATTERN_LOWBATT_ON_CALL:
+       case FEEDBACK_PATTERN_GENERAL:
+       case FEEDBACK_PATTERN_GENERAL_ON_CALL:
+       case FEEDBACK_PATTERN_SMART_ALERT:
+       case FEEDBACK_PATTERN_SAFETY_ALERT:
+       case FEEDBACK_PATTERN_CMAS:
+       case FEEDBACK_PATTERN_CMAS_CA:
+       case FEEDBACK_PATTERN_3RD_APPLICATION:
+       case FEEDBACK_PATTERN_TEMPERATURE_WARNING:
+       case FEEDBACK_PATTERN_COOLDOWN_WARNING_1:
+       case FEEDBACK_PATTERN_COOLDOWN_WARNING_2:
+       case FEEDBACK_PATTERN_COMMUNICATION:
+       case FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ:
+       case FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ:
+       case FEEDBACK_PATTERN_GENERAL_STRONG_BUZZ:
+       case FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ:
+       case FEEDBACK_PATTERN_SCHEDULE_STRONG_BUZZ:
+       case FEEDBACK_PATTERN_NOTIFICATION_1 ... FEEDBACK_PATTERN_NOTIFICATION_8_STRONG_BUZZ:
+       case FEEDBACK_PATTERN_ALARM_1 ... FEEDBACK_PATTERN_ALARM_8_STRONG_BUZZ:
                return true;
        }
        return false;
 }
+//LCOV_EXCL_STOP
 
 static bool profile_is_notification_type(int pattern)
 {
@@ -623,11 +1310,15 @@ static bool profile_is_notification_type(int pattern)
 static int mobile_get_priority(int pattern)
 {
        switch (pattern) {
-       case FEEDBACK_PATTERN_TAP ... FEEDBACK_PATTERN_KEY_BACK:
+       case FEEDBACK_PATTERN_TAP ... FEEDBACK_PATTERN_HW_HOLD:
                return PRIORITY_MIN;
        case FEEDBACK_PATTERN_WAKEUP:
+       case FEEDBACK_PATTERN_INTERNAL_WAKEUP:
        case FEEDBACK_PATTERN_SCHEDULE:
        case FEEDBACK_PATTERN_TIMER:
+       case FEEDBACK_PATTERN_INTERNAL_TIMER:
+       case FEEDBACK_PATTERN_CMAS:
+       case FEEDBACK_PATTERN_CMAS_CA:
                return PRIORITY_HIGH;
        case FEEDBACK_PATTERN_SEND_SOS_MESSAGE:
        case FEEDBACK_PATTERN_RINGER:
@@ -637,6 +1328,37 @@ static int mobile_get_priority(int pattern)
        return PRIORITY_MIDDLE;
 }
 
+//LCOV_EXCL_START
+static int wearable_get_priority(int pattern)
+{
+       if (pattern == FEEDBACK_PATTERN_CMAS ||
+        pattern == FEEDBACK_PATTERN_CMAS_CA ||
+        pattern == FEEDBACK_PATTERN_RINGER ||
+        pattern == FEEDBACK_PATTERN_RINGER_STRONG_BUZZ ||
+        (pattern >= FEEDBACK_PATTERN_RING_1 && pattern <= FEEDBACK_PATTERN_RING_10_STRONG_BUZZ) ||
+        pattern == FEEDBACK_PATTERN_FIND_MY_GEAR)
+               return PRIORITY_TOP;
+       else if (pattern == FEEDBACK_PATTERN_WAKEUP || pattern == FEEDBACK_PATTERN_INTERNAL_WAKEUP ||
+        pattern == FEEDBACK_PATTERN_WAKEUP_ON_CALL ||
+        pattern == FEEDBACK_PATTERN_SCHEDULE || pattern == FEEDBACK_PATTERN_SCHEDULE_ON_CALL ||
+        pattern == FEEDBACK_PATTERN_TIMER || pattern == FEEDBACK_PATTERN_INTERNAL_TIMER ||
+        pattern == FEEDBACK_PATTERN_TIMER_ON_CALL ||
+        (pattern >= FEEDBACK_PATTERN_ALARM_1 && pattern <= FEEDBACK_PATTERN_ALARM_10_STRONG_BUZZ))
+               return PRIORITY_HIGH;
+       else if (pattern >= FEEDBACK_PATTERN_TAP && pattern <= FEEDBACK_PATTERN_HW_HOLD)
+               return PRIORITY_MIN;
+       else if (pattern == FEEDBACK_PATTERN_END_EFFECT)
+               return PRIORITY_MIN;
+       else if (pattern >= FEEDBACK_PATTERN_END_EFFECT_FINE && pattern <= FEEDBACK_PATTERN_FUNCTION)
+               return PRIORITY_MIN;
+       else if (pattern == FEEDBACK_PATTERN_VOICE_START || pattern == FEEDBACK_PATTERN_VOICE_STOP)
+               return PRIORITY_MIN;
+       else if (pattern >= FEEDBACK_PATTERN_BOS && pattern <= FEEDBACK_PATTERN_UDS)
+               return PRIORITY_MIN;
+       return PRIORITY_MIDDLE;
+}
+//LCOV_EXCL_STOP
+
 static int profile_get_priority(int pattern)
 {
        int prof;
@@ -645,12 +1367,18 @@ static int profile_get_priority(int pattern)
 
        if (prof == PROFILE_MOBILE)
                return mobile_get_priority(pattern);
+//LCOV_EXCL_START
+       else if (prof == PROFILE_WEARABLE)
+               return wearable_get_priority(pattern);
        else
                return PRIORITY_MIDDLE;
+//LCOV_EXCL_STOP
 }
 
 static bool mobile_get_always_alert_case(int type, int pattern)
 {
+       int ret;
+
        switch (pattern) {
        case FEEDBACK_PATTERN_KEY0 ... FEEDBACK_PATTERN_KEY_BACK:
        case FEEDBACK_PATTERN_HOLD:
@@ -658,6 +1386,9 @@ static bool mobile_get_always_alert_case(int type, int pattern)
                        return true;
                break;
        case FEEDBACK_PATTERN_SIP:
+       case FEEDBACK_PATTERN_SIP_BACKSPACE:
+       case FEEDBACK_PATTERN_SIP_FUNCTION:
+       case FEEDBACK_PATTERN_SIP_FJKEY:
                if (CHECK_VIBRATION(type))
                        return true;
                break;
@@ -667,11 +1398,13 @@ static bool mobile_get_always_alert_case(int type, int pattern)
                        return true;
                break;
        case FEEDBACK_PATTERN_TIMER:
+       case FEEDBACK_PATTERN_INTERNAL_TIMER:
        case FEEDBACK_PATTERN_TIMER_ON_CALL:
                if (CHECK_VIBRATION(type))
                        return true;
                break;
        case FEEDBACK_PATTERN_WAKEUP:
+       case FEEDBACK_PATTERN_INTERNAL_WAKEUP:
        case FEEDBACK_PATTERN_WAKEUP_ON_CALL:
                return true;
        case FEEDBACK_PATTERN_MESSAGE_ON_CALL:
@@ -681,11 +1414,17 @@ static bool mobile_get_always_alert_case(int type, int pattern)
        case FEEDBACK_PATTERN_CHARGERCONN_ON_CALL:
        case FEEDBACK_PATTERN_CHARGING_ERROR_ON_CALL:
        case FEEDBACK_PATTERN_LOWBATT_ON_CALL:
+       case FEEDBACK_PATTERN_MMS:
+       case FEEDBACK_PATTERN_HOURLY_ALERT:
                /* no matter sound profile */
                if (CHECK_VIBRATION(type))
                        return true;
                break;
        case FEEDBACK_PATTERN_SEND_SOS_MESSAGE:
+       case FEEDBACK_PATTERN_SMART_ALERT:
+       case FEEDBACK_PATTERN_END_SOS_MESSAGE:
+       case FEEDBACK_PATTERN_CMAS:
+       case FEEDBACK_PATTERN_CMAS_CA:
        case FEEDBACK_PATTERN_OUTGOING_CALL:
                return true;
        case FEEDBACK_PATTERN_SCREEN_CAPTURE:
@@ -693,6 +1432,19 @@ static bool mobile_get_always_alert_case(int type, int pattern)
                        return true;
                break;
        case FEEDBACK_PATTERN_RINGER:
+               if (CHECK_VIBRATION(type) && (is_vibration_mode() || is_sound_mode()) &&
+            vconf_get_int(VCONFKEY_RECORDER_STATE, &ret) == 0 &&
+            ret == VCONFKEY_RECORDER_STATE_RECORDING)
+                       return true;
+               break;
+       case FEEDBACK_PATTERN_TEMPERATURE_WARNING:
+       case FEEDBACK_PATTERN_COOLDOWN_WARNING_1:
+       case FEEDBACK_PATTERN_COOLDOWN_WARNING_2:
+               if (CHECK_VIBRATION(type))
+                       return true;
+               break;
+       case FEEDBACK_PATTERN_CALLCONNECT:
+       case FEEDBACK_PATTERN_DISCALLCONNECT:
                return true;
        default:
                break;
@@ -701,18 +1453,41 @@ static bool mobile_get_always_alert_case(int type, int pattern)
 }
 
 //LCOV_EXCL_START
+static bool wearable_is_system_type(int pattern)
+{
+       switch(pattern) {
+       case FEEDBACK_PATTERN_POWERON ... FEEDBACK_PATTERN_HOURLY_ALERT:
+       case FEEDBACK_PATTERN_TEMPERATURE_WARNING ... FEEDBACK_PATTERN_COOLDOWN_WARNING_2:
+               return true;
+       }
+       return false;
+}
+
 static bool wearable_get_always_alert_case(int type, int pattern)
 {
+       int ret;
+
        if (CHECK_SOUND(type)) {
+               if ((wearable_is_notification_type(pattern) || wearable_is_system_type(pattern)) &&
+            callstatus) {
+                       _W("skip %s sound during call", profile_str_pattern(pattern));
+                       return false;
+               }
                switch (pattern) {
                case FEEDBACK_PATTERN_WAKEUP:
+               case FEEDBACK_PATTERN_INTERNAL_WAKEUP:
                case FEEDBACK_PATTERN_WAKEUP_ON_CALL:
                        return true;
                case FEEDBACK_PATTERN_MESSAGE_ON_CALL:
                case FEEDBACK_PATTERN_EMAIL_ON_CALL:
                case FEEDBACK_PATTERN_GENERAL_ON_CALL:
                        break;
+               case FEEDBACK_PATTERN_SMART_ALERT:
                case FEEDBACK_PATTERN_SEND_SOS_MESSAGE:
+               case FEEDBACK_PATTERN_END_SOS_MESSAGE:
+               case FEEDBACK_PATTERN_CMAS:
+               case FEEDBACK_PATTERN_CMAS_CA:
+               case FEEDBACK_PATTERN_NFC_SUCCESS:
                        return true;
                case FEEDBACK_PATTERN_SCREEN_CAPTURE:
                        if (camerastatus && shutter_sndstatus)
@@ -724,10 +1499,25 @@ static bool wearable_get_always_alert_case(int type, int pattern)
                        break;
                }
        } else if (CHECK_VIBRATION(type)) {
+               if ((wearable_is_notification_type(pattern) || wearable_is_system_type(pattern)) &&
+            (is_sound_mode() || is_vibration_mode()) &&
+            callstatus) {
+                       _W("alert %s vibration during call", profile_str_pattern(pattern));
+                       return true;
+               }
                switch (pattern) {
                case FEEDBACK_PATTERN_TAP:
                case FEEDBACK_PATTERN_KEY0 ... FEEDBACK_PATTERN_KEY_BACK:
                case FEEDBACK_PATTERN_HOLD:
+               case FEEDBACK_PATTERN_END_EFFECT:
+               case FEEDBACK_PATTERN_END_EFFECT_FINE ... FEEDBACK_PATTERN_FUNCTION:
+               case FEEDBACK_PATTERN_VOICE_START:
+               case FEEDBACK_PATTERN_VOICE_STOP:
+               case FEEDBACK_PATTERN_PICKER:
+               case FEEDBACK_PATTERN_PICKER_FINISH:
+               case FEEDBACK_PATTERN_ON_OFF_SWITCH:
+               case FEEDBACK_PATTERN_REORDER:
+               case FEEDBACK_PATTERN_CURSOR_MOVE:
                        if (feedbackstatus)
                                return true;
                        break;
@@ -735,27 +1525,93 @@ static bool wearable_get_always_alert_case(int type, int pattern)
                case FEEDBACK_PATTERN_EMAIL:
                case FEEDBACK_PATTERN_GENERAL:
                case FEEDBACK_PATTERN_SCHEDULE:
+               case FEEDBACK_PATTERN_COMMUNICATION:
+               case FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_GENERAL_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_SCHEDULE_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_3RD_APPLICATION:
+               case FEEDBACK_PATTERN_NOTIFICATION_1 ... FEEDBACK_PATTERN_NOTIFICATION_10_STRONG_BUZZ:
                        if (noti_vibstatus)
                                return true;
                        break;
                case FEEDBACK_PATTERN_SIP:
+               case FEEDBACK_PATTERN_SIP_BACKSPACE:
+               case FEEDBACK_PATTERN_SIP_FUNCTION:
+               case FEEDBACK_PATTERN_SIP_FJKEY:
                case FEEDBACK_PATTERN_TIMER:
+               case FEEDBACK_PATTERN_INTERNAL_TIMER:
                case FEEDBACK_PATTERN_TIMER_ON_CALL:
                case FEEDBACK_PATTERN_WAKEUP:
+               case FEEDBACK_PATTERN_INTERNAL_WAKEUP:
                case FEEDBACK_PATTERN_WAKEUP_ON_CALL:
                case FEEDBACK_PATTERN_MESSAGE_ON_CALL:
                case FEEDBACK_PATTERN_EMAIL_ON_CALL:
                case FEEDBACK_PATTERN_GENERAL_ON_CALL:
+               case FEEDBACK_PATTERN_WAKEUP_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_TIMER_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_ALARM_1 ... FEEDBACK_PATTERN_ALARM_10_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_MMS:
+               case FEEDBACK_PATTERN_HOURLY_ALERT:
                case FEEDBACK_PATTERN_CHARGERCONN_ON_CALL:
                case FEEDBACK_PATTERN_CHARGING_ERROR_ON_CALL:
                case FEEDBACK_PATTERN_LOWBATT_ON_CALL:
+               case FEEDBACK_PATTERN_TEMPERATURE_WARNING:
+               case FEEDBACK_PATTERN_COOLDOWN_WARNING_1:
+               case FEEDBACK_PATTERN_COOLDOWN_WARNING_2:
                case FEEDBACK_PATTERN_BT_DISCONNECTED:
                case FEEDBACK_PATTERN_SEND_SOS_MESSAGE:
+               case FEEDBACK_PATTERN_END_SOS_MESSAGE:
+               case FEEDBACK_PATTERN_SMART_ALERT:
+               case FEEDBACK_PATTERN_CMAS:
+               case FEEDBACK_PATTERN_CMAS_CA:
                case FEEDBACK_PATTERN_OUTGOING_CALL:
+               case FEEDBACK_PATTERN_FALL_DETECTION_1:
+               case FEEDBACK_PATTERN_FALL_DETECTION_2:
+                       return true;
+               case FEEDBACK_PATTERN_SPEED_UP:
+               case FEEDBACK_PATTERN_SLOW_DOWN:
+               case FEEDBACK_PATTERN_KEEP_THIS_PACE:
+               case FEEDBACK_PATTERN_GOAL_ACHIEVED:
+               case FEEDBACK_PATTERN_EXERCISE_COUNT:
+               case FEEDBACK_PATTERN_BREATHING_EXHALE:
+               case FEEDBACK_PATTERN_START_CUE:
+               case FEEDBACK_PATTERN_INACTIVE_TIME:
+               case FEEDBACK_PATTERN_SHEALTH_NOTICE:
+               case FEEDBACK_PATTERN_SHEALTH_GENTLE_ALERT:
+               case FEEDBACK_PATTERN_HEALTH_PACE:
+               case FEEDBACK_PATTERN_SHEALTH_START:
+               case FEEDBACK_PATTERN_SHEALTH_PAUSE:
+               case FEEDBACK_PATTERN_SHEALTH_STOP:
+               case FEEDBACK_PATTERN_INACTIVE_FINE:
+               case FEEDBACK_PATTERN_MEDITATION:
+               case FEEDBACK_PATTERN_MEDITATION_INTERVAL:
+                       /* except mute case */
+                       if (is_sound_mode() || is_vibration_mode())
+                               return true;
+                       break;
+               case FEEDBACK_PATTERN_RINGER:
+               case FEEDBACK_PATTERN_RINGER_STRONG_BUZZ:
+               case FEEDBACK_PATTERN_RING_1 ... FEEDBACK_PATTERN_RING_10_STRONG_BUZZ:
+                       if (vib_when_ring)
+                return true;
+            /* check if the state of voice recorder is recording */
+            if ((is_sound_mode() || is_vibration_mode()) &&
+                vconf_get_int(VCONFKEY_RECORDER_STATE, &ret) == 0 &&
+                ret == VCONFKEY_RECORDER_STATE_RECORDING) {
+                _D("voice recording status is RECORDING");
+                return true;
+            }
+            break;
+               case FEEDBACK_PATTERN_FIND_MY_GEAR:
                        return true;
                default:
                        break;
                }
+
+               if (pattern > FEEDBACK_STANDARD_START && pattern < FEEDBACK_STANDARD_END)
+                       return true;
        }
        return false;
 }
@@ -824,6 +1680,8 @@ static bool mobile_get_always_off_case(int type, int pattern)
                break;
        case FEEDBACK_PATTERN_LOCK:
        case FEEDBACK_PATTERN_UNLOCK:
+       case FEEDBACK_PATTERN_LOCK_SWIPE:
+       case FEEDBACK_PATTERN_UNLOCK_SWIPE:
                if (CHECK_SOUND(type) && !lock_sndstatus)
                        return true;
                break;
@@ -834,15 +1692,6 @@ static bool mobile_get_always_off_case(int type, int pattern)
 }
 
 //LCOV_EXCL_START
-static bool wearable_is_system_type(int pattern)
-{
-       switch (pattern) {
-       case FEEDBACK_PATTERN_POWERON ... FEEDBACK_PATTERN_VOLUME_KEY:
-               return true;
-       }
-       return false;
-}
-
 static bool wearable_get_always_off_case(int type, int pattern)
 {
        int ret;
@@ -853,6 +1702,12 @@ static bool wearable_get_always_off_case(int type, int pattern)
                        _W("skip %d sound during call", pattern);
                        return true;
                }
+
+               if (goodnight_mode && wearable_is_system_type(pattern)) {
+                       _W("Skip %d sound in good night mode", pattern);
+                       return true;
+               }
+
                /* check if the state of voice recorder is recording */
                if (vconf_get_int(VCONFKEY_RECORDER_STATE, &ret) == 0 &&
                    ret == VCONFKEY_RECORDER_STATE_RECORDING) {
@@ -862,12 +1717,30 @@ static bool wearable_get_always_off_case(int type, int pattern)
 
                switch (pattern) {
                case FEEDBACK_PATTERN_TAP:
+               case FEEDBACK_PATTERN_MAX_CHARACTER:
                case FEEDBACK_PATTERN_HOLD ... FEEDBACK_PATTERN_HW_HOLD:
-                       if (!is_touch_sndstatus())
+                       if (!is_touch_sndstatus() || theater_mode || goodnight_mode)
+                               return true;
+                       break;
+               case FEEDBACK_PATTERN_SIP ... FEEDBACK_PATTERN_SIP_FJKEY:
+                       if (theater_mode || goodnight_mode)
                                return true;
                        break;
                case FEEDBACK_PATTERN_KEY0 ... FEEDBACK_PATTERN_KEY_BACK:
-                       if (!is_keytone_sndstatus())
+                       if (!is_keytone_sndstatus() || theater_mode || goodnight_mode)
+                               return true;
+                       break;
+               case FEEDBACK_PATTERN_LOCK:
+               case FEEDBACK_PATTERN_UNLOCK:
+                       if (!lock_sndstatus)
+                               return true;
+                       break;
+               case FEEDBACK_PATTERN_BT_DISCONNECTED:
+               case FEEDBACK_PATTERN_LOWBATT:
+               case FEEDBACK_PATTERN_LOWBATT_ON_CALL:
+               case FEEDBACK_PATTERN_CHARGERCONN:
+               case FEEDBACK_PATTERN_CHARGERCONN_ON_CALL:
+                       if (dnd_mode || theater_mode || goodnight_mode)
                                return true;
                        break;
                default:
@@ -878,9 +1751,28 @@ static bool wearable_get_always_off_case(int type, int pattern)
                case FEEDBACK_PATTERN_TAP:
                case FEEDBACK_PATTERN_KEY0 ... FEEDBACK_PATTERN_KEY_BACK:
                case FEEDBACK_PATTERN_HOLD:
+               case FEEDBACK_PATTERN_END_EFFECT:
+               case FEEDBACK_PATTERN_END_EFFECT_FINE ... FEEDBACK_PATTERN_FUNCTION:
+               case FEEDBACK_PATTERN_VOICE_START:
+               case FEEDBACK_PATTERN_VOICE_STOP:
+               case FEEDBACK_PATTERN_PICKER:
+               case FEEDBACK_PATTERN_PICKER_FINISH:
+               case FEEDBACK_PATTERN_ON_OFF_SWITCH:
+               case FEEDBACK_PATTERN_REORDER:
+               case FEEDBACK_PATTERN_CURSOR_MOVE:
                        if (!feedbackstatus)
                                return true;
                        break;
+               case FEEDBACK_PATTERN_LOWBATT:
+               case FEEDBACK_PATTERN_LOWBATT_ON_CALL:
+               case FEEDBACK_PATTERN_CHARGERCONN:
+               case FEEDBACK_PATTERN_CHARGERCONN_ON_CALL:
+                       if (dnd_mode || theater_mode || goodnight_mode)
+                               return true;
+                       break;
+               case FEEDBACK_PATTERN_BT_DISCONNECTED:
+                       if (goodnight_mode)
+                               return true;
                default:
                        break;
                }
@@ -925,6 +1817,48 @@ static bool profile_get_always_off_case(int type, int pattern)
 //LCOV_EXCL_STOP
 }
 
+//LCOV_EXCL_START
+static int wearable_get_strong_buzz(int pattern)
+{
+       int changed_pattern = pattern;
+
+       switch (pattern) {
+       case FEEDBACK_PATTERN_BT_DISCONNECTED:
+               if (disconnect_alert_mode % BUZZ_CONVERTED)
+                       changed_pattern = S2;
+               break;
+       case FEEDBACK_PATTERN_SEND_SOS_MESSAGE:
+       case FEEDBACK_PATTERN_KEEP_THIS_PACE:
+       case FEEDBACK_PATTERN_SHEALTH_GENTLE_ALERT:
+       case FEEDBACK_PATTERN_HEALTH_PACE:
+       case FEEDBACK_PATTERN_GOAL_ACHIEVED:
+       case FEEDBACK_PATTERN_INACTIVE_TIME:
+       case FEEDBACK_PATTERN_INACTIVE_FINE:
+               if (vib_call_index % BUZZ_CONVERTED)
+                       changed_pattern = J_WHB;
+               break;
+       case FEEDBACK_PATTERN_SHEALTH_NOTICE:
+               if (vib_call_index % BUZZ_CONVERTED)
+                       changed_pattern = J_WB;
+               break;
+       default:
+               break;
+       }
+       return changed_pattern;
+}
+//LCOV_EXCL_STOP
+
+static int profile_get_strong_buzz(int pattern)
+{
+       int prof = get_profile();
+
+//LCOV_EXCL_START
+       if (prof == PROFILE_WEARABLE)
+               return wearable_get_strong_buzz(pattern);
+//LCOV_EXCL_STOP
+       return pattern;
+}
+
 static int mobile_get_strength_type(int type, int pattern)
 {
        if (CHECK_SOUND(type)) {
@@ -941,9 +1875,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? (noti_level/2 + 1): 0);
+                       return FEEDBACK_LEVEL(noti_level);
                else
-                       return (vib_level? (vib_level/2 + 1): 0);
+                       return FEEDBACK_LEVEL(vib_level);
        }
 
        return -EINVAL;
@@ -957,23 +1891,35 @@ static int wearable_get_strength_type(int type, int pattern)
                        return VOLUME_TYPE_SYSTEM|VOLUME_GAIN_TOUCH;
                else if (pattern >= FEEDBACK_PATTERN_KEY0 && pattern <= FEEDBACK_PATTERN_KEY_BACK)
                        return VOLUME_TYPE_SYSTEM|VOLUME_GAIN_DIALER;
-               else if (pattern == FEEDBACK_PATTERN_VOLUME_KEY || pattern == FEEDBACK_PATTERN_SILENT_OFF)
+               else if (pattern == FEEDBACK_PATTERN_VOLUME_KEY || pattern == FEEDBACK_PATTERN_SILENT_OFF ||
+            (pattern >= FEEDBACK_PATTERN_RING_1 && pattern <= FEEDBACK_PATTERN_RING_8_STRONG_BUZZ))
                        return VOLUME_TYPE_RINGTONE;
                else if (camerastatus && shutter_sndstatus && pattern == FEEDBACK_PATTERN_SCREEN_CAPTURE)
                        return VOLUME_TYPE_FIXED;
+               else if (pattern == FEEDBACK_PATTERN_INACTIVE_FINE ||
+            pattern == FEEDBACK_PATTERN_INACTIVE_TIME ||
+            pattern == FEEDBACK_PATTERN_HEALTH_PACE)
+                       return VOLUME_TYPE_NOTIFICATION;
+               else if (pattern == FEEDBACK_PATTERN_GOAL_ACHIEVED ||
+            pattern == FEEDBACK_PATTERN_KEEP_THIS_PACE ||
+            pattern == FEEDBACK_PATTERN_EXERCISE_COUNT ||
+            pattern == FEEDBACK_PATTERN_START_CUE)
+                       return VOLUME_TYPE_MEDIA;
                return VOLUME_TYPE_SYSTEM;
        } else if (CHECK_VIBRATION(type)) {
-               if (pattern >= FEEDBACK_PATTERN_TAP && pattern <= FEEDBACK_PATTERN_HW_HOLD) {
+               if ((pattern >= FEEDBACK_PATTERN_TAP && pattern <= FEEDBACK_PATTERN_HW_HOLD) ||
+            pattern == FEEDBACK_PATTERN_END_EFFECT ||
+            (pattern == FEEDBACK_PATTERN_VOICE_START || pattern == FEEDBACK_PATTERN_VOICE_STOP) ||
+            (pattern >= FEEDBACK_PATTERN_END_EFFECT_FINE && pattern <= FEEDBACK_PATTERN_FUNCTION) ||
+            (pattern == FEEDBACK_PATTERN_ON_OFF_SWITCH) ||
+            (pattern == FEEDBACK_PATTERN_CURSOR_MOVE || pattern == FEEDBACK_PATTERN_PICKER)) {
                        _D("use default level");
-                       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 1;
+                       return FEEDBACK_LEVEL(DEFAULT_VIB_LEVEL);
                }
-               return (noti_level? (noti_level/2 + 1): 0);
+               if (pattern == FEEDBACK_PATTERN_FIND_MY_GEAR)
+            return MAX_VIB_LEVEL;
+
+               return FEEDBACK_LEVEL(noti_level);
        }
        return -EINVAL;
 }
@@ -992,7 +1938,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? (DEFAULT_VIB_LEVEL/2 + 1): 0);
+               return FEEDBACK_LEVEL(DEFAULT_VIB_LEVEL);
        }
 
        return -EINVAL;
@@ -1015,6 +1961,30 @@ static int profile_get_strength_type(int type, int pattern)
 //LCOV_EXCL_STOP
 }
 
+//LCOV_EXCL_START
+static char *wearable_get_path(int pattern)
+{
+       char *data = NULL;
+
+       if (pattern >= FEEDBACK_PATTERN_RING_1 && pattern <= FEEDBACK_PATTERN_RING_8_STRONG_BUZZ)
+               data = snd_call_path;
+       else if (pattern >= FEEDBACK_PATTERN_NOTIFICATION_1 && pattern <= FEEDBACK_PATTERN_NOTIFICATION_8_STRONG_BUZZ)
+               data = snd_noti_path;
+       return data;
+}
+//LCOV_EXCL_STOP
+
+static char *profile_get_path(int pattern)
+{
+       int prof = get_profile();
+
+//LCOV_EXCL_START
+       if (prof == PROFILE_WEARABLE)
+               return wearable_get_path(pattern);
+//LCOV_EXCL_STOP
+       return NULL;
+}
+
 static const struct profile_ops feedback_profile_ops = {
        .profile               = profile_get_name,
        .init                  = profile_init,
@@ -1024,6 +1994,7 @@ static const struct profile_ops feedback_profile_ops = {
        .get_always_off_case   = profile_get_always_off_case,
        .get_strength_type     = profile_get_strength_type,
        .get_priority          = profile_get_priority,
+       .get_strong_buzz       = profile_get_strong_buzz,
        .is_notification_type  = profile_is_notification_type,
        .max_type              = FEEDBACK_TYPE_END,
        .max_pattern           = FEEDBACK_PATTERN_INTERNAL_END,
@@ -1031,6 +2002,7 @@ static const struct profile_ops feedback_profile_ops = {
        .get_num_of_pattern    = profile_get_num_of_pattern,
        .str_pattern           = profile_str_pattern,
        .get_pattern_enum      = profile_get_pattern_enum,
+       .get_path              = profile_get_path,
 };
 
 PROFILE_OPS_REGISTER(&feedback_profile_ops);
index 0a206d5..36275a6 100644 (file)
@@ -64,7 +64,6 @@ typedef GList dd_list;
 #define FEEDBACK_RETRY_CNT       1
 
 #define DEFAULT_VIB_LEVEL       3
-#define HAPTIC_FEEDBACK_STEP    20 /**< feedback max / slider step */
 
 #define ARR_SIZE(arr) (sizeof(arr)/sizeof((arr)[0]))
 #define FEEDBACK_LEVEL(x)   ((x)? ((x/2)+1): 0)
index 02e083a..08d1653 100644 (file)
@@ -331,9 +331,10 @@ API int feedback_play_type_by_name(char *type, char *pattern)
        return feedback_play_type(etype, epattern);
 }
 
-API int feedback_play_internal(feedback_pattern_internal_e pattern)
+API int feedback_play_internal(feedback_pattern_internal_e internal_pattern)
 {
        int err;
+       feedback_pattern_e pattern = (feedback_pattern_e)internal_pattern;
 
        /* check initialize */
        pthread_mutex_lock(&fmutex);
@@ -344,7 +345,7 @@ API int feedback_play_internal(feedback_pattern_internal_e pattern)
        }
        pthread_mutex_unlock(&fmutex);
 
-       if (pattern <= FEEDBACK_PATTERN_INTERNAL_NONE ||
+       if (pattern <= FEEDBACK_PATTERN_NONE ||
            pattern >= profile->max_pattern) {
                _E("Invalid parameter : pattern(%d)", pattern);
                return FEEDBACK_ERROR_INVALID_PARAMETER;
@@ -366,10 +367,11 @@ API int feedback_play_internal(feedback_pattern_internal_e pattern)
        return FEEDBACK_ERROR_NONE;
 }
 
-API int feedback_play_type_internal(feedback_type_e type, feedback_pattern_internal_e pattern)
+API int feedback_play_type_internal(feedback_type_e type, feedback_pattern_internal_e internal_pattern)
 {
        const struct device_ops *dev;
        int err;
+       feedback_pattern_e pattern = (feedback_pattern_e)internal_pattern;
 
        /* check initialize */
        pthread_mutex_lock(&fmutex);
@@ -386,7 +388,7 @@ API int feedback_play_type_internal(feedback_type_e type, feedback_pattern_inter
                return FEEDBACK_ERROR_INVALID_PARAMETER;
        }
 
-       if (pattern <= FEEDBACK_PATTERN_INTERNAL_NONE ||
+       if (pattern <= FEEDBACK_PATTERN_NONE ||
            pattern >= profile->max_pattern) {
                _E("Invalid parameter : pattern(%d)", pattern);
                return FEEDBACK_ERROR_INVALID_PARAMETER;
index 96f1ece..35f1403 100644 (file)
@@ -39,6 +39,7 @@ struct profile_ops {
        bool (*get_always_off_case)(int type, int pattern);
        int (*get_strength_type)(int type, int pattern);
        int (*get_priority)(int pattern);
+       int (*get_strong_buzz)(int pattern);
        bool (*is_notification_type)(int pattern);
        const int max_type;
        const int max_pattern;
@@ -46,6 +47,7 @@ struct profile_ops {
        const char *(*str_pattern)(int pattern);
        int (*get_pattern_enum)(char *pattern);
        int (*get_num_of_pattern)(void);
+       char *(*get_path)(int pattern);
 };
 
 struct pattern_field {
index 5bbb77f..2d64bba 100644 (file)
 #include <limits.h>
 #include <vconf.h>
 #include <mm_sound_private.h>
+#include <sound_manager.h>
+#include <wav_player.h>
 
-#include <feedback-ids.h>
+#include "feedback-ids.h"
 #include "profiles.h"
 #include "devices.h"
 #include "log.h"
@@ -58,6 +60,10 @@ static char *get_data(feedback_pattern_e pattern)
            pattern >= profile->max_pattern)
                return NULL;
 
+       data = profile->get_path(pattern);
+       if (data)
+               return data;
+
        for (i = 0; i < profile->get_num_of_pattern(); i++) {
                if (pattern == sound_info.data[i].pattern) {
                        index = i;
@@ -93,6 +99,11 @@ inline int is_keytone_sndstatus(void)
 }
 
 //LCOV_EXCL_START Not called Callback
+static void feedback_sndstatus_cb(keynode_t *key, void* data)
+{
+       sndstatus = vconf_keynode_get_bool(key);
+}
+
 static void feedback_touch_sndstatus_cb(keynode_t *key, void* data)
 {
        touch_sndstatus = vconf_keynode_get_bool(key);
@@ -124,6 +135,9 @@ static void sound_init(void)
        }
 
        /* add watch for status value */
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, feedback_sndstatus_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_SOUND_STATUS_BOOL failed");
        ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, feedback_touch_sndstatus_cb, NULL);
        if (ret != 0)
                _W("Add watch for VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL failed");
@@ -137,6 +151,10 @@ static void sound_exit(void)
        int ret;
 
        /* remove watch */
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_SOUND_STATUS_BOOL, feedback_sndstatus_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_SOUND_STATUS_BOOL failed");
+
        ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL, feedback_touch_sndstatus_cb);
        if (ret != 0)
                _W("Remove watch for VCONFKEY_SETAPPL_TOUCH_SOUNDS_BOOL failed");
@@ -148,10 +166,21 @@ static void sound_exit(void)
        feedback_free_config(&sound_info);
 }
 
+static void play_completed(int id, void *data)
+{
+       int ret;
+       sound_stream_info_h stream_info = (sound_stream_info_h)data;
+
+       ret = sound_manager_destroy_stream_information(stream_info);
+       if (ret != SOUND_MANAGER_ERROR_NONE)
+               _E("Failed to set session to play sound(%d)", ret);
+}
+
 static int sound_play(feedback_pattern_e pattern, bool always)
 {
        struct stat buf;
        int retry = FEEDBACK_RETRY_CNT, ret;
+       sound_stream_info_h stream_info;
        char *path;
        int level;
 
@@ -186,20 +215,36 @@ check_pattern:
        }
 
        /* play sound file */
-       do {
-               if (profile->get_strength_type)
-                       level = profile->get_strength_type(FEEDBACK_TYPE_SOUND, pattern);
-               else
-                       level = VOLUME_TYPE_SYSTEM;
-
-               ret = mm_sound_play_keysound(path, level);
-               if (ret == MM_ERROR_NONE) {
-                       _D("Play success! SND filename is %s", path);
-                       return 0;
+       if (profile->is_notification_type && profile->is_notification_type(pattern)) {
+               ret = sound_manager_create_stream_information(SOUND_STREAM_TYPE_NOTIFICATION,
+                NULL, NULL, &stream_info);
+               if (ret != SOUND_MANAGER_ERROR_NONE) {
+                       _E("Failed to set session to play sound(%d)", ret); //LCOV_EXCL_LINE
+                       return -ENOENT;
                }
-               _E("mm_sound_play_keysound() returned error(%d)", ret); //LCOV_EXCL_LINE
-       } while (retry--);
-
+               do {
+                       ret = wav_player_start_new(path, stream_info, play_completed, stream_info, NULL);
+                       if (ret == WAV_PLAYER_ERROR_NONE) {
+                               _D("Wav Play success! SND filename is %s", path); //LCOV_EXCL_LINE
+                               return 0;
+                       }
+                       _E("Failed to play sound file (%d, %s)", ret, path); //LCOV_EXCL_LINE
+               } while (retry--);
+       } else {
+               do {
+                       if (profile->get_strength_type)
+                               level = profile->get_strength_type(FEEDBACK_TYPE_SOUND, pattern);
+                       else
+                               level = VOLUME_TYPE_SYSTEM;
+
+                       ret = mm_sound_play_keysound(path, level);
+                       if (ret == MM_ERROR_NONE) {
+                               _D("Play success! %s(%s)", profile->str_pattern(pattern), path);
+                               return 0;
+                       }
+                       _E("mm_sound_play_keysound() returned error(%d)", ret); //LCOV_EXCL_LINE
+               } while (retry--);
+       }
        return -EPERM;
 }
 
@@ -207,7 +252,7 @@ static int sound_play_path(feedback_pattern_e pattern, const char *soundpath, bo
 {
        struct stat buf;
        int retry = FEEDBACK_RETRY_CNT, ret;
-       char *path;
+       sound_stream_info_h stream_info;
        int level;
 
        if (!soundpath || stat(soundpath, &buf)) {
@@ -242,20 +287,36 @@ static int sound_play_path(feedback_pattern_e pattern, const char *soundpath, bo
 
 check_pattern:
        /* play sound file */
-       do {
-               if (profile->get_strength_type)
-                       level = profile->get_strength_type(FEEDBACK_TYPE_SOUND, pattern);
-               else
-                       level = VOLUME_TYPE_SYSTEM;
-
-               ret = mm_sound_play_keysound(soundpath, level);
-               if (ret == MM_ERROR_NONE) {
-                       _D("Play success! SND filename is %s", soundpath); //LCOV_EXCL_LINE
-                       return 0;
+       if (profile->is_notification_type && profile->is_notification_type(pattern)) {
+               ret = sound_manager_create_stream_information(SOUND_STREAM_TYPE_NOTIFICATION,
+                NULL, NULL, &stream_info);
+               if (ret != SOUND_MANAGER_ERROR_NONE) {
+                       _E("Failed to set session to play sound(%d)", ret); //LCOV_EXCL_LINE
+                       return -ENOENT;
                }
-               _E("mm_sound_play_keysound(\'%s\') returned error(%d)", soundpath, ret); //LCOV_EXCL_LINE
-       } while (retry--);
-
+               do {
+            ret = wav_player_start_new(soundpath, stream_info, play_completed, stream_info, NULL);
+                       if (ret == WAV_PLAYER_ERROR_NONE) {
+                _D("Wav Play success! SND filename is %s", soundpath); //LCOV_EXCL_LINE
+                               return 0;
+                       }
+            _E("Failed to play sound file (%d, %s)", ret, soundpath); //LCOV_EXCL_LINE
+               } while (retry--);
+       } else {
+               do {
+                       if (profile->get_strength_type)
+                               level = profile->get_strength_type(FEEDBACK_TYPE_SOUND, pattern);
+                       else
+                               level = VOLUME_TYPE_SYSTEM;
+
+                       ret = mm_sound_play_keysound(soundpath, level);
+                       if (ret == MM_ERROR_NONE) {
+                               _D("Play success! %s(%s)", profile->str_pattern(pattern), soundpath);
+                               return 0;
+                       }
+                       _E("mm_sound_play_keysound(\'%s\') returned error(%d)", soundpath, ret); //LCOV_EXCL_LINE
+               } while (retry--);
+       }
        return -EPERM;
 }
 
@@ -304,7 +365,7 @@ static int sound_get_path(feedback_pattern_e pattern, char *buf, unsigned int bu
        char *cur_path;
        int ret = 0;
 
-       if (!buf || buflen <= 0)
+       if (!buf || buflen == 0)
                return -EINVAL;
 
        /* get sound file path */
index 835c6db..3735f6d 100644 (file)
@@ -121,6 +121,11 @@ static int get_priority(feedback_pattern_e pattern)
        return PRIORITY_MIDDLE;
 }
 
+static void feedback_vibstatus_cb(keynode_t *key, void* data)
+{
+       vibstatus = vconf_keynode_get_bool(key);
+}
+
 static void vibrator_init(void)
 {
        int ret;
@@ -150,8 +155,13 @@ static void vibrator_init(void)
 
        /* Set vibration handle */
        v_handle = (unsigned int)ret;
+
+       ret = vconf_notify_key_changed(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, feedback_vibstatus_cb, NULL);
+       if (ret != 0)
+               _W("Add watch for VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL failed");
 }
 
+
 static void vibrator_exit(void)
 {
        int ret;
@@ -163,6 +173,9 @@ static void vibrator_exit(void)
                v_handle = 0;
        }
 
+       ret = vconf_ignore_key_changed(VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL, feedback_vibstatus_cb);
+       if (ret != 0)
+               _W("Remove watch for VCONFKEY_SETAPPL_VIBRATION_STATUS_BOOL failed");
 }
 
 static int vibrator_play(feedback_pattern_e pattern, bool always)
@@ -171,6 +184,7 @@ static int vibrator_play(feedback_pattern_e pattern, bool always)
        char *data;
        int ret;
        int level;
+       int converted_pattern = pattern;
 
        if ((int)v_handle <= 0) {
                if (v_handle == 0) { //LCOV_EXCL_LINE System Error
@@ -215,7 +229,10 @@ check_pattern:
        else
                level = FEEDBACK_LEVEL(DEFAULT_VIB_LEVEL);
 
-       temp = strdup(profile->str_pattern(pattern));
+       if (profile->get_strong_buzz)
+               converted_pattern = profile->get_strong_buzz(pattern);
+
+       temp = strdup(profile->str_pattern(converted_pattern));
        data = trim_str(temp);
        if (!data) {
                free(temp);
@@ -225,7 +242,7 @@ check_pattern:
 
        _D("pattern : %s", data);
 
-       ret = haptic_vibrate_effect(v_handle, data, level, get_priority(pattern));
+       ret = haptic_vibrate_effect(v_handle, data, level, get_priority(converted_pattern));
 
        if (ret < 0) {
                _E("fail to play vibration"); //LCOV_EXCL_LINE
index 9c94d3a..2da3385 100644 (file)
 [Sound]
-FEEDBACK_PATTERN_TAP=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_SIP=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY0=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY1=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY2=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY3=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY4=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY5=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY6=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY7=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY8=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY9=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY_STAR=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY_SHARP=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_KEY_BACK=/usr/share/feedback/sound/touch/touch.ogg
-FEEDBACK_PATTERN_POWERON=/usr/share/feedback/sound/operation/power_on.ogg
-FEEDBACK_PATTERN_CHARGERCONN=/usr/share/feedback/sound/operation/system.ogg
-FEEDBACK_PATTERN_CHARGING_ERROR=/usr/share/feedback/sound/operation/system.ogg
-FEEDBACK_PATTERN_LOWBATT=/usr/share/feedback/sound/operation/system.ogg
-FEEDBACK_PATTERN_SILENT_OFF=/usr/share/feedback/sound/operation/system.ogg
-FEEDBACK_PATTERN_BT_CONNECTED=/usr/share/feedback/sound/operation/system.ogg
-FEEDBACK_PATTERN_BT_DISCONNECTED=/usr/share/feedback/sound/operation/system.ogg
-FEEDBACK_PATTERN_VOLUME_KEY=/usr/share/feedback/sound/operation/system.ogg
-FEEDBACK_PATTERN_WAKEUP_ON_CALL=/usr/share/feedback/sound/operation/notification.ogg
-FEEDBACK_PATTERN_SCHEDULE_ON_CALL=/usr/share/feedback/sound/operation/notification.ogg
-FEEDBACK_PATTERN_TIMER_ON_CALL=/usr/share/feedback/sound/operation/notification.ogg
-FEEDBACK_PATTERN_SCREEN_CAPTURE=/usr/share/feedback/sound/operation/shutter.ogg
+FEEDBACK_PATTERN_TAP=/usr/share/feedback/sound/System/Touch.ogg
+FEEDBACK_PATTERN_SIP=/usr/share/feedback/sound/System/sip.ogg
+FEEDBACK_PATTERN_SIP_BACKSPACE=/usr/share/feedback/sound/System/sip_backspace.ogg
+FEEDBACK_PATTERN_SIP_FUNCTION=/usr/share/feedback/sound/System/sip.ogg
+FEEDBACK_PATTERN_SIP_FJKEY=/usr/share/feedback/sound/System/sip.ogg
+FEEDBACK_PATTERN_KEY0=/usr/share/feedback/sound/System/DTMF/Key0.wav
+FEEDBACK_PATTERN_KEY1=/usr/share/feedback/sound/System/DTMF/Key1.wav
+FEEDBACK_PATTERN_KEY2=/usr/share/feedback/sound/System/DTMF/Key2.wav
+FEEDBACK_PATTERN_KEY3=/usr/share/feedback/sound/System/DTMF/Key3.wav
+FEEDBACK_PATTERN_KEY4=/usr/share/feedback/sound/System/DTMF/Key4.wav
+FEEDBACK_PATTERN_KEY5=/usr/share/feedback/sound/System/DTMF/Key5.wav
+FEEDBACK_PATTERN_KEY6=/usr/share/feedback/sound/System/DTMF/Key6.wav
+FEEDBACK_PATTERN_KEY7=/usr/share/feedback/sound/System/DTMF/Key7.wav
+FEEDBACK_PATTERN_KEY8=/usr/share/feedback/sound/System/DTMF/Key8.wav
+FEEDBACK_PATTERN_KEY9=/usr/share/feedback/sound/System/DTMF/Key9.wav
+FEEDBACK_PATTERN_KEY_STAR=/usr/share/feedback/sound/System/DTMF/KeyAsterisk.wav
+FEEDBACK_PATTERN_KEY_SHARP=/usr/share/feedback/sound/System/DTMF/KeySharp.wav
+FEEDBACK_PATTERN_KEY_BACK=/usr/share/feedback/sound/System/Touch.ogg
+FEEDBACK_PATTERN_MESSAGE=/usr/share/feedback/sound/Notifications/Message_Knock.ogg
+FEEDBACK_PATTERN_MESSAGE_ON_CALL=/usr/share/feedback/sound/Notifications/Message_Knock.ogg
+FEEDBACK_PATTERN_EMAIL=/usr/share/feedback/sound/Notifications/Email_Doorbell.ogg
+FEEDBACK_PATTERN_EMAIL_ON_CALL=/usr/share/feedback/sound/Notifications/Email_Doorbell.ogg
+FEEDBACK_PATTERN_WAKEUP=/usr/share/feedback/sound/Ringtones/Ringtone2.ogg
+FEEDBACK_PATTERN_WAKEUP_ON_CALL=/usr/share/feedback/sound/System/Alarms_on_call.ogg
+FEEDBACK_PATTERN_SCHEDULE=/usr/share/feedback/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg
+FEEDBACK_PATTERN_SCHEDULE_ON_CALL=/usr/share/feedback/sound/System/Alarms_on_call.ogg
+FEEDBACK_PATTERN_TIMER=/usr/share/feedback/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg
+FEEDBACK_PATTERN_TIMER_ON_CALL=/usr/share/feedback/sound/System/Alarms_on_call.ogg
+FEEDBACK_PATTERN_GENERAL=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_GENERAL_ON_CALL=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_3RD_APPLICATION=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_POWERON=/usr/share/feedback/sound/System/PowerOn.ogg
+FEEDBACK_PATTERN_CHARGERCONN=/usr/share/feedback/sound/System/Charger_connection.ogg
+FEEDBACK_PATTERN_CHARGERCONN_ON_CALL=/usr/share/feedback/sound/System/Charger_connection.ogg
+FEEDBACK_PATTERN_CHARGING_ERROR=/usr/share/feedback/sound/System/Temp_warning_beep.ogg
+FEEDBACK_PATTERN_CHARGING_ERROR_ON_CALL=/usr/share/feedback/sound/System/Temp_warning_beep.ogg
+FEEDBACK_PATTERN_LOWBATT=/usr/share/feedback/sound/System/Low_Battery.ogg
+FEEDBACK_PATTERN_LOWBATT_ON_CALL=/usr/share/feedback/sound/System/Low_Battery.ogg
+FEEDBACK_PATTERN_CALLCONNECT=/usr/share/feedback/sound/System/Call_Connect.ogg
+FEEDBACK_PATTERN_DISCALLCONNECT=/usr/share/feedback/sound/System/Call_End.ogg
+FEEDBACK_PATTERN_SILENT_OFF=/usr/share/feedback/sound/System/Silent_mode_off.ogg
+FEEDBACK_PATTERN_VOLUME_KEY=/usr/share/feedback/sound/System/Volume_control.wav
+FEEDBACK_PATTERN_BT_CONNECTED=/usr/share/feedback/sound/BT_Connection/BT_Connect.ogg
+FEEDBACK_PATTERN_BT_DISCONNECTED=/usr/share/feedback/sound/BT_Connection/BT_Disconnect.ogg
+FEEDBACK_PATTERN_BT_PAIRING=/usr/share/feedback/sound/BT_Connection/BT_Paring(Popup).ogg
+FEEDBACK_PATTERN_BT_WAITING=/usr/share/feedback/sound/BT_Connection/BT_Waiting(Progress).ogg
+FEEDBACK_PATTERN_SHEALTH_START=/usr/share/feedback/sound/S-Health/Pause_Resume.ogg
+FEEDBACK_PATTERN_SHEALTH_PAUSE=/usr/share/feedback/sound/S-Health/Pause_Resume.ogg
+FEEDBACK_PATTERN_SHEALTH_STOP=/usr/share/feedback/sound/S-Health/Pause_Resume.ogg
+FEEDBACK_PATTERN_SHEALTH_NOTICE=/usr/share/feedback/sound/S-Health/Notice.ogg
+FEEDBACK_PATTERN_SHEALTH_GENTLE_ALERT=/usr/share/feedback/sound/S-Health/Separator.ogg
+FEEDBACK_PATTERN_COMMUNICATION=/usr/share/feedback/sound/Notifications/Gear_Communication_Push.ogg
+FEEDBACK_PATTERN_TURN_RIGHT=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_TURN_LEFT=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Message_Knock.ogg
+FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Email_Doorbell.ogg
+FEEDBACK_PATTERN_GENERAL_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Gear_Communication_Push.ogg
+FEEDBACK_PATTERN_SCHEDULE_STRONG_BUZZ=/usr/share/feedback/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg
+FEEDBACK_PATTERN_WAKEUP_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone2.ogg
+FEEDBACK_PATTERN_TIMER_STRONG_BUZZ=/usr/share/feedback/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg
+FEEDBACK_PATTERN_RINGER_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone1(default).ogg
+FEEDBACK_PATTERN_NOTIFICATION_1=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_NOTIFICATION_1_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Notification1(default).ogg
+FEEDBACK_PATTERN_NOTIFICATION_2=/usr/share/feedback/sound/Notifications/Notification2.ogg
+FEEDBACK_PATTERN_NOTIFICATION_2_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Notification2.ogg
+FEEDBACK_PATTERN_NOTIFICATION_3=/usr/share/feedback/sound/Notifications/Notification3.ogg
+FEEDBACK_PATTERN_NOTIFICATION_3_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Notification3.ogg
+FEEDBACK_PATTERN_NOTIFICATION_4=/usr/share/feedback/sound/Notifications/Notification4.ogg
+FEEDBACK_PATTERN_NOTIFICATION_4_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Notification4.ogg
+FEEDBACK_PATTERN_NOTIFICATION_5=/usr/share/feedback/sound/Notifications/Notification5.ogg
+FEEDBACK_PATTERN_NOTIFICATION_5_STRONG_BUZZ=/usr/share/feedback/sound/Notifications/Notification5.ogg
+FEEDBACK_PATTERN_RING_1=/usr/share/feedback/sound/Ringtones/Ringtone1(default).ogg
+FEEDBACK_PATTERN_RING_1_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone1(default).ogg
+FEEDBACK_PATTERN_RING_2=/usr/share/feedback/sound/Ringtones/Ringtone2.ogg
+FEEDBACK_PATTERN_RING_2_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone2.ogg
+FEEDBACK_PATTERN_RING_3=/usr/share/feedback/sound/Ringtones/Ringtone3.ogg
+FEEDBACK_PATTERN_RING_3_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone3.ogg
+FEEDBACK_PATTERN_RING_4=/usr/share/feedback/sound/Ringtones/Ringtone4.ogg
+FEEDBACK_PATTERN_RING_4_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone4.ogg
+FEEDBACK_PATTERN_RING_5=/usr/share/feedback/sound/Ringtones/Ringtone5.ogg
+FEEDBACK_PATTERN_RING_5_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone5.ogg
+FEEDBACK_PATTERN_ALARM_1=/usr/share/feedback/sound/Ringtones/Ringtone1(default).ogg
+FEEDBACK_PATTERN_ALARM_1_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone1(default).ogg
+FEEDBACK_PATTERN_ALARM_2=/usr/share/feedback/sound/Ringtones/Ringtone2.ogg
+FEEDBACK_PATTERN_ALARM_2_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone2.ogg
+FEEDBACK_PATTERN_ALARM_3=/usr/share/feedback/sound/Ringtones/Ringtone3.ogg
+FEEDBACK_PATTERN_ALARM_3_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone3.ogg
+FEEDBACK_PATTERN_ALARM_4=/usr/share/feedback/sound/Ringtones/Ringtone4.ogg
+FEEDBACK_PATTERN_ALARM_4_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone4.ogg
+FEEDBACK_PATTERN_ALARM_5=/usr/share/feedback/sound/Ringtones/Ringtone5.ogg
+FEEDBACK_PATTERN_ALARM_5_STRONG_BUZZ=/usr/share/feedback/sound/Ringtones/Ringtone5.ogg
+FEEDBACK_PATTERN_INTERNAL_TIMER=/usr/share/feedback/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg
+FEEDBACK_PATTERN_INTERNAL_WAKEUP=/usr/share/feedback/sound/Ringtones/Ringtone2.ogg
+FEEDBACK_PATTERN_SAFETY_ALERT=/usr/share/feedback/sound/Safety/Safety_warning.ogg
+FEEDBACK_PATTERN_ACCIDENT_DETECT=/usr/share/feedback/sound/Safety/Pressure_alert.ogg
+FEEDBACK_PATTERN_SAFETY_LOW_POWER=/usr/share/feedback/sound/Safety/Low_power_ringtone.ogg
+FEEDBACK_PATTERN_CMAS=/usr/share/feedback/sound/Safety/CMAS.ogg
+FEEDBACK_PATTERN_GOAL_ACHIEVED=/usr/share/feedback/sound/S-Health/Reward2.ogg
+FEEDBACK_PATTERN_EXERCISE_COUNT=/usr/share/feedback/sound/S-Health/Countdown.ogg
+FEEDBACK_PATTERN_START_CUE=/usr/share/feedback/sound/S-Health/Countdown_Start_cue.ogg
+FEEDBACK_PATTERN_HEALTH_PACE=/usr/share/feedback/sound/S-Health/Reward1.ogg
+FEEDBACK_PATTERN_MEASURING_SUCCESS=/usr/share/feedback/sound/S-Health/S-Health_Measuring_Success.ogg
+FEEDBACK_PATTERN_MEASURING_FAILURE=/usr/share/feedback/sound/S-Health/S-Health_Measuring_Error.ogg
+FEEDBACK_PATTERN_TEMPERATURE_WARNING=/usr/share/feedback/sound/System/Temp_warning.ogg
+FEEDBACK_PATTERN_COOLDOWN_WARNING_1=/usr/share/feedback/sound/System/Temp_warning_beep.ogg
+FEEDBACK_PATTERN_COOLDOWN_WARNING_2=/usr/share/feedback/sound/System/Temp_warning_double_beep.ogg
+FEEDBACK_PATTERN_KEEP_THIS_PACE=/usr/share/feedback/sound/S-Health/Separator.ogg
+FEEDBACK_PATTERN_RINGER=/usr/share/feedback/sound/Ringtones/Ringtone1(default).ogg
+FEEDBACK_PATTERN_SCREEN_CAPTURE=/usr/share/feedback/sound/System/Screen_Capture.ogg
diff --git a/wearable/data/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg b/wearable/data/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg
new file mode 100755 (executable)
index 0000000..999340d
Binary files /dev/null and b/wearable/data/sound/Alarm_Timer/Alarm_Timer_Time_Up.ogg differ
diff --git a/wearable/data/sound/BT_Connection/BT_Connect.ogg b/wearable/data/sound/BT_Connection/BT_Connect.ogg
new file mode 100755 (executable)
index 0000000..94300c1
Binary files /dev/null and b/wearable/data/sound/BT_Connection/BT_Connect.ogg differ
diff --git a/wearable/data/sound/BT_Connection/BT_Disconnect.ogg b/wearable/data/sound/BT_Connection/BT_Disconnect.ogg
new file mode 100755 (executable)
index 0000000..905b4c5
Binary files /dev/null and b/wearable/data/sound/BT_Connection/BT_Disconnect.ogg differ
diff --git a/wearable/data/sound/BT_Connection/BT_Pair_Waiting(Progress).ogg b/wearable/data/sound/BT_Connection/BT_Pair_Waiting(Progress).ogg
new file mode 100755 (executable)
index 0000000..05fb6c1
Binary files /dev/null and b/wearable/data/sound/BT_Connection/BT_Pair_Waiting(Progress).ogg differ
diff --git a/wearable/data/sound/BT_Connection/BT_Paring(Popup).ogg b/wearable/data/sound/BT_Connection/BT_Paring(Popup).ogg
new file mode 100755 (executable)
index 0000000..2395246
Binary files /dev/null and b/wearable/data/sound/BT_Connection/BT_Paring(Popup).ogg differ
diff --git a/wearable/data/sound/Notifications/Email_Doorbell.ogg b/wearable/data/sound/Notifications/Email_Doorbell.ogg
new file mode 100755 (executable)
index 0000000..ae5beb0
Binary files /dev/null and b/wearable/data/sound/Notifications/Email_Doorbell.ogg differ
diff --git a/wearable/data/sound/Notifications/Gear_Communication_Push.ogg b/wearable/data/sound/Notifications/Gear_Communication_Push.ogg
new file mode 100755 (executable)
index 0000000..9b21409
Binary files /dev/null and b/wearable/data/sound/Notifications/Gear_Communication_Push.ogg differ
diff --git a/wearable/data/sound/Notifications/General_notification_Pure_Bell.ogg b/wearable/data/sound/Notifications/General_notification_Pure_Bell.ogg
new file mode 100755 (executable)
index 0000000..39e75ff
Binary files /dev/null and b/wearable/data/sound/Notifications/General_notification_Pure_Bell.ogg differ
diff --git a/wearable/data/sound/Notifications/Message_Knock.ogg b/wearable/data/sound/Notifications/Message_Knock.ogg
new file mode 100755 (executable)
index 0000000..f0d68b4
Binary files /dev/null and b/wearable/data/sound/Notifications/Message_Knock.ogg differ
diff --git a/wearable/data/sound/Notifications/Notification1(default).ogg b/wearable/data/sound/Notifications/Notification1(default).ogg
new file mode 100755 (executable)
index 0000000..b8b3978
Binary files /dev/null and b/wearable/data/sound/Notifications/Notification1(default).ogg differ
diff --git a/wearable/data/sound/Notifications/Notification2.ogg b/wearable/data/sound/Notifications/Notification2.ogg
new file mode 100755 (executable)
index 0000000..900c0f4
Binary files /dev/null and b/wearable/data/sound/Notifications/Notification2.ogg differ
diff --git a/wearable/data/sound/Notifications/Notification3.ogg b/wearable/data/sound/Notifications/Notification3.ogg
new file mode 100755 (executable)
index 0000000..183d813
Binary files /dev/null and b/wearable/data/sound/Notifications/Notification3.ogg differ
diff --git a/wearable/data/sound/Notifications/Notification4.ogg b/wearable/data/sound/Notifications/Notification4.ogg
new file mode 100755 (executable)
index 0000000..d1f02c7
Binary files /dev/null and b/wearable/data/sound/Notifications/Notification4.ogg differ
diff --git a/wearable/data/sound/Notifications/Notification5.ogg b/wearable/data/sound/Notifications/Notification5.ogg
new file mode 100755 (executable)
index 0000000..6bed5d6
Binary files /dev/null and b/wearable/data/sound/Notifications/Notification5.ogg differ
diff --git a/wearable/data/sound/Notifications/Schedule_Grasshopper.ogg b/wearable/data/sound/Notifications/Schedule_Grasshopper.ogg
new file mode 100755 (executable)
index 0000000..015e22e
Binary files /dev/null and b/wearable/data/sound/Notifications/Schedule_Grasshopper.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Clockwork.ogg b/wearable/data/sound/Notifications/for_3G/Clockwork.ogg
new file mode 100755 (executable)
index 0000000..6c78ad1
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Clockwork.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Driving_Signal.ogg b/wearable/data/sound/Notifications/for_3G/Driving_Signal.ogg
new file mode 100755 (executable)
index 0000000..32176ad
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Driving_Signal.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Flicker.ogg b/wearable/data/sound/Notifications/for_3G/Flicker.ogg
new file mode 100755 (executable)
index 0000000..bacc3b3
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Flicker.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/General_notification_Pure_Bell(default).ogg b/wearable/data/sound/Notifications/for_3G/General_notification_Pure_Bell(default).ogg
new file mode 100755 (executable)
index 0000000..7eb8b4c
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/General_notification_Pure_Bell(default).ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Ice_Cube.ogg b/wearable/data/sound/Notifications/for_3G/Ice_Cube.ogg
new file mode 100755 (executable)
index 0000000..d9d9a00
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Ice_Cube.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Metallic.ogg b/wearable/data/sound/Notifications/for_3G/Metallic.ogg
new file mode 100755 (executable)
index 0000000..c1bae36
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Metallic.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Music_Box.ogg b/wearable/data/sound/Notifications/for_3G/Music_Box.ogg
new file mode 100755 (executable)
index 0000000..c644af4
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Music_Box.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Ticktac.ogg b/wearable/data/sound/Notifications/for_3G/Ticktac.ogg
new file mode 100755 (executable)
index 0000000..fccb10b
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Ticktac.ogg differ
diff --git a/wearable/data/sound/Notifications/for_3G/Wine_Glass.ogg b/wearable/data/sound/Notifications/for_3G/Wine_Glass.ogg
new file mode 100755 (executable)
index 0000000..b41e0e4
Binary files /dev/null and b/wearable/data/sound/Notifications/for_3G/Wine_Glass.ogg differ
diff --git a/wearable/data/sound/Ringtones/Ringtone1(default).ogg b/wearable/data/sound/Ringtones/Ringtone1(default).ogg
new file mode 100755 (executable)
index 0000000..6c60c19
Binary files /dev/null and b/wearable/data/sound/Ringtones/Ringtone1(default).ogg differ
diff --git a/wearable/data/sound/Ringtones/Ringtone2.ogg b/wearable/data/sound/Ringtones/Ringtone2.ogg
new file mode 100755 (executable)
index 0000000..64d03bd
Binary files /dev/null and b/wearable/data/sound/Ringtones/Ringtone2.ogg differ
diff --git a/wearable/data/sound/Ringtones/Ringtone3.ogg b/wearable/data/sound/Ringtones/Ringtone3.ogg
new file mode 100755 (executable)
index 0000000..eef07e0
Binary files /dev/null and b/wearable/data/sound/Ringtones/Ringtone3.ogg differ
diff --git a/wearable/data/sound/Ringtones/Ringtone4.ogg b/wearable/data/sound/Ringtones/Ringtone4.ogg
new file mode 100755 (executable)
index 0000000..c6f0e36
Binary files /dev/null and b/wearable/data/sound/Ringtones/Ringtone4.ogg differ
diff --git a/wearable/data/sound/Ringtones/Ringtone5.ogg b/wearable/data/sound/Ringtones/Ringtone5.ogg
new file mode 100755 (executable)
index 0000000..9c0778c
Binary files /dev/null and b/wearable/data/sound/Ringtones/Ringtone5.ogg differ
diff --git a/wearable/data/sound/Ringtones/Wine_Glass(default).ogg b/wearable/data/sound/Ringtones/Wine_Glass(default).ogg
new file mode 100755 (executable)
index 0000000..e1bf86e
Binary files /dev/null and b/wearable/data/sound/Ringtones/Wine_Glass(default).ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Across_the_Skies.ogg b/wearable/data/sound/Ringtones/for_3G/Across_the_Skies.ogg
new file mode 100755 (executable)
index 0000000..453f637
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Across_the_Skies.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/City_Lights.ogg b/wearable/data/sound/Ringtones/for_3G/City_Lights.ogg
new file mode 100755 (executable)
index 0000000..9eaf614
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/City_Lights.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Masterpiece.ogg b/wearable/data/sound/Ringtones/for_3G/Masterpiece.ogg
new file mode 100755 (executable)
index 0000000..90fc4f9
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Masterpiece.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Modernness.ogg b/wearable/data/sound/Ringtones/for_3G/Modernness.ogg
new file mode 100755 (executable)
index 0000000..b5646bc
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Modernness.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Office_Hours.ogg b/wearable/data/sound/Ringtones/for_3G/Office_Hours.ogg
new file mode 100755 (executable)
index 0000000..b57e48d
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Office_Hours.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Spaceship.ogg b/wearable/data/sound/Ringtones/for_3G/Spaceship.ogg
new file mode 100755 (executable)
index 0000000..7811555
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Spaceship.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Sweet_Tone.ogg b/wearable/data/sound/Ringtones/for_3G/Sweet_Tone.ogg
new file mode 100755 (executable)
index 0000000..f1c4500
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Sweet_Tone.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Timeless.ogg b/wearable/data/sound/Ringtones/for_3G/Timeless.ogg
new file mode 100755 (executable)
index 0000000..3a764b7
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Timeless.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Twinkle.ogg b/wearable/data/sound/Ringtones/for_3G/Twinkle.ogg
new file mode 100755 (executable)
index 0000000..2b36ca9
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Twinkle.ogg differ
diff --git a/wearable/data/sound/Ringtones/for_3G/Wine_Glass(default).ogg b/wearable/data/sound/Ringtones/for_3G/Wine_Glass(default).ogg
new file mode 100755 (executable)
index 0000000..e1bf86e
Binary files /dev/null and b/wearable/data/sound/Ringtones/for_3G/Wine_Glass(default).ogg differ
diff --git a/wearable/data/sound/S-Health/Countdown.ogg b/wearable/data/sound/S-Health/Countdown.ogg
new file mode 100755 (executable)
index 0000000..8de7b77
Binary files /dev/null and b/wearable/data/sound/S-Health/Countdown.ogg differ
diff --git a/wearable/data/sound/S-Health/Countdown_Start_cue.ogg b/wearable/data/sound/S-Health/Countdown_Start_cue.ogg
new file mode 100755 (executable)
index 0000000..e83ffa7
Binary files /dev/null and b/wearable/data/sound/S-Health/Countdown_Start_cue.ogg differ
diff --git a/wearable/data/sound/S-Health/Notice.ogg b/wearable/data/sound/S-Health/Notice.ogg
new file mode 100755 (executable)
index 0000000..bddff4b
Binary files /dev/null and b/wearable/data/sound/S-Health/Notice.ogg differ
diff --git a/wearable/data/sound/S-Health/Pause_Resume.ogg b/wearable/data/sound/S-Health/Pause_Resume.ogg
new file mode 100755 (executable)
index 0000000..f2ed645
Binary files /dev/null and b/wearable/data/sound/S-Health/Pause_Resume.ogg differ
diff --git a/wearable/data/sound/S-Health/Reward1.ogg b/wearable/data/sound/S-Health/Reward1.ogg
new file mode 100755 (executable)
index 0000000..17c66ea
Binary files /dev/null and b/wearable/data/sound/S-Health/Reward1.ogg differ
diff --git a/wearable/data/sound/S-Health/Reward2.ogg b/wearable/data/sound/S-Health/Reward2.ogg
new file mode 100755 (executable)
index 0000000..741e717
Binary files /dev/null and b/wearable/data/sound/S-Health/Reward2.ogg differ
diff --git a/wearable/data/sound/S-Health/S-Health_Measuring_Error.ogg b/wearable/data/sound/S-Health/S-Health_Measuring_Error.ogg
new file mode 100755 (executable)
index 0000000..9b147a0
Binary files /dev/null and b/wearable/data/sound/S-Health/S-Health_Measuring_Error.ogg differ
diff --git a/wearable/data/sound/S-Health/S-Health_Measuring_Success.ogg b/wearable/data/sound/S-Health/S-Health_Measuring_Success.ogg
new file mode 100755 (executable)
index 0000000..2698b6e
Binary files /dev/null and b/wearable/data/sound/S-Health/S-Health_Measuring_Success.ogg differ
diff --git a/wearable/data/sound/S-Health/Separator.ogg b/wearable/data/sound/S-Health/Separator.ogg
new file mode 100755 (executable)
index 0000000..7dc3824
Binary files /dev/null and b/wearable/data/sound/S-Health/Separator.ogg differ
diff --git a/wearable/data/sound/Safety/CMAS.ogg b/wearable/data/sound/Safety/CMAS.ogg
new file mode 100755 (executable)
index 0000000..64aeeda
Binary files /dev/null and b/wearable/data/sound/Safety/CMAS.ogg differ
diff --git a/wearable/data/sound/Safety/Low_power_ringtone.ogg b/wearable/data/sound/Safety/Low_power_ringtone.ogg
new file mode 100755 (executable)
index 0000000..0c0b7f8
Binary files /dev/null and b/wearable/data/sound/Safety/Low_power_ringtone.ogg differ
diff --git a/wearable/data/sound/Safety/Pressure_alert.ogg b/wearable/data/sound/Safety/Pressure_alert.ogg
new file mode 100755 (executable)
index 0000000..1f7ce7c
Binary files /dev/null and b/wearable/data/sound/Safety/Pressure_alert.ogg differ
diff --git a/wearable/data/sound/Safety/Safety_warning.ogg b/wearable/data/sound/Safety/Safety_warning.ogg
new file mode 100755 (executable)
index 0000000..34dc0eb
Binary files /dev/null and b/wearable/data/sound/Safety/Safety_warning.ogg differ
diff --git a/wearable/data/sound/Safety/Temp_warning_beep.ogg b/wearable/data/sound/Safety/Temp_warning_beep.ogg
new file mode 100755 (executable)
index 0000000..e5337bb
Binary files /dev/null and b/wearable/data/sound/Safety/Temp_warning_beep.ogg differ
diff --git a/wearable/data/sound/Safety/Temp_warning_double_beep.ogg b/wearable/data/sound/Safety/Temp_warning_double_beep.ogg
new file mode 100755 (executable)
index 0000000..07655c7
Binary files /dev/null and b/wearable/data/sound/Safety/Temp_warning_double_beep.ogg differ
diff --git a/wearable/data/sound/System/Alarms_on_call.ogg b/wearable/data/sound/System/Alarms_on_call.ogg
new file mode 100755 (executable)
index 0000000..ce921a1
Binary files /dev/null and b/wearable/data/sound/System/Alarms_on_call.ogg differ
diff --git a/wearable/data/sound/System/Call_Connect.ogg b/wearable/data/sound/System/Call_Connect.ogg
new file mode 100755 (executable)
index 0000000..0f79aba
Binary files /dev/null and b/wearable/data/sound/System/Call_Connect.ogg differ
diff --git a/wearable/data/sound/System/Call_End.ogg b/wearable/data/sound/System/Call_End.ogg
new file mode 100755 (executable)
index 0000000..0189fa6
Binary files /dev/null and b/wearable/data/sound/System/Call_End.ogg differ
diff --git a/wearable/data/sound/System/Charger_connection.ogg b/wearable/data/sound/System/Charger_connection.ogg
new file mode 100755 (executable)
index 0000000..eb14477
Binary files /dev/null and b/wearable/data/sound/System/Charger_connection.ogg differ
diff --git a/wearable/data/sound/System/DTMF/Key0.wav b/wearable/data/sound/System/DTMF/Key0.wav
new file mode 100755 (executable)
index 0000000..14ea7c0
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key0.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key1.wav b/wearable/data/sound/System/DTMF/Key1.wav
new file mode 100755 (executable)
index 0000000..5abdfb6
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key1.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key2.wav b/wearable/data/sound/System/DTMF/Key2.wav
new file mode 100755 (executable)
index 0000000..72e6fd2
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key2.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key3.wav b/wearable/data/sound/System/DTMF/Key3.wav
new file mode 100755 (executable)
index 0000000..cfc0baa
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key3.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key4.wav b/wearable/data/sound/System/DTMF/Key4.wav
new file mode 100755 (executable)
index 0000000..a0529fe
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key4.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key5.wav b/wearable/data/sound/System/DTMF/Key5.wav
new file mode 100755 (executable)
index 0000000..067e9b0
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key5.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key6.wav b/wearable/data/sound/System/DTMF/Key6.wav
new file mode 100755 (executable)
index 0000000..52c4a99
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key6.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key7.wav b/wearable/data/sound/System/DTMF/Key7.wav
new file mode 100755 (executable)
index 0000000..e4c8aeb
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key7.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key8.wav b/wearable/data/sound/System/DTMF/Key8.wav
new file mode 100755 (executable)
index 0000000..6880bb6
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key8.wav differ
diff --git a/wearable/data/sound/System/DTMF/Key9.wav b/wearable/data/sound/System/DTMF/Key9.wav
new file mode 100755 (executable)
index 0000000..bad69ce
Binary files /dev/null and b/wearable/data/sound/System/DTMF/Key9.wav differ
diff --git a/wearable/data/sound/System/DTMF/KeyAsterisk.wav b/wearable/data/sound/System/DTMF/KeyAsterisk.wav
new file mode 100755 (executable)
index 0000000..268fbd3
Binary files /dev/null and b/wearable/data/sound/System/DTMF/KeyAsterisk.wav differ
diff --git a/wearable/data/sound/System/DTMF/KeySharp.wav b/wearable/data/sound/System/DTMF/KeySharp.wav
new file mode 100755 (executable)
index 0000000..becb944
Binary files /dev/null and b/wearable/data/sound/System/DTMF/KeySharp.wav differ
diff --git a/wearable/data/sound/System/DTMF/key0.ogg b/wearable/data/sound/System/DTMF/key0.ogg
new file mode 100755 (executable)
index 0000000..7e0e63a
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key0.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key1.ogg b/wearable/data/sound/System/DTMF/key1.ogg
new file mode 100755 (executable)
index 0000000..18aeab1
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key1.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key2.ogg b/wearable/data/sound/System/DTMF/key2.ogg
new file mode 100755 (executable)
index 0000000..f56c0ac
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key2.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key3.ogg b/wearable/data/sound/System/DTMF/key3.ogg
new file mode 100755 (executable)
index 0000000..4963170
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key3.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key4.ogg b/wearable/data/sound/System/DTMF/key4.ogg
new file mode 100755 (executable)
index 0000000..ec91b26
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key4.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key5.ogg b/wearable/data/sound/System/DTMF/key5.ogg
new file mode 100755 (executable)
index 0000000..b4f6187
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key5.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key6.ogg b/wearable/data/sound/System/DTMF/key6.ogg
new file mode 100755 (executable)
index 0000000..5186976
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key6.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key7.ogg b/wearable/data/sound/System/DTMF/key7.ogg
new file mode 100755 (executable)
index 0000000..76e88f2
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key7.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key8.ogg b/wearable/data/sound/System/DTMF/key8.ogg
new file mode 100755 (executable)
index 0000000..4ed7b3e
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key8.ogg differ
diff --git a/wearable/data/sound/System/DTMF/key9.ogg b/wearable/data/sound/System/DTMF/key9.ogg
new file mode 100755 (executable)
index 0000000..49876b7
Binary files /dev/null and b/wearable/data/sound/System/DTMF/key9.ogg differ
diff --git a/wearable/data/sound/System/DTMF/keyasterisk.ogg b/wearable/data/sound/System/DTMF/keyasterisk.ogg
new file mode 100755 (executable)
index 0000000..e8d8067
Binary files /dev/null and b/wearable/data/sound/System/DTMF/keyasterisk.ogg differ
diff --git a/wearable/data/sound/System/DTMF/keysharp.ogg b/wearable/data/sound/System/DTMF/keysharp.ogg
new file mode 100755 (executable)
index 0000000..bd2e939
Binary files /dev/null and b/wearable/data/sound/System/DTMF/keysharp.ogg differ
diff --git a/wearable/data/sound/System/Find_my_Gear.ogg b/wearable/data/sound/System/Find_my_Gear.ogg
new file mode 100755 (executable)
index 0000000..ef3141b
Binary files /dev/null and b/wearable/data/sound/System/Find_my_Gear.ogg differ
diff --git a/wearable/data/sound/System/Hourly_alert.ogg b/wearable/data/sound/System/Hourly_alert.ogg
new file mode 100755 (executable)
index 0000000..ef63e64
Binary files /dev/null and b/wearable/data/sound/System/Hourly_alert.ogg differ
diff --git a/wearable/data/sound/System/Low_Battery.ogg b/wearable/data/sound/System/Low_Battery.ogg
new file mode 100755 (executable)
index 0000000..be16697
Binary files /dev/null and b/wearable/data/sound/System/Low_Battery.ogg differ
diff --git a/wearable/data/sound/System/PowerOn.ogg b/wearable/data/sound/System/PowerOn.ogg
new file mode 100755 (executable)
index 0000000..2d4fb2f
Binary files /dev/null and b/wearable/data/sound/System/PowerOn.ogg differ
diff --git a/wearable/data/sound/System/Screen_Capture.ogg b/wearable/data/sound/System/Screen_Capture.ogg
new file mode 100755 (executable)
index 0000000..4ca01ae
Binary files /dev/null and b/wearable/data/sound/System/Screen_Capture.ogg differ
diff --git a/wearable/data/sound/System/Silent_mode_off.ogg b/wearable/data/sound/System/Silent_mode_off.ogg
new file mode 100755 (executable)
index 0000000..4bacf34
Binary files /dev/null and b/wearable/data/sound/System/Silent_mode_off.ogg differ
diff --git a/wearable/data/sound/System/Temp_warning.ogg b/wearable/data/sound/System/Temp_warning.ogg
new file mode 100755 (executable)
index 0000000..5e772bd
Binary files /dev/null and b/wearable/data/sound/System/Temp_warning.ogg differ
diff --git a/wearable/data/sound/System/Temp_warning_beep.ogg b/wearable/data/sound/System/Temp_warning_beep.ogg
new file mode 100755 (executable)
index 0000000..e5337bb
Binary files /dev/null and b/wearable/data/sound/System/Temp_warning_beep.ogg differ
diff --git a/wearable/data/sound/System/Temp_warning_double_beep.ogg b/wearable/data/sound/System/Temp_warning_double_beep.ogg
new file mode 100755 (executable)
index 0000000..07655c7
Binary files /dev/null and b/wearable/data/sound/System/Temp_warning_double_beep.ogg differ
diff --git a/wearable/data/sound/System/Touch.ogg b/wearable/data/sound/System/Touch.ogg
new file mode 100755 (executable)
index 0000000..41ecc9c
Binary files /dev/null and b/wearable/data/sound/System/Touch.ogg differ
diff --git a/wearable/data/sound/System/Volume_control.wav b/wearable/data/sound/System/Volume_control.wav
new file mode 100755 (executable)
index 0000000..0d65942
Binary files /dev/null and b/wearable/data/sound/System/Volume_control.wav differ
diff --git a/wearable/data/sound/System/sip.ogg b/wearable/data/sound/System/sip.ogg
new file mode 100755 (executable)
index 0000000..b2463cf
Binary files /dev/null and b/wearable/data/sound/System/sip.ogg differ
diff --git a/wearable/data/sound/System/sip_backspace.ogg b/wearable/data/sound/System/sip_backspace.ogg
new file mode 100755 (executable)
index 0000000..dc6f0f7
Binary files /dev/null and b/wearable/data/sound/System/sip_backspace.ogg differ
index 525b508..2b78b03 100644 (file)
 FEEDBACK_PATTERN_TAP=1,A_W
 #A_W
 FEEDBACK_PATTERN_SIP=1,A_W
+#A_W
+FEEDBACK_PATTERN_SIP_BACKSPACE=1,A_W
+#A_W
+FEEDBACK_PATTERN_SIP_FUNCTION=1,A_W
+#A_W
+FEEDBACK_PATTERN_SIP_FJKEY=1,A_W
 #A_W2
 FEEDBACK_PATTERN_HOLD=1,A_W2
 #J_W
 FEEDBACK_PATTERN_MESSAGE=1,J_W
+#C
+FEEDBACK_PATTERN_MESSAGE_ON_CALL=1,C
 #J_W
 FEEDBACK_PATTERN_EMAIL=1,J_W
+#C
+FEEDBACK_PATTERN_EMAIL_ON_CALL=1,C
 #K_W
 FEEDBACK_PATTERN_WAKEUP=1,K_W
+#C
+FEEDBACK_PATTERN_WAKEUP_ON_CALL=1,C
 #K_W
 FEEDBACK_PATTERN_SCHEDULE=1,K_W
+#C
+FEEDBACK_PATTERN_SCHEDULE_ON_CALL=1,C
 #K_W
 FEEDBACK_PATTERN_TIMER=1,K_W
+#C
+FEEDBACK_PATTERN_TIMER_ON_CALL=1,C
 #J_W
 FEEDBACK_PATTERN_GENERAL=1,J_W
+#C
+FEEDBACK_PATTERN_GENERAL_ON_CALL=1,C
+#C
+FEEDBACK_PATTERN_POWERON=1,C
+#H
+FEEDBACK_PATTERN_POWEROFF=1,H
 #B_W
 FEEDBACK_PATTERN_CHARGERCONN=1,B_W
 #C
 FEEDBACK_PATTERN_CHARGERCONN_ON_CALL=1,C
 #G_W
+FEEDBACK_PATTERN_CHARGING_ERROR=1,G_W
+#C
+FEEDBACK_PATTERN_CHARGING_ERROR_ON_CALL=1,C
+#G_W
 FEEDBACK_PATTERN_LOWBATT=1,G_W
 #C
 FEEDBACK_PATTERN_LOWBATT_ON_CALL=1,C
+#C
+FEEDBACK_PATTERN_CALLCONNECT=1,C
+#G_W
+FEEDBACK_PATTERN_DISCALLCONNECT=1,G_W
 #H
 FEEDBACK_PATTERN_VIBRATION_ON=1,H
-FEEDBACK_PATTERN_BT_CONNECTED=100D10000I2100F
 #S
 FEEDBACK_PATTERN_BT_DISCONNECTED=1,S
+#K_WB x N(AXXX)
+FEEDBACK_PATTERN_BT_PAIRING=A,K_WB
+#C
+FEEDBACK_PATTERN_MMS=1,C
+#J_WW
+FEEDBACK_PATTERN_SAFETY_ALERT=1,J_WW
+#J_WW
+FEEDBACK_PATTERN_ACCIDENT_DETECT=1,J_WW
 #J_WH
 FEEDBACK_PATTERN_SEND_SOS_MESSAGE=1,J_WH
-#D_F
-FEEDBACK_PATTERN_DEFAULT=1,DEFAULT
+#CMAS
+FEEDBACK_PATTERN_CMAS=1,CMAS
+#CMAS_CA
+FEEDBACK_PATTERN_CMAS_CA=1,CMAS_CA
+#K_W x N(AXXX)
+FEEDBACK_PATTERN_RINGER=A,K_W
+#B_W
+FEEDBACK_PATTERN_NOTIFICATION=1,B_W
+#C
+FEEDBACK_PATTERN_INFO=1,C
+#C
+FEEDBACK_PATTERN_SYSTEM_SHORT=1,C
+#H
+FEEDBACK_PATTERN_WARNING=1,H
+#H
+FEEDBACK_PATTERN_SYSTEM_LONG=1,H
+#G_W
+FEEDBACK_PATTERN_ERROR=1,G_W
+#K_W x N
+FEEDBACK_PATTERN_INTERNAL_WAKEUP=A,K_W
+#K_W x N
+FEEDBACK_PATTERN_INTERNAL_TIMER=A,K_W
+#G_WB
+FEEDBACK_PATTERN_TEMPERATURE_WARNING=1,G_WB
+#C
+FEEDBACK_PATTERN_COOLDOWN_WARNING_1=1,C
+#C
+FEEDBACK_PATTERN_COOLDOWN_WARNING_2=1,C
+#J_WH
+FEEDBACK_PATTERN_KEEP_THIS_PACE=1,J_WH
+#J_WH
+FEEDBACK_PATTERN_GOAL_ACHIEVED=1,J_WH
+#B_W
+FEEDBACK_PATTERN_EXERCISE_COUNT=1,B_W
+#E_W2
+FEEDBACK_PATTERN_BREATHING_EXHALE=1,E_W2
+#H
+FEEDBACK_PATTERN_START_CUE=1,H
+#J_WH
+FEEDBACK_PATTERN_HEALTH_PACE=1,J_WH
+#J_WH
+FEEDBACK_PATTERN_INACTIVE_TIME=1,J_WH
+#C
+FEEDBACK_PATTERN_MEASURING_SUCCESS=1,C
+#G_W
+FEEDBACK_PATTERN_MEASURING_FAILURE=1,G_W
+#C
+FEEDBACK_PATTERN_SHEALTH_START=1,C
+#B_W
+FEEDBACK_PATTERN_SHEALTH_PAUSE=1,B_W
+#C
+FEEDBACK_PATTERN_SHEALTH_STOP=1,C
+#J_W
+FEEDBACK_PATTERN_3RD_APPLICATION=1,J_W
+#J_WH
+FEEDBACK_PATTERN_INACTIVE_FINE=1,J_WH
+#C
+FEEDBACK_PATTERN_INACTIVE_TENSION=1,C
+#J_WW
+FEEDBACK_PATTERN_SHEALTH_NOTICE=1,J_WW
+#J_WW
+FEEDBACK_PATTERN_SHEALTH_GENTLE_ALERT=1,J_WW
+#E_W1
+FEEDBACK_PATTERN_END_EFFECT=1,E_W1
+#F_W
+FEEDBACK_PATTERN_CLICK_FINE=1,F_W
+#B_W
+FEEDBACK_PATTERN_CLICK_STRONG=1,B_W
+#E_W2
+FEEDBACK_PATTERN_FUNCTION=1,E_W2
+#B_W
+FEEDBACK_PATTERN_VOICE_START=1,B_W
+#B_W
+FEEDBACK_PATTERN_VOICE_STOP=1,B_W
+#J_W
+FEEDBACK_PATTERN_COMMUNICATION=1,J_W
+#J_WW
+FEEDBACK_PATTERN_MESSAGE_STRONG_BUZZ=1,J_WW
+#J_WW
+FEEDBACK_PATTERN_EMAIL_STRONG_BUZZ=1,J_WW
+#J_WW
+FEEDBACK_PATTERN_GENERAL_STRONG_BUZZ=1,J_WW
+#J_WW
+FEEDBACK_PATTERN_COMMUNICATION_STRONG_BUZZ=1,J_WW
+#K_WB
+FEEDBACK_PATTERN_SCHEDULE_STRONG_BUZZ=1,K_WB
+#K_WB x N(AXXX)
+FEEDBACK_PATTERN_WAKEUP_STRONG_BUZZ=A,K_WB
+#K_WB x N(AXXX)
+FEEDBACK_PATTERN_TIMER_STRONG_BUZZ=A,K_WB
+#K_WB x N(AXXX)
+FEEDBACK_PATTERN_RINGER_STRONG_BUZZ=A,K_WB
+#K_WB x N(AXXX)
+FEEDBACK_PATTERN_FIND_MY_GEAR=A,K_WB
+#J_W
+FEEDBACK_PATTERN_NOTIFICATION_1=1,J_W
+#J_WB
+FEEDBACK_PATTERN_NOTIFICATION_1_STRONG_BUZZ=1,J_WB
+#J_W_2
+FEEDBACK_PATTERN_NOTIFICATION_2=1,J_W_2
+#J_WB_2
+FEEDBACK_PATTERN_NOTIFICATION_2_STRONG_BUZZ=1,J_WB_2
+#J_W_3
+FEEDBACK_PATTERN_NOTIFICATION_3=1,J_W_3
+#J_WB_3
+FEEDBACK_PATTERN_NOTIFICATION_3_STRONG_BUZZ=1,J_WB_3
+#J_W_4
+FEEDBACK_PATTERN_NOTIFICATION_4=1,J_W_4
+#J_WB_4
+FEEDBACK_PATTERN_NOTIFICATION_4_STRONG_BUZZ=1,J_WB_4
+#J_W_5
+FEEDBACK_PATTERN_NOTIFICATION_5=1,J_W_5
+#J_WB_5
+FEEDBACK_PATTERN_NOTIFICATION_5_STRONG_BUZZ=1,J_WB_5
+#J_W_6
+FEEDBACK_PATTERN_NOTIFICATION_6=1,J_W_6
+#J_WB_6
+FEEDBACK_PATTERN_NOTIFICATION_6_STRONG_BUZZ=1,J_WB_6
+#J_W_7
+FEEDBACK_PATTERN_NOTIFICATION_7=1,J_W_7
+#J_WB_7
+FEEDBACK_PATTERN_NOTIFICATION_7_STRONG_BUZZ=1,J_WB_7
+#J_W_8
+FEEDBACK_PATTERN_NOTIFICATION_8=1,J_W_8
+#J_WB_8
+FEEDBACK_PATTERN_NOTIFICATION_8_STRONG_BUZZ=1,J_WB_8
+#J_W_9
+FEEDBACK_PATTERN_NOTIFICATION_9=1,J_W_9
+#J_WB_9
+FEEDBACK_PATTERN_NOTIFICATION_9_STRONG_BUZZ=1,J_WB_9
+#J_W_10
+FEEDBACK_PATTERN_NOTIFICATION_10=1,J_W_10
+#J_WB_10
+FEEDBACK_PATTERN_NOTIFICATION_10_STRONG_BUZZ=1,J_WB_10
+#K_W x N(AXXX)
+FEEDBACK_PATTERN_RING_1=A,K_W
+#K_WB x N(AXXX)
+FEEDBACK_PATTERN_RING_1_STRONG_BUZZ=A,K_WB
+#K_W_2 x N(AXXX)
+FEEDBACK_PATTERN_RING_2=A,K_W_2
+#K_WB_2 x N(AXXX)
+FEEDBACK_PATTERN_RING_2_STRONG_BUZZ=A,K_WB_2
+#K_W_3 x N(AXXX)
+FEEDBACK_PATTERN_RING_3=A,K_W_3
+#K_WB_3 x N(AXXX)
+FEEDBACK_PATTERN_RING_3_STRONG_BUZZ=A,K_WB_3
+#K_W_4 x N(AXXX)
+FEEDBACK_PATTERN_RING_4=A,K_W_4
+#K_WB_4 x N(AXXX)
+FEEDBACK_PATTERN_RING_4_STRONG_BUZZ=A,K_WB_4
+#K_W_5 x N(AXXX)
+FEEDBACK_PATTERN_RING_5=A,K_W_5
+#K_WB_5 x N(AXXX)
+FEEDBACK_PATTERN_RING_5_STRONG_BUZZ=A,K_WB_5
+#K_W_6 x N(AXXX)
+FEEDBACK_PATTERN_RING_6=A,K_W_6
+#K_WB_6 x N(AXXX)
+FEEDBACK_PATTERN_RING_6_STRONG_BUZZ=A,K_WB_6
+#K_W_7 x N(AXXX)
+FEEDBACK_PATTERN_RING_7=A,K_W_7
+#K_WB_7 x N(AXXX)
+FEEDBACK_PATTERN_RING_7_STRONG_BUZZ=A,K_WB_7
+#K_W_8 x N(AXXX)
+FEEDBACK_PATTERN_RING_8=A,K_W_8
+#K_WB_8 x N(AXXX)
+FEEDBACK_PATTERN_RING_8_STRONG_BUZZ=A,K_WB_8
+#K_W_9 x N(AXXX)
+FEEDBACK_PATTERN_RING_9=A,K_W_9
+#K_WB_9 x N(AXXX)
+FEEDBACK_PATTERN_RING_9_STRONG_BUZZ=A,K_WB_9
+#K_W_10 x N(AXXX)
+FEEDBACK_PATTERN_RING_10=A,K_W_10
+#K_WB_10 x N(AXXX)
+FEEDBACK_PATTERN_RING_10_STRONG_BUZZ=A,K_WB_10
+#K_W x N(AXXX)
+FEEDBACK_PATTERN_ALARM_1=A,K_W
+#K_WB x N(AXXX)
+FEEDBACK_PATTERN_ALARM_1_STRONG_BUZZ=A,K_WB
+#K_W_2 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_2=A,K_W_2
+#K_WB_2 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_2_STRONG_BUZZ=A,K_WB_2
+#K_W_3 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_3=A,K_W_3
+#K_WB_3 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_3_STRONG_BUZZ=A,K_WB_3
+#K_W_4 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_4=A,K_W_4
+#K_WB_4 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_4_STRONG_BUZZ=A,K_WB_4
+#K_W_5 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_5=A,K_W_5
+#K_WB_5 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_5_STRONG_BUZZ=A,K_WB_5
+#K_W_6 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_6=A,K_W_6
+#K_WB_6 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_6_STRONG_BUZZ=A,K_WB_6
+#K_W_7 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_7=A,K_W_7
+#K_WB_7 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_7_STRONG_BUZZ=A,K_WB_7
+#K_W_8 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_8=A,K_W_8
+#K_WB_8 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_8_STRONG_BUZZ=A,K_WB_8
+#K_W_9 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_9=A,K_W_9
+#K_WB_9 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_9_STRONG_BUZZ=A,K_WB_9
+#K_W_10 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_10=A,K_W_10
+#K_WB_10 x N(AXXX)
+FEEDBACK_PATTERN_ALARM_10_STRONG_BUZZ=A,K_WB_10
+#B_W
+FEEDBACK_PATTERN_BOS=1,B_W
+#B_W
+FEEDBACK_PATTERN_EOS=1,B_W
+#E_W1
+FEEDBACK_PATTERN_UDS=1,E_W1
+#O
+FEEDBACK_PATTERN_NFC_SUCCESS=1,O
+#H_LIGHT
+FEEDBACK_PATTERN_MEDITATION=1,H_LIGHT
+#T_LIGHT
+FEEDBACK_PATTERN_MEDITATION_INTERVAL=1,T_LIGHT
+#F_W
+FEEDBACK_PATTERN_PICKER=1,F_W
+#E_W2
+FEEDBACK_PATTERN_PICKER_FINISH=1,E_W2
+#P
+FEEDBACK_PATTERN_ON_OFF_SWITCH=1,P
+#R
+FEEDBACK_PATTERN_REORDER=1,R
+#F_W
+FEEDBACK_PATTERN_CURSOR_MOVE=1,F_W
+#M1
+FEEDBACK_PATTERN_FALL_DETECTION_1=1,M1
+#M2
+FEEDBACK_PATTERN_FALL_DETECTION_2=1,M2
+#Q
+FEEDBACK_PATTERN_SCREEN_CAPTURE=1,Q
+#N
+FEEDBACK_PATTERN_SMART_GESTURE=1,N
diff --git a/wearable/data/vibration/CMAS b/wearable/data/vibration/CMAS
new file mode 100644 (file)
index 0000000..60d4b31
--- /dev/null
@@ -0,0 +1,14 @@
+1,10000,0,0,
+500,0,0,0,
+2000,10000,0,0,
+500,0,0,0,
+1000,10000,0,0,
+500,0,0,0,
+1000,10000,0,0,
+500,0,0,0,
+2000,10000,0,0,
+500,0,0,0,
+1000,10000,0,0,
+500,0,0,0,
+1000,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/CMAS_CA b/wearable/data/vibration/CMAS_CA
new file mode 100644 (file)
index 0000000..74ef9b2
--- /dev/null
@@ -0,0 +1,81 @@
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+500,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+60,10000,0,0,
+52,0,0,0,
+0,end
diff --git a/wearable/data/vibration/E_W1 b/wearable/data/vibration/E_W1
new file mode 100644 (file)
index 0000000..453430f
--- /dev/null
@@ -0,0 +1,4 @@
+20,10000,0,0,
+250,0,0,0,
+20,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/E_W2 b/wearable/data/vibration/E_W2
new file mode 100644 (file)
index 0000000..8af05f4
--- /dev/null
@@ -0,0 +1,4 @@
+30,10000,0,0,
+250,0,0,0,
+30,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/F_W b/wearable/data/vibration/F_W
new file mode 100644 (file)
index 0000000..0d6aa3b
--- /dev/null
@@ -0,0 +1,2 @@
+7,7500,0,0,
+0,end
diff --git a/wearable/data/vibration/G_WB b/wearable/data/vibration/G_WB
new file mode 100644 (file)
index 0000000..cf0c99d
--- /dev/null
@@ -0,0 +1,5 @@
+300,10000,0,0,
+100,0,0,0,
+300,10000,0,0,
+600,0,0,0,
+0,end
diff --git a/wearable/data/vibration/H_LIGHT b/wearable/data/vibration/H_LIGHT
new file mode 100644 (file)
index 0000000..28819af
--- /dev/null
@@ -0,0 +1,2 @@
+500,5000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB b/wearable/data/vibration/J_WB
new file mode 100644 (file)
index 0000000..31f3f93
--- /dev/null
@@ -0,0 +1,8 @@
+150,10000,0,0,
+200,0,0,0,
+210,10000,0,0,
+440,0,0,0,
+150,10000,0,0,
+200,0,0,0,
+210,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_10 b/wearable/data/vibration/J_WB_10
new file mode 100644 (file)
index 0000000..33bef23
--- /dev/null
@@ -0,0 +1,12 @@
+50,10000,0,0,
+100,0,0,0,
+50,10000,0,0,
+350,0,0,0,
+200,10000,0,0,
+100,0,0,0,
+200,5000,0,0,
+100,0,0,0,
+200,2500,0,0,
+100,0,0,0,
+200,1250,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_2 b/wearable/data/vibration/J_WB_2
new file mode 100644 (file)
index 0000000..8e1c5a5
--- /dev/null
@@ -0,0 +1,10 @@
+70,10000,0,0,
+330,0,0,0,
+40,10000,0,0,
+30,0,0,0,
+40,10000,0,0,
+30,0,0,0,
+40,10000,0,0,
+30,0,0,0,
+40,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_3 b/wearable/data/vibration/J_WB_3
new file mode 100644 (file)
index 0000000..4bae4ce
--- /dev/null
@@ -0,0 +1,6 @@
+100,10000,0,0,
+300,0,0,0,
+100,10000,0,0,
+300,0,0,0,
+100,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_4 b/wearable/data/vibration/J_WB_4
new file mode 100644 (file)
index 0000000..0e0dc47
--- /dev/null
@@ -0,0 +1,10 @@
+40,10000,0,0,
+160,0,0,0,
+100,10000,0,0,
+100,0,0,0,
+100,10000,0,0,
+100,0,0,0,
+100,10000,0,0,
+100,0,0,0,
+50,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_5 b/wearable/data/vibration/J_WB_5
new file mode 100644 (file)
index 0000000..93b436b
--- /dev/null
@@ -0,0 +1,4 @@
+250,10000,0,0,
+400,0,0,0,
+250,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_6 b/wearable/data/vibration/J_WB_6
new file mode 100644 (file)
index 0000000..c47dd1e
--- /dev/null
@@ -0,0 +1,2 @@
+100,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_7 b/wearable/data/vibration/J_WB_7
new file mode 100644 (file)
index 0000000..278cfb0
--- /dev/null
@@ -0,0 +1,2 @@
+300,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_8 b/wearable/data/vibration/J_WB_8
new file mode 100644 (file)
index 0000000..3d7abcd
--- /dev/null
@@ -0,0 +1,2 @@
+800,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WB_9 b/wearable/data/vibration/J_WB_9
new file mode 100644 (file)
index 0000000..84f9857
--- /dev/null
@@ -0,0 +1,10 @@
+100,10000,0,0,
+300,0,0,0,
+100,7000,0,0,
+300,0,0,0,
+100,5000,0,0,
+300,0,0,0,
+100,3000,0,0,
+300,0,0,0,
+100,1500,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WHB b/wearable/data/vibration/J_WHB
new file mode 100644 (file)
index 0000000..4db440e
--- /dev/null
@@ -0,0 +1,6 @@
+150,10000,0,0,
+100,0,0,0,
+200,10000,0,0,
+550,0,0,0,
+430,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_WW b/wearable/data/vibration/J_WW
new file mode 100644 (file)
index 0000000..2d180a5
--- /dev/null
@@ -0,0 +1,6 @@
+175,10000,0,0,
+75,0,0,0,
+175,10000,0,0,
+75,0,0,0,
+175,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_10 b/wearable/data/vibration/J_W_10
new file mode 100644 (file)
index 0000000..6e3c3c4
--- /dev/null
@@ -0,0 +1,12 @@
+25,10000,0,0,
+50,0,0,0,
+25,10000,0,0,
+175,0,0,0,
+100,10000,0,0,
+50,0,0,0,
+100,5000,0,0,
+50,0,0,0,
+100,2500,0,0,
+50,0,0,0,
+100,1250,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_2 b/wearable/data/vibration/J_W_2
new file mode 100644 (file)
index 0000000..613769d
--- /dev/null
@@ -0,0 +1,10 @@
+35,10000,0,0,
+165,0,0,0,
+20,10000,0,0,
+15,0,0,0,
+20,10000,0,0,
+15,0,0,0,
+20,10000,0,0,
+15,0,0,0,
+20,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_3 b/wearable/data/vibration/J_W_3
new file mode 100644 (file)
index 0000000..a1d081e
--- /dev/null
@@ -0,0 +1,6 @@
+50,10000,0,0,
+150,0,0,0,
+50,10000,0,0,
+150,0,0,0,
+50,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_4 b/wearable/data/vibration/J_W_4
new file mode 100644 (file)
index 0000000..9d6033f
--- /dev/null
@@ -0,0 +1,10 @@
+20,10000,0,0,
+80,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+25,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_5 b/wearable/data/vibration/J_W_5
new file mode 100644 (file)
index 0000000..4b0c833
--- /dev/null
@@ -0,0 +1,4 @@
+125,10000,0,0,
+200,0,0,0,
+125,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_6 b/wearable/data/vibration/J_W_6
new file mode 100644 (file)
index 0000000..dd33d68
--- /dev/null
@@ -0,0 +1,2 @@
+50,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_7 b/wearable/data/vibration/J_W_7
new file mode 100644 (file)
index 0000000..55f3e88
--- /dev/null
@@ -0,0 +1,2 @@
+150,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_8 b/wearable/data/vibration/J_W_8
new file mode 100644 (file)
index 0000000..d2c863b
--- /dev/null
@@ -0,0 +1,2 @@
+400,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/J_W_9 b/wearable/data/vibration/J_W_9
new file mode 100644 (file)
index 0000000..97edba9
--- /dev/null
@@ -0,0 +1,10 @@
+50,10000,0,0,
+150,0,0,0,
+50,7000,0,0,
+150,0,0,0,
+50,5000,0,0,
+150,0,0,0,
+50,3000,0,0,
+150,0,0,0,
+50,1500,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB b/wearable/data/vibration/K_WB
new file mode 100644 (file)
index 0000000..1dd4ede
--- /dev/null
@@ -0,0 +1,17 @@
+150,10000,0,0,
+60,0,0,0,
+150,10000,0,0,
+60,0,0,0,
+150,10000,0,0,
+60,0,0,0,
+150,10000,0,0,
+1260,0,0,0,
+150,10000,0,0,
+60,0,0,0,
+150,10000,0,0,
+60,0,0,0,
+150,10000,0,0,
+60,0,0,0,
+150,10000,0,0,
+3180,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_10 b/wearable/data/vibration/K_WB_10
new file mode 100644 (file)
index 0000000..7a8951c
--- /dev/null
@@ -0,0 +1,17 @@
+200,3500,0,0,
+200,0,0,0,
+200,3500,0,0,
+200,0,0,0,
+200,10000,0,0,
+200,0,0,0,
+200,10000,0,0,
+200,0,0,0,
+200,3500,0,0,
+200,0,0,0,
+200,3500,0,0,
+200,0,0,0,
+200,10000,0,0,
+200,0,0,0,
+200,10000,0,0,
+3000,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_2 b/wearable/data/vibration/K_WB_2
new file mode 100644 (file)
index 0000000..f291fd2
--- /dev/null
@@ -0,0 +1,17 @@
+50,10000,0,0,
+100,0,0,0,
+200,10000,0,0,
+650,0,0,0,
+50,10000,0,0,
+100,0,0,0,
+200,10000,0,0,
+650,0,0,0,
+50,10000,0,0,
+100,0,0,0,
+200,10000,0,0,
+650,0,0,0,
+50,10000,0,0,
+100,0,0,0,
+200,10000,0,0,
+2650,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_3 b/wearable/data/vibration/K_WB_3
new file mode 100644 (file)
index 0000000..e587223
--- /dev/null
@@ -0,0 +1,29 @@
+350,10000,0,0,
+300,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+800,0,0,0,
+350,10000,0,0,
+300,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+50,0,0,0,
+50,10000,0,0,
+2800,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_4 b/wearable/data/vibration/K_WB_4
new file mode 100644 (file)
index 0000000..91d282a
--- /dev/null
@@ -0,0 +1,9 @@
+50,10000,0,0,
+150,0,0,0,
+350,10000,0,0,
+1450,0,0,0,
+50,10000,0,0,
+150,0,0,0,
+350,10000,0,0,
+3450,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_5 b/wearable/data/vibration/K_WB_5
new file mode 100644 (file)
index 0000000..6d7a513
--- /dev/null
@@ -0,0 +1,13 @@
+200,10000,0,0,
+340,0,0,0,
+200,10000,0,0,
+340,0,0,0,
+200,10000,0,0,
+720,0,0,0,
+200,10000,0,0,
+340,0,0,0,
+200,10000,0,0,
+340,0,0,0,
+200,10000,0,0,
+2720,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_6 b/wearable/data/vibration/K_WB_6
new file mode 100644 (file)
index 0000000..ba8ce23
--- /dev/null
@@ -0,0 +1,3 @@
+100,10000,0,0,
+1900,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_7 b/wearable/data/vibration/K_WB_7
new file mode 100644 (file)
index 0000000..e3e0b1f
--- /dev/null
@@ -0,0 +1,3 @@
+300,10000,0,0,
+1700,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_8 b/wearable/data/vibration/K_WB_8
new file mode 100644 (file)
index 0000000..6f71177
--- /dev/null
@@ -0,0 +1,3 @@
+800,10000,0,0,
+1200,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WB_9 b/wearable/data/vibration/K_WB_9
new file mode 100644 (file)
index 0000000..7e95c95
--- /dev/null
@@ -0,0 +1,21 @@
+100,10000,0,0,
+300,0,0,0,
+100,7000,0,0,
+300,0,0,0,
+100,5000,0,0,
+300,0,0,0,
+100,3000,0,0,
+300,0,0,0,
+100,1500,0,0,
+600,0,0,0,
+100,10000,0,0,
+300,0,0,0,
+100,7000,0,0,
+300,0,0,0,
+100,5000,0,0,
+300,0,0,0,
+100,3000,0,0,
+300,0,0,0,
+100,1500,0,0,
+2000,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_WW b/wearable/data/vibration/K_WW
new file mode 100644 (file)
index 0000000..0cec9ae
--- /dev/null
@@ -0,0 +1,9 @@
+175,10000,0,0,
+125,0,0,0,
+500,10000,0,0,
+200,0,0,0,
+175,10000,0,0,
+125,0,0,0,
+500,10000,0,0,
+3000,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_10 b/wearable/data/vibration/K_W_10
new file mode 100644 (file)
index 0000000..612f8f6
--- /dev/null
@@ -0,0 +1,17 @@
+100,3500,0,0,
+100,0,0,0,
+100,3500,0,0,
+100,0,0,0,
+100,10000,0,0,
+100,0,0,0,
+100,10000,0,0,
+100,0,0,0,
+100,3500,0,0,
+100,0,0,0,
+100,3500,0,0,
+100,0,0,0,
+100,10000,0,0,
+100,0,0,0,
+100,10000,0,0,
+2500,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_2 b/wearable/data/vibration/K_W_2
new file mode 100644 (file)
index 0000000..f625273
--- /dev/null
@@ -0,0 +1,17 @@
+25,10000,0,0,
+50,0,0,0,
+100,10000,0,0,
+325,0,0,0,
+25,10000,0,0,
+50,0,0,0,
+100,10000,0,0,
+325,0,0,0,
+25,10000,0,0,
+50,0,0,0,
+100,10000,0,0,
+325,0,0,0,
+25,10000,0,0,
+50,0,0,0,
+100,10000,0,0,
+2325,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_3 b/wearable/data/vibration/K_W_3
new file mode 100644 (file)
index 0000000..5bd7313
--- /dev/null
@@ -0,0 +1,29 @@
+175,10000,0,0,
+150,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+400,0,0,0,
+175,10000,0,0,
+150,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+25,0,0,0,
+25,10000,0,0,
+2400,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_4 b/wearable/data/vibration/K_W_4
new file mode 100644 (file)
index 0000000..b1d37b4
--- /dev/null
@@ -0,0 +1,9 @@
+25,10000,0,0,
+75,0,0,0,
+175,10000,0,0,
+725,0,0,0,
+25,10000,0,0,
+75,0,0,0,
+175,10000,0,0,
+2725,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_5 b/wearable/data/vibration/K_W_5
new file mode 100644 (file)
index 0000000..95bb97f
--- /dev/null
@@ -0,0 +1,13 @@
+100,10000,0,0,
+170,0,0,0,
+100,10000,0,0,
+170,0,0,0,
+100,10000,0,0,
+360,0,0,0,
+100,10000,0,0,
+170,0,0,0,
+100,10000,0,0,
+170,0,0,0,
+100,10000,0,0,
+2360,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_6 b/wearable/data/vibration/K_W_6
new file mode 100644 (file)
index 0000000..fa40fc6
--- /dev/null
@@ -0,0 +1,3 @@
+50,10000,0,0,
+1950,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_7 b/wearable/data/vibration/K_W_7
new file mode 100644 (file)
index 0000000..f32def0
--- /dev/null
@@ -0,0 +1,3 @@
+150,10000,0,0,
+1850,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_8 b/wearable/data/vibration/K_W_8
new file mode 100644 (file)
index 0000000..0a7ed24
--- /dev/null
@@ -0,0 +1,3 @@
+400,10000,0,0,
+1600,0,0,0,
+0,end
diff --git a/wearable/data/vibration/K_W_9 b/wearable/data/vibration/K_W_9
new file mode 100644 (file)
index 0000000..4c23670
--- /dev/null
@@ -0,0 +1,21 @@
+50,10000,0,0,
+150,0,0,0,
+50,7000,0,0,
+150,0,0,0,
+50,5000,0,0,
+150,0,0,0,
+50,3000,0,0,
+150,0,0,0,
+50,1500,0,0,
+300,0,0,0,
+50,10000,0,0,
+150,0,0,0,
+50,7000,0,0,
+150,0,0,0,
+50,5000,0,0,
+150,0,0,0,
+50,3000,0,0,
+150,0,0,0,
+50,1500,0,0,
+2000,0,0,0,
+0,end
diff --git a/wearable/data/vibration/M1 b/wearable/data/vibration/M1
new file mode 100644 (file)
index 0000000..5a2087e
--- /dev/null
@@ -0,0 +1,8 @@
+150,10000,0,0,
+85,0,0,0,
+265,10000,0,0,
+500,0,0,0,
+150,7500,0,0,
+85,0,0,0,
+265,7500,0,0,
+0,end
diff --git a/wearable/data/vibration/M2 b/wearable/data/vibration/M2
new file mode 100644 (file)
index 0000000..6a0561d
--- /dev/null
@@ -0,0 +1,6 @@
+150,3500,0,0,
+150,6000,0,0,
+150,7500,0,0,
+150,8750,0,0,
+150,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/N b/wearable/data/vibration/N
new file mode 100644 (file)
index 0000000..a030cd3
--- /dev/null
@@ -0,0 +1,2 @@
+125,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/O b/wearable/data/vibration/O
new file mode 100644 (file)
index 0000000..3a20698
--- /dev/null
@@ -0,0 +1,4 @@
+35,10000,0,0,
+75,0,0,0,
+250,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/P b/wearable/data/vibration/P
new file mode 100644 (file)
index 0000000..534cb87
--- /dev/null
@@ -0,0 +1,6 @@
+7,7500,2000,0,
+50,0,2000,0,
+175,800,2000,0,
+25,0,2000,0,
+13,10000,2000,0,
+0,end
diff --git a/wearable/data/vibration/Q b/wearable/data/vibration/Q
new file mode 100644 (file)
index 0000000..ec5c872
--- /dev/null
@@ -0,0 +1,6 @@
+15,10000,0,0,
+15,0,0,0,
+175,800,0,0,
+15,0,0,0,
+30,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/R b/wearable/data/vibration/R
new file mode 100644 (file)
index 0000000..0d6aa3b
--- /dev/null
@@ -0,0 +1,2 @@
+7,7500,0,0,
+0,end
diff --git a/wearable/data/vibration/S2 b/wearable/data/vibration/S2
new file mode 100644 (file)
index 0000000..223500a
--- /dev/null
@@ -0,0 +1,40 @@
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+125,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+1565,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+125,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+1565,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+125,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+1565,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+125,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+1565,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+125,0,0,0,
+70,10000,0,0,
+15,0,0,0,
+70,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/S_B b/wearable/data/vibration/S_B
new file mode 100644 (file)
index 0000000..97476b5
--- /dev/null
@@ -0,0 +1,8 @@
+140,10000,0,0,
+30,0,0,0,
+140,10000,0,0,
+250,0,0,0,
+140,10000,0,0,
+30,0,0,0,
+140,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/T b/wearable/data/vibration/T
new file mode 100644 (file)
index 0000000..a2ba141
--- /dev/null
@@ -0,0 +1,4 @@
+250,10000,0,0,
+500,0,0,0,
+250,10000,0,0,
+0,end
diff --git a/wearable/data/vibration/T_LIGHT b/wearable/data/vibration/T_LIGHT
new file mode 100644 (file)
index 0000000..f92f394
--- /dev/null
@@ -0,0 +1,4 @@
+250,5000,0,0,
+500,0,0,0,
+250,5000,0,0,
+0,end