summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorSeungbae Shin <seungbae.shin@samsung.com>2023-11-08 20:18:59 +0900
committerSeungbae Shin <seungbae.shin@samsung.com>2023-11-10 13:41:56 +0900
commit8e8b2c303fd4d0556b535c9069e8ff1b1dc3bbc0 (patch)
tree85e20fb7a0e7f0fc3e9a73961fb5cf0bc929bbea /testsuite
parent729973cc82ee7919061c4826ecf308af997c752d (diff)
downloadlibmm-sound-8e8b2c303fd4d0556b535c9069e8ff1b1dc3bbc0.tar.gz
libmm-sound-8e8b2c303fd4d0556b535c9069e8ff1b1dc3bbc0.tar.bz2
libmm-sound-8e8b2c303fd4d0556b535c9069e8ff1b1dc3bbc0.zip
keysound: skip hard frequent request of keysound playbackaccepted/tizen/unified/20231114.041309
A frequent playing request for the same file path less than 30ms will be skipped with warning log. This workaround solution will be affected except TV build. [Version] 0.13.25 [Issue Type] Robustness Change-Id: I4c73fe62710fe861f7854bb4b9349580ee6a04b8
Diffstat (limited to 'testsuite')
-rwxr-xr-xtestsuite/mm_sound_testsuite_simple.c55
1 files changed, 50 insertions, 5 deletions
diff --git a/testsuite/mm_sound_testsuite_simple.c b/testsuite/mm_sound_testsuite_simple.c
index ac5f147..1509653 100755
--- a/testsuite/mm_sound_testsuite_simple.c
+++ b/testsuite/mm_sound_testsuite_simple.c
@@ -48,7 +48,14 @@
#define POWERON_FILE "/usr/share/keysound/poweron.ogg"
#define KEYTONE_FILE "/usr/share/sounds/mm-sound/Tizen_HW_Touch.ogg"
#define KEYTONE_NOTI_FILE "/usr/share/sounds/alsa/Front_Center.wav"
-#define MM_SOUND_KEYTONE "MM_SOUND_KEYTONE"
+
+#define MM_SOUND_KEYTONE_PATH "MM_SOUND_KEYTONE_PATH"
+
+#define MM_SOUND_KEYTONE_COUNT "MM_SOUND_KEYTONE_COUNT"
+#define MM_SOUND_KEYTONE_COUNT_MAX 10000
+
+#define MM_SOUND_KEYTONE_INTERVAL "MM_SOUND_KEYTONE_INTERVAL"
+#define MM_SOUND_KEYTONE_INTERVAL_MAX 10000 /* 10 sec. */
enum {
CURRENT_STATUS_MAINMENU = 0,
@@ -345,6 +352,29 @@ mm_sound_device_flags_e select_device_flags(void)
return (no2flag(input_string[0]) | no2flag(input_string[2]) | no2flag(input_string[4]));
}
+static const char *env_get_str(const char *key, const char *default_str)
+{
+ char *env_str = getenv(key);
+
+ return env_str ? env_str : default_str;
+}
+
+static unsigned int env_get_uint(const char *key, unsigned int min, unsigned int max, unsigned int default_value)
+{
+ char *env_str = getenv(key);
+ unsigned int value = 0;
+
+ if (!env_str)
+ return default_value;
+
+ value = (unsigned int)atoi(env_str);
+
+ g_assert(value >= min);
+ g_assert(value <= max);
+
+ return value;
+}
+
static void interpret(char *cmd)
{
int ret = 0;
@@ -558,10 +588,25 @@ static void interpret(char *cmd)
if (ret < 0)
debug_error("keysound stop failed with 0x%x", ret);
} else if (strncmp(cmd, "k", 1) == 0) {
- char* env_keytone_path = getenv(MM_SOUND_KEYTONE);
- ret = mm_sound_play_keysound(env_keytone_path ? env_keytone_path : KEYTONE_FILE, 0);
- if (ret < 0)
- debug_error("keysound play failed with 0x%x", ret);
+ const char* keytone_path =
+ env_get_str(MM_SOUND_KEYTONE_PATH, KEYTONE_FILE);
+ unsigned int count =
+ env_get_uint(MM_SOUND_KEYTONE_COUNT, 0, MM_SOUND_KEYTONE_COUNT_MAX, 1);
+ unsigned int interval_us =
+ env_get_uint(MM_SOUND_KEYTONE_INTERVAL, 0, MM_SOUND_KEYTONE_INTERVAL_MAX, 0) * 1000;
+
+ g_message("keytone path(%s), count(%u), interval(%u us)",
+ keytone_path, count, interval_us);
+
+ for (unsigned int i = 0; i < count; i++) {
+ ret = mm_sound_play_keysound(keytone_path, 0);
+ if (ret < 0)
+ debug_error("keysound play failed with 0x%x", ret);
+
+ usleep(interval_us);
+ }
+
+ g_message("keytone play done");
} else if (strncmp(cmd, "q", 1) == 0) {
unsigned int value = 100;
ret = mm_sound_volume_get_value(g_volume_type, &value);