#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,
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;
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);