From 86871e9d5a2123f042d6cd37adf2b4167317b5d3 Mon Sep 17 00:00:00 2001 From: Joshua Galea Date: Tue, 1 Sep 2026 22:03:58 +1000 Subject: [PATCH] vibes: add new built-in vibration patterns Add six new vibration patterns to the system vibe score registry and platform resource maps: - Double Pulse Medium: Medium duration dual pulse pattern - Pebble Morse: Word 'PEBBLE' in Morse code with 75% power dashes - Heartbeat: Organic rhythmic lub-dub heartbeat sequence - Double Tap: Sharp dual haptic pulse feedback - Wave: Rising and falling intensity swell - Imperial: Rhythmic homage sequence Co-Authored-By: Antigravity Signed-off-by: Joshua Galea --- include/pbl/services/vibes/vibes.def | 6 ++ resources/normal/asterix/resource_map.json | 30 +++++++++ resources/normal/getafix/resource_map.json | 30 +++++++++ resources/normal/obelix/resource_map.json | 30 +++++++++ resources/normal/qemu_emery/resource_map.json | 30 +++++++++ resources/normal/qemu_flint/resource_map.json | 30 +++++++++ .../normal/qemu_gabbro/resource_map.json | 30 +++++++++ .../snowy/vibes/double_pulse_medium.json | 19 ++++++ resources/normal/snowy/vibes/double_tap.json | 21 ++++++ resources/normal/snowy/vibes/heartbeat.json | 34 ++++++++++ resources/normal/snowy/vibes/imperial.json | 47 ++++++++++++++ .../normal/snowy/vibes/pebble_morse.json | 43 ++++++++++++ resources/normal/snowy/vibes/wave.json | 65 +++++++++++++++++++ src/fw/services/vibes/vibes.def | 6 ++ .../asterix/resource/resource_ids.auto.h | 6 ++ .../gabbro/resource/resource_ids.auto.h | 6 ++ .../obelix/resource/resource_ids.auto.h | 6 ++ 17 files changed, 439 insertions(+) create mode 100644 resources/normal/snowy/vibes/double_pulse_medium.json create mode 100644 resources/normal/snowy/vibes/double_tap.json create mode 100644 resources/normal/snowy/vibes/heartbeat.json create mode 100644 resources/normal/snowy/vibes/imperial.json create mode 100644 resources/normal/snowy/vibes/pebble_morse.json create mode 100644 resources/normal/snowy/vibes/wave.json diff --git a/include/pbl/services/vibes/vibes.def b/include/pbl/services/vibes/vibes.def index 538037ca43..c4b61b25b1 100644 --- a/include/pbl/services/vibes/vibes.def +++ b/include/pbl/services/vibes/vibes.def @@ -13,3 +13,9 @@ VIBE_DEF(11, Reveille, "Reveille", AlertType_Alarms, RESOURCE_ID_VIBE_SCORE_REVE VIBE_DEF(12, Mario, "Mario", AlertType_All, RESOURCE_ID_VIBE_SCORE_MARIO) VIBE_DEF(13, AlarmsLPM, "ALARMS LPM", AlertType_AlarmsLPM, RESOURCE_ID_VIBE_SCORE_ALARM_LPM) VIBE_DEF(14, Gentle, i18n_noop("Gentle"), AlertType_Alarms, RESOURCE_ID_VIBE_SCORE_GENTLE) +VIBE_DEF(15, DoublePulseMedium, i18n_noop("Double Pulse Medium"), AlertType_All, RESOURCE_ID_VIBE_SCORE_DOUBLE_PULSE_MEDIUM) +VIBE_DEF(16, PebbleMorse, i18n_noop("Pebble Morse"), AlertType_All, RESOURCE_ID_VIBE_SCORE_PEBBLE_MORSE) +VIBE_DEF(17, Heartbeat, i18n_noop("Heartbeat"), AlertType_All, RESOURCE_ID_VIBE_SCORE_HEARTBEAT) +VIBE_DEF(18, DoubleTap, i18n_noop("Double Tap"), AlertType_All, RESOURCE_ID_VIBE_SCORE_DOUBLE_TAP) +VIBE_DEF(19, Wave, i18n_noop("Wave"), AlertType_All, RESOURCE_ID_VIBE_SCORE_WAVE) +VIBE_DEF(20, Imperial, "Imperial", AlertType_All, RESOURCE_ID_VIBE_SCORE_IMPERIAL) diff --git a/resources/normal/asterix/resource_map.json b/resources/normal/asterix/resource_map.json index 1e14e8f298..ec7adb66ab 100644 --- a/resources/normal/asterix/resource_map.json +++ b/resources/normal/asterix/resource_map.json @@ -301,6 +301,36 @@ "name": "VIBE_SCORE_GENTLE", "file": "normal/snowy/vibes/gentle.json" }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_PULSE_MEDIUM", + "file": "normal/snowy/vibes/double_pulse_medium.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_PEBBLE_MORSE", + "file": "normal/snowy/vibes/pebble_morse.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_HEARTBEAT", + "file": "normal/snowy/vibes/heartbeat.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_TAP", + "file": "normal/snowy/vibes/double_tap.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_WAVE", + "file": "normal/snowy/vibes/wave.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_IMPERIAL", + "file": "normal/snowy/vibes/imperial.json" + }, { "type": "png", "name": "SMART_ALARM_ICON_BLACK", diff --git a/resources/normal/getafix/resource_map.json b/resources/normal/getafix/resource_map.json index 6d1461b074..caeceb2175 100644 --- a/resources/normal/getafix/resource_map.json +++ b/resources/normal/getafix/resource_map.json @@ -360,6 +360,36 @@ "name": "VIBE_SCORE_GENTLE", "file": "normal/snowy/vibes/gentle.json" }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_PULSE_MEDIUM", + "file": "normal/snowy/vibes/double_pulse_medium.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_PEBBLE_MORSE", + "file": "normal/snowy/vibes/pebble_morse.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_HEARTBEAT", + "file": "normal/snowy/vibes/heartbeat.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_TAP", + "file": "normal/snowy/vibes/double_tap.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_WAVE", + "file": "normal/snowy/vibes/wave.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_IMPERIAL", + "file": "normal/snowy/vibes/imperial.json" + }, { "type": "png", "name": "SMART_ALARM_ICON_BLACK", diff --git a/resources/normal/obelix/resource_map.json b/resources/normal/obelix/resource_map.json index c5892b7fb7..310802cfc1 100644 --- a/resources/normal/obelix/resource_map.json +++ b/resources/normal/obelix/resource_map.json @@ -315,6 +315,36 @@ "name": "VIBE_SCORE_GENTLE", "file": "normal/snowy/vibes/gentle.json" }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_PULSE_MEDIUM", + "file": "normal/snowy/vibes/double_pulse_medium.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_PEBBLE_MORSE", + "file": "normal/snowy/vibes/pebble_morse.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_HEARTBEAT", + "file": "normal/snowy/vibes/heartbeat.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_TAP", + "file": "normal/snowy/vibes/double_tap.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_WAVE", + "file": "normal/snowy/vibes/wave.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_IMPERIAL", + "file": "normal/snowy/vibes/imperial.json" + }, { "type": "png", "name": "SMART_ALARM_ICON_BLACK", diff --git a/resources/normal/qemu_emery/resource_map.json b/resources/normal/qemu_emery/resource_map.json index c5892b7fb7..310802cfc1 100644 --- a/resources/normal/qemu_emery/resource_map.json +++ b/resources/normal/qemu_emery/resource_map.json @@ -315,6 +315,36 @@ "name": "VIBE_SCORE_GENTLE", "file": "normal/snowy/vibes/gentle.json" }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_PULSE_MEDIUM", + "file": "normal/snowy/vibes/double_pulse_medium.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_PEBBLE_MORSE", + "file": "normal/snowy/vibes/pebble_morse.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_HEARTBEAT", + "file": "normal/snowy/vibes/heartbeat.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_TAP", + "file": "normal/snowy/vibes/double_tap.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_WAVE", + "file": "normal/snowy/vibes/wave.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_IMPERIAL", + "file": "normal/snowy/vibes/imperial.json" + }, { "type": "png", "name": "SMART_ALARM_ICON_BLACK", diff --git a/resources/normal/qemu_flint/resource_map.json b/resources/normal/qemu_flint/resource_map.json index a438eb4a67..23bdbcd12e 100644 --- a/resources/normal/qemu_flint/resource_map.json +++ b/resources/normal/qemu_flint/resource_map.json @@ -300,6 +300,36 @@ "name": "VIBE_SCORE_GENTLE", "file": "normal/snowy/vibes/gentle.json" }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_PULSE_MEDIUM", + "file": "normal/snowy/vibes/double_pulse_medium.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_PEBBLE_MORSE", + "file": "normal/snowy/vibes/pebble_morse.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_HEARTBEAT", + "file": "normal/snowy/vibes/heartbeat.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_TAP", + "file": "normal/snowy/vibes/double_tap.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_WAVE", + "file": "normal/snowy/vibes/wave.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_IMPERIAL", + "file": "normal/snowy/vibes/imperial.json" + }, { "type": "png", "name": "SMART_ALARM_ICON_BLACK", diff --git a/resources/normal/qemu_gabbro/resource_map.json b/resources/normal/qemu_gabbro/resource_map.json index 2a7344b61c..bbea699fb0 100644 --- a/resources/normal/qemu_gabbro/resource_map.json +++ b/resources/normal/qemu_gabbro/resource_map.json @@ -360,6 +360,36 @@ "name": "VIBE_SCORE_GENTLE", "file": "normal/snowy/vibes/gentle.json" }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_PULSE_MEDIUM", + "file": "normal/snowy/vibes/double_pulse_medium.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_PEBBLE_MORSE", + "file": "normal/snowy/vibes/pebble_morse.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_HEARTBEAT", + "file": "normal/snowy/vibes/heartbeat.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_DOUBLE_TAP", + "file": "normal/snowy/vibes/double_tap.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_WAVE", + "file": "normal/snowy/vibes/wave.json" + }, + { + "type": "vibe", + "name": "VIBE_SCORE_IMPERIAL", + "file": "normal/snowy/vibes/imperial.json" + }, { "type": "png", "name": "SMART_ALARM_ICON_BLACK", diff --git a/resources/normal/snowy/vibes/double_pulse_medium.json b/resources/normal/snowy/vibes/double_pulse_medium.json new file mode 100644 index 0000000000..a9ae9fc8a4 --- /dev/null +++ b/resources/normal/snowy/vibes/double_pulse_medium.json @@ -0,0 +1,19 @@ +{ + "comments": "Double Pulse Medium", + "notes": [ + { + "id": "pulse_400ms", + "vibe_duration_ms": 400, + "brake_duration_ms": 0, + "strength": 100 + }, + { + "id": "pause_200ms", + "vibe_duration_ms": 200, + "brake_duration_ms": 0, + "strength": 0 + } + ], + "pattern": ["pulse_400ms", "pause_200ms", "pulse_400ms"], + "repeat_delay_ms": 1000 +} diff --git a/resources/normal/snowy/vibes/double_tap.json b/resources/normal/snowy/vibes/double_tap.json new file mode 100644 index 0000000000..73392bb7c7 --- /dev/null +++ b/resources/normal/snowy/vibes/double_tap.json @@ -0,0 +1,21 @@ +{ + "comments": "Double Tap", + "notes": [ + { + "id": "tap", + "vibe_duration_ms": 45, + "brake_duration_ms": 15, + "strength": 100 + }, + { + "id": "pause", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 0 + } + ], + "pattern": [ + "tap", "pause", "tap" + ], + "repeat_delay_ms": 1000 +} diff --git a/resources/normal/snowy/vibes/heartbeat.json b/resources/normal/snowy/vibes/heartbeat.json new file mode 100644 index 0000000000..fb1e92be53 --- /dev/null +++ b/resources/normal/snowy/vibes/heartbeat.json @@ -0,0 +1,34 @@ +{ + "comments": "Heartbeat", + "notes": [ + { + "id": "lub", + "vibe_duration_ms": 80, + "brake_duration_ms": 10, + "strength": 55 + }, + { + "id": "pause_short", + "vibe_duration_ms": 90, + "brake_duration_ms": 0, + "strength": 0 + }, + { + "id": "dub", + "vibe_duration_ms": 140, + "brake_duration_ms": 10, + "strength": 85 + }, + { + "id": "pause_long", + "vibe_duration_ms": 500, + "brake_duration_ms": 0, + "strength": 0 + } + ], + "pattern": [ + "lub", "pause_short", "dub", "pause_long", + "lub", "pause_short", "dub" + ], + "repeat_delay_ms": 1000 +} diff --git a/resources/normal/snowy/vibes/imperial.json b/resources/normal/snowy/vibes/imperial.json new file mode 100644 index 0000000000..3e02b6856a --- /dev/null +++ b/resources/normal/snowy/vibes/imperial.json @@ -0,0 +1,47 @@ +{ + "comments": "Imperial", + "notes": [ + { + "id": "quarter_g", + "vibe_duration_ms": 420, + "brake_duration_ms": 10, + "strength": 100 + }, + { + "id": "gap_short", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 0 + }, + { + "id": "dotted_eb", + "vibe_duration_ms": 300, + "brake_duration_ms": 10, + "strength": 75 + }, + { + "id": "sixteenth_bb", + "vibe_duration_ms": 120, + "brake_duration_ms": 10, + "strength": 85 + }, + { + "id": "half_g", + "vibe_duration_ms": 800, + "brake_duration_ms": 15, + "strength": 100 + } + ], + "pattern": [ + "quarter_g", "gap_short", + "quarter_g", "gap_short", + "quarter_g", "gap_short", + "dotted_eb", "gap_short", + "sixteenth_bb", "gap_short", + "quarter_g", "gap_short", + "dotted_eb", "gap_short", + "sixteenth_bb", "gap_short", + "half_g" + ], + "repeat_delay_ms": 1000 +} diff --git a/resources/normal/snowy/vibes/pebble_morse.json b/resources/normal/snowy/vibes/pebble_morse.json new file mode 100644 index 0000000000..241b854adc --- /dev/null +++ b/resources/normal/snowy/vibes/pebble_morse.json @@ -0,0 +1,43 @@ +{ + "comments": "Pebble Morse", + "notes": [ + { + "id": "dot", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 100 + }, + { + "id": "dash", + "vibe_duration_ms": 180, + "brake_duration_ms": 0, + "strength": 75 + }, + { + "id": "element_gap", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 0 + }, + { + "id": "letter_gap", + "vibe_duration_ms": 180, + "brake_duration_ms": 0, + "strength": 0 + } + ], + "pattern": [ + "dot", "element_gap", "dash", "element_gap", "dash", "element_gap", "dot", + "letter_gap", + "dot", + "letter_gap", + "dash", "element_gap", "dot", "element_gap", "dot", "element_gap", "dot", + "letter_gap", + "dash", "element_gap", "dot", "element_gap", "dot", "element_gap", "dot", + "letter_gap", + "dot", "element_gap", "dash", "element_gap", "dot", "element_gap", "dot", + "letter_gap", + "dot" + ], + "repeat_delay_ms": 1000 +} diff --git a/resources/normal/snowy/vibes/wave.json b/resources/normal/snowy/vibes/wave.json new file mode 100644 index 0000000000..c54645fce2 --- /dev/null +++ b/resources/normal/snowy/vibes/wave.json @@ -0,0 +1,65 @@ +{ + "comments": "Wave", + "notes": [ + { + "id": "w20", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 20 + }, + { + "id": "w35", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 35 + }, + { + "id": "w55", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 55 + }, + { + "id": "w75", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 75 + }, + { + "id": "w100", + "vibe_duration_ms": 80, + "brake_duration_ms": 0, + "strength": 100 + }, + { + "id": "w80", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 80 + }, + { + "id": "w60", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 60 + }, + { + "id": "w40", + "vibe_duration_ms": 60, + "brake_duration_ms": 0, + "strength": 40 + }, + { + "id": "pause", + "vibe_duration_ms": 150, + "brake_duration_ms": 0, + "strength": 0 + } + ], + "pattern": [ + "w20", "w35", "w55", "w75", "w100", "w80", "w60", "w40", "w20", + "pause", + "w20", "w35", "w55", "w75", "w100", "w80", "w60", "w40", "w20" + ], + "repeat_delay_ms": 1000 +} diff --git a/src/fw/services/vibes/vibes.def b/src/fw/services/vibes/vibes.def index c491a0ab50..91b087ad9d 100644 --- a/src/fw/services/vibes/vibes.def +++ b/src/fw/services/vibes/vibes.def @@ -13,3 +13,9 @@ VIBE_DEF(11, Reveille, "Reveille", AlertType_Alarms, RESOURCE_ID_VIBE_SCORE_REVE VIBE_DEF(12, Mario, "Mario", AlertType_All, RESOURCE_ID_VIBE_SCORE_MARIO) VIBE_DEF(13, AlarmsLPM, "ALARMS LPM", AlertType_AlarmsLPM, RESOURCE_ID_VIBE_SCORE_ALARM_LPM) VIBE_DEF(14, Gentle, i18n_noop("Gentle"), AlertType_Alarms, RESOURCE_ID_VIBE_SCORE_GENTLE) +VIBE_DEF(15, DoublePulseMedium, i18n_noop("Double Pulse Medium"), AlertType_All, RESOURCE_ID_VIBE_SCORE_DOUBLE_PULSE_MEDIUM) +VIBE_DEF(16, PebbleMorse, i18n_noop("Pebble Morse"), AlertType_All, RESOURCE_ID_VIBE_SCORE_PEBBLE_MORSE) +VIBE_DEF(17, Heartbeat, i18n_noop("Heartbeat"), AlertType_All, RESOURCE_ID_VIBE_SCORE_HEARTBEAT) +VIBE_DEF(18, DoubleTap, i18n_noop("Double Tap"), AlertType_All, RESOURCE_ID_VIBE_SCORE_DOUBLE_TAP) +VIBE_DEF(19, Wave, i18n_noop("Wave"), AlertType_All, RESOURCE_ID_VIBE_SCORE_WAVE) +VIBE_DEF(20, Imperial, "Imperial", AlertType_All, RESOURCE_ID_VIBE_SCORE_IMPERIAL) diff --git a/tests/overrides/default/resources/asterix/resource/resource_ids.auto.h b/tests/overrides/default/resources/asterix/resource/resource_ids.auto.h index 08566d06c1..a2ced87023 100644 --- a/tests/overrides/default/resources/asterix/resource/resource_ids.auto.h +++ b/tests/overrides/default/resources/asterix/resource/resource_ids.auto.h @@ -581,6 +581,12 @@ typedef enum { RESOURCE_ID_VIBE_SCORE_STANDARD_LONG_HIGH = 570, RESOURCE_ID_VIBE_SCORE_ALARM_LPM = 571, RESOURCE_ID_VIBE_SCORE_GENTLE = 572, + RESOURCE_ID_VIBE_SCORE_DOUBLE_PULSE_MEDIUM, + RESOURCE_ID_VIBE_SCORE_PEBBLE_MORSE, + RESOURCE_ID_VIBE_SCORE_HEARTBEAT, + RESOURCE_ID_VIBE_SCORE_DOUBLE_TAP, + RESOURCE_ID_VIBE_SCORE_WAVE, + RESOURCE_ID_VIBE_SCORE_IMPERIAL, RESOURCE_ID_SMART_ALARM_ICON_BLACK = 573, RESOURCE_ID_MENU_ICON_HEALTH = 574, RESOURCE_ID_STORED_APP_GOLF = 575, diff --git a/tests/overrides/default/resources/gabbro/resource/resource_ids.auto.h b/tests/overrides/default/resources/gabbro/resource/resource_ids.auto.h index eb928f8e60..84f9eec1dc 100644 --- a/tests/overrides/default/resources/gabbro/resource/resource_ids.auto.h +++ b/tests/overrides/default/resources/gabbro/resource/resource_ids.auto.h @@ -588,6 +588,12 @@ typedef enum { RESOURCE_ID_VIBE_SCORE_STANDARD_LONG_HIGH = 577, RESOURCE_ID_VIBE_SCORE_ALARM_LPM = 578, RESOURCE_ID_VIBE_SCORE_GENTLE = 579, + RESOURCE_ID_VIBE_SCORE_DOUBLE_PULSE_MEDIUM, + RESOURCE_ID_VIBE_SCORE_PEBBLE_MORSE, + RESOURCE_ID_VIBE_SCORE_HEARTBEAT, + RESOURCE_ID_VIBE_SCORE_DOUBLE_TAP, + RESOURCE_ID_VIBE_SCORE_WAVE, + RESOURCE_ID_VIBE_SCORE_IMPERIAL, RESOURCE_ID_SMART_ALARM_ICON_BLACK = 580, RESOURCE_ID_BLE_HRM_SHARE_REQUEST_LARGE = 581, RESOURCE_ID_BLE_HRM_SHARED = 582, diff --git a/tests/overrides/default/resources/obelix/resource/resource_ids.auto.h b/tests/overrides/default/resources/obelix/resource/resource_ids.auto.h index d001457e46..df0721ee34 100644 --- a/tests/overrides/default/resources/obelix/resource/resource_ids.auto.h +++ b/tests/overrides/default/resources/obelix/resource/resource_ids.auto.h @@ -579,6 +579,12 @@ typedef enum { RESOURCE_ID_VIBE_SCORE_STANDARD_LONG_HIGH = 568, RESOURCE_ID_VIBE_SCORE_ALARM_LPM = 569, RESOURCE_ID_VIBE_SCORE_GENTLE = 570, + RESOURCE_ID_VIBE_SCORE_DOUBLE_PULSE_MEDIUM, + RESOURCE_ID_VIBE_SCORE_PEBBLE_MORSE, + RESOURCE_ID_VIBE_SCORE_HEARTBEAT, + RESOURCE_ID_VIBE_SCORE_DOUBLE_TAP, + RESOURCE_ID_VIBE_SCORE_WAVE, + RESOURCE_ID_VIBE_SCORE_IMPERIAL, RESOURCE_ID_SMART_ALARM_ICON_BLACK = 571, RESOURCE_ID_BLE_HRM_SHARE_REQUEST_LARGE = 572, RESOURCE_ID_BLE_HRM_SHARED = 573,