giulia: Configure FIFO vibration effects

FIFO vibration effect sequences based on dumps from dodge,
with minor tweaks.

Change-Id: I7a2d9dbc5ea07f99a2284676a49b2c45d2ad3f3b
This commit is contained in:
chandu078
2025-06-20 22:34:26 +05:30
committed by madmax7896
parent 757f7b2740
commit 252cef0dc3
2 changed files with 325 additions and 0 deletions

View File

@@ -44,6 +44,9 @@ PRODUCT_SOONG_NAMESPACES += \
$(call soong_config_set,OPLUS_LINEAGE_TOUCH_HAL,ENABLE_GM,true)
$(call soong_config_set,OPLUS_LINEAGE_TOUCH_HAL,ENABLE_HTPR,false)
# Vibrator
$(call soong_config_set,OPLUS_LINEAGE_VIBRATOR_HAL,INCLUDE_DIR,$(LOCAL_PATH)/vibrator/include)
# Inherit from the common OEM chipset makefile.
$(call inherit-product, device/oneplus/sm8650-common/common.mk)

View File

@@ -0,0 +1,322 @@
/*
* Copyright (c) 2020, The Linux Foundation. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
* met:
* * Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above
* copyright notice, this list of conditions and the following
* disclaimer in the documentation and/or other materials provided
* with the distribution.
* * Neither the name of The Linux Foundation nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
static const int8_t effect_1[] = {
1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26,
27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 39, 40, 40, 41,
41, 42, 42, 42, 42, 42, 42, 42, 42, 41, 41, 40, 40, 39, 39, 38,
37, 36, 36, 35, 34, 33, 32, 30, 29, 28, 26, 24, 23, 21, 19, 16,
14, 12, 9, 6, 3, 0, -2, -6, -9, -13, -17, -21, -26, -30, -34, -39,
-43, -48, -53, -58, -61, -66, -70, -75, -79, -84, -88, -92, -96, -99, -103, -105,
-108, -111, -114, -116, -118, -120, -122, -123, -124, -124, -125, -125, -125, -124, -123, -122,
-121, -119, -118, -116, -115, -112, -110, -107, -104, -101, -97, -94, -90, -86, -82, -78,
-73, -68, -64, -60, -55, -50, -44, -38, -32, -25, -19, -12, -5, 0, 6, 10,
16, 21, 27, 33, 39, 45, 50, 55, 61, 66, 72, 78, 83, 89, 94, 99,
103, 108, 112, 115, 118, 121, 123, 125, 126, 126, 126, 125, 124, 122, 120, 117,
113, 109, 104, 99, 94, 88, 82, 75, 68, 62, 54, 47, 39, 31, 23, 16,
8, 0, -6, -14, -21, -28, -34, -40, -46, -52, -57, -61, -65, -68, -72, -75,
-78, -80, -82, -83, -84, -85, -86, -86, -86, -85, -85, -84, -82, -81, -79, -77,
-75, -73, -71, -68, -65, -63, -61, -57, -54, -51, -48, -44, -41, -37, -34, -30,
-27, -23, -19, -16, -12, -8, -5, -1, 1, 4, 8, 11, 14, 18, 21, 24,
27, 30, 33, 36, 39, 41, 44, 46, 48, 50, 51, 53, 54, 55, 56, 57,
58, 58, 58, 58, 58, 57, 56, 55, 54, 53, 52, 51, 49, 47, 46, 44,
42, 40, 37, 35, 33, 31, 29, 27, 24, 22, 20, 18, 15, 13, 11, 9,
7, 5, 3, 1, 0, -1, -3, -5, -6, -8, -9, -10, -11, -12, -14, -15,
-16, -17, -18, -19, -20, -21, -22, -22, -23, -24, -24, -25, -25, -26, -26, -27,
-27, -27, -27, -27, -27, -27, -27, -26, -26, -26, -25, -25, -24, -24, -23, -22,
-21, -21, -20, -19, -18, -17, -17, -16, -15, -14, -13, -12, -11, -10, -9, -9,
-8, -7, -6, -5, -5, -4, -3, -2, -2, -1, 0, 0, 0, 0, 1, 2,
2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5,
5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25,
26, 27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 39, 40, 40,
41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 41, 41, 40, 40, 39, 39,
38, 37, 36, 36, 35, 34, 33, 32, 30, 29, 28, 26, 24, 23, 21, 19,
16, 14, 12, 9, 6, 3, 0, -2, -6, -9, -13, -17, -21, -26, -30, -34,
-39, -43, -48, -53, -58, -61, -66, -70, -75, -79, -84, -88, -92, -96, -99, -103,
-105, -108, -111, -114, -116, -118, -120, -122, -123, -124, -124, -125, -125, -125, -124, -123,
-122, -121, -119, -118, -116, -115, -112, -110, -107, -104, -101, -97, -94, -90, -86, -82,
-78, -73, -68, -64, -60, -55, -50, -44, -38, -32, -25, -19, -12, -5, 0, 6,
10, 16, 21, 27, 33, 39, 45, 50, 55, 61, 66, 72, 78, 83, 89, 94,
99, 103, 108, 112, 115, 118, 121, 123, 125, 126, 126, 126, 125, 124, 122, 120,
117, 113, 109, 104, 99, 94, 88, 82, 75, 68, 62, 54, 47, 39, 31, 23,
16, 8, 0, -6, -14, -21, -28, -34, -40, -46, -52, -57, -61, -65, -68, -72,
-75, -78, -80, -82, -83, -84, -85, -86, -86, -86, -85, -85, -84, -82, -81, -79,
-77, -75, -73, -71, -68, -65, -63, -61, -57, -54, -51, -48, -44, -41, -37, -34,
-30, -27, -23, -19, -16, -12, -8, -5, -1, 1, 4, 8, 11, 14, 18, 21,
24, 27, 30, 33, 36, 39, 41, 44, 46, 48, 50, 51, 53, 54, 55, 56,
57, 58, 58, 58, 58, 58, 57, 56, 55, 54, 53, 52, 51, 49, 47, 46,
44, 42, 40, 37, 35, 33, 31, 29, 27, 24, 22, 20, 18, 15, 13, 11,
9, 7, 5, 3, 1, 0, -1, -3, -5, -6, -8, -9, -10, -11, -12, -14,
-15, -16, -17, -18, -19, -20, -21, -22, -22, -23, -24, -24, -25, -25, -26, -26,
-27, -27, -27, -27, -27, -27, -27, -27, -26, -26, -26, -25, -25, -24, -24, -23,
-22, -21, -21, -20, -19, -18, -17, -17, -16, -15, -14, -13, -12, -11, -10, -9,
-9, -8, -7, -6, -5, -5, -4, -3, -2, -2, -1, 0, 0, 0, 0, 1,
2, 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 5, 5, 5,
5, 5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1
};
static const int8_t effect_2[] = {
1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 9, 10, 12,
15, 17, 20, 22, 25, 29, 32, 36, 40, 44, 49, 53, 58, 62, 66, 71,
76, 81, 86, 90, 95, 99, 103, 107, 110, 113, 116, 118, 120, 122, 124, 125,
126, 126, 126, 125, 124, 123, 122, 120, 117, 114, 111, 107, 102, 97, 91, 85,
78, 70, 64, 56, 47, 38, 29, 19, 9, 0, -9, -19, -28, -38, -47, -56,
-63, -71, -78, -85, -91, -96, -101, -105, -109, -112, -115, -118, -119, -120, -121, -120,
-119, -118, -116, -114, -111, -108, -104, -99, -93, -88, -81, -74, -67, -60, -52, -43,
-33, -24, -15, -5, 4, 14, 23, 32, 42, 51, 59, 66, 73, 80, 87, 93,
98, 103, 107, 110, 113, 114, 116, 117, 118, 118, 117, 115, 113, 110, 106, 102,
97, 92, 86, 79, 71, 64, 56, 47, 38, 28, 18, 8, -1, -11, -20, -29,
-37, -45, -52, -59, -65, -69, -72, -76, -78, -80, -81, -81, -80, -79, -77, -74,
-72, -70, -66, -63, -61, -57, -54, -51, -48, -45, -42, -39, -37, -34, -32, -30,
-28, -26, -24, -23, -22, -20, -20, -19, -18, -18, -17, -16, -16, -15, -15, -14
};
static const int8_t effect_3[] = {
1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 6, 7, 9, 10, 12,
15, 17, 20, 22, 25, 29, 32, 36, 40, 44, 49, 53, 58, 62, 66, 71,
76, 81, 86, 90, 95, 99, 103, 107, 110, 113, 116, 118, 120, 122, 124, 125,
126, 126, 126, 125, 124, 123, 122, 120, 117, 114, 111, 107, 102, 97, 91, 85,
78, 70, 64, 56, 47, 38, 29, 19, 9, 0, -9, -19, -28, -38, -47, -56,
-63, -71, -78, -85, -91, -96, -101, -105, -109, -112, -115, -118, -119, -120, -121, -120,
-119, -118, -116, -114, -111, -108, -104, -99, -93, -88, -81, -74, -67, -60, -52, -43,
-33, -24, -15, -5, 4, 14, 23, 32, 42, 51, 59, 66, 73, 80, 87, 93,
98, 103, 107, 110, 113, 114, 116, 117, 118, 118, 117, 115, 113, 110, 106, 102,
97, 92, 86, 79, 71, 64, 56, 47, 38, 28, 18, 8, -1, -11, -20, -29,
-37, -45, -52, -59, -65, -69, -72, -76, -78, -80, -81, -81, -80, -79, -77, -74,
-72, -70, -66, -63, -61, -57, -54, -51, -48, -45, -42, -39, -37, -34, -32, -30,
-28, -26, -24, -23, -22, -20, -20, -19, -18, -18, -17, -16, -16, -15, -15, -14,
-14, -13, -13, -13, -12, -12, -12, -12, -11, -11, -11, -11, -11, -10, -10, -10,
-10, -10, -10, -9, -9, -9, -9, -9, -9, -9, -9, -9, -8, -8, -8, -8,
-8, -8, -8, -8, -8, -8, -7, -7, -7, -7, -7, -7, -7, -7, -7, -7,
-7, -7, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6, -6,
-6, -6, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
-5, -5, -5, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -4,
-4, -4, -4, -4, -4, -4, -4, -4, -4, -4, -3, -3, -3, -3, -3, -3,
-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3,
-3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -3, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, -2
};
static const int8_t effect_4[] = {
1, 1, 1, 1, 1, 2, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7,
8, 9, 10, 11, 12, 13, 14, 16, 17, 18, 19, 21, 22, 23, 25, 26,
27, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 39, 40, 40, 41,
41, 42, 42, 42, 42, 42, 42, 42, 42, 41, 41, 40, 40, 39, 39, 38,
37, 36, 36, 35, 34, 33, 32, 30, 29, 28, 26, 24, 23, 21, 19, 16,
14, 12, 9, 6, 3, 0, -2, -6, -9, -13, -17, -21, -26, -30, -34, -39,
-43, -48, -53, -58, -61, -66, -70, -75, -79, -84, -88, -92, -96, -99, -103, -105,
-108, -111, -114, -116, -118, -120, -122, -123, -124, -124, -125, -125, -125, -124, -123, -122,
-121, -119, -118, -116, -115, -112, -110, -107, -104, -101, -97, -94, -90, -86, -82, -78,
-73, -68, -64, -60, -55, -50, -44, -38, -32, -25, -19, -12, -5, 0, 6, 10,
16, 21, 27, 33, 39, 45, 50, 55, 61, 66, 72, 78, 83, 89, 94, 99,
103, 108, 112, 115, 118, 121, 123, 125, 126, 126, 126, 125, 124, 122, 120, 117,
113, 109, 104, 99, 94, 88, 82, 75, 68, 62, 54, 47, 39, 31, 23, 16,
8, 0, -6, -14, -21, -28, -34, -40, -46, -52, -57, -61, -65, -68, -72, -75,
-78, -80, -82, -83, -84, -85, -86, -86, -86, -85, -85, -84, -82, -81, -79, -77,
-75, -73, -71, -68, -65, -63, -61, -57, -54, -51, -48, -44, -41, -37, -34, -30,
-27, -23, -19, -16, -12, -8, -5, -1, 1, 4, 8, 11, 14, 18, 21, 24,
27, 30, 33, 36, 39, 41, 44, 46, 48, 50, 51, 53, 54, 55, 56, 57,
58, 58, 58, 58, 58, 57, 56, 55, 54, 53, 52, 51, 49, 47, 46, 44,
42, 40, 37, 35, 33, 31, 29, 27, 24, 22, 20, 18, 15, 13, 11, 9,
7, 5, 3, 1, 0, -1, -3, -5, -6, -8, -9, -10, -11, -12, -14, -15,
-16, -17, -18, -19, -20, -21, -22, -22, -23, -24, -24, -25, -25, -26, -26, -27,
-27, -27, -27, -27, -27, -27, -27, -26, -26, -26, -25, -25, -24, -24, -23, -22,
-21, -21, -20, -19, -18, -17, -17, -16, -15, -14, -13, -12, -11, -10, -9, -9,
-8, -7, -6, -5, -5, -4, -3, -2, -2, -1, 0, 0, 0, 0, 1, 2,
2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 6, 6, 5, 5, 5, 5,
5, 4, 4, 4, 4, 3, 3, 3, 3, 2, 2, 2, 2, 2, 1, 1,
1, 1, 1, 1, 1, 1, 1
};
static const struct effect_stream effects[] = {
{
/* CLICK */
.effect_id = 0,
.data = effect_2,
.length = ARRAY_SIZE(effect_2),
.play_rate_hz = 24000,
},
{
/* DOUBLE_CLICK */
.effect_id = 1,
.data = effect_1,
.length = ARRAY_SIZE(effect_1),
.play_rate_hz = 24000,
},
{
/* TICK */
.effect_id = 2,
.data = effect_2,
.length = ARRAY_SIZE(effect_2),
.play_rate_hz = 24000,
},
{
/* THUD */
.effect_id = 3,
.data = effect_3,
.length = ARRAY_SIZE(effect_3),
.play_rate_hz = 24000,
},
{
/* POP */
.effect_id = 4,
.data = effect_3,
.length = ARRAY_SIZE(effect_3),
.play_rate_hz = 24000,
},
{
/* HEAVY_CLICK */
.effect_id = 5,
.data = effect_4,
.length = ARRAY_SIZE(effect_4),
.play_rate_hz = 24000,
},
};