src/imdata.cpp
src/ise-stt-mode.cpp
src/ise-stt-option.cpp
+ src/ise-stt-common.cpp
src/MicEffector.cpp
src/SttFeedback.cpp
src/SttManager.cpp
SET(ISE_SETTING_SRCS
src/config.cpp
+ src/ise-stt-option.cpp
src/option.cpp
src/sdk/sdk_option.cpp
src/eflutil.cpp
pkg_check_modules(ISE_SETTING_PKGS REQUIRED ${SETTING_PKGS_CHECK_MODULES})
-SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall")
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -fPIE -Wall -fpermissive")
#SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CFLAGS} -finstrument-functions")
SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g")
SET(CMAKE_CXX_FLAGS_RELEASE "-O2 -g")
--- /dev/null
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+
+#ifndef ISE_STT_COMMON_H_
+#define ISE_STT_COMMON_H_
+
+/*
+ * This file will be included from ISE
+ */
+
+
+#include <Elementary.h>
+#include "ise-stt-mode.h"
+
+#ifdef EAPI
+# undef EAPI
+#endif
+
+
+#ifdef __GNUC__
+# if __GNUC__ >= 4
+# define EAPI __attribute__ ((visibility("default")))
+# else
+# define EAPI
+# endif
+#else
+# define EAPI
+#endif
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#define VCONFKEY_ISE_STT_LANGUAGE "db/private/ise/stt/language"
+#define PREFERENCE_ISE_STT_LANGUAGE "ise/stt/language"
+
+void get_stt_default_language(VoiceData *my_voicedata);
+void _stt_lang_changed_cb(keynode_t *key, void* data);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ISE_STT_COMMON_H_ */
#include <Elementary.h>
-#include "ise-stt-mode.h"
#ifdef EAPI
# undef EAPI
#define VCONFKEY_ISE_STT_LANGUAGE "db/private/ise/stt/language"
#define PREFERENCE_ISE_STT_LANGUAGE "ise/stt/language"
+typedef enum {
+ STT_VOICE_N66_AUTO,
+ STT_VOICE_N66_EN_US,
+ STT_VOICE_N66_ES_US,
+ STT_VOICE_N66_FR_FR,
+ STT_VOICE_N66_ZH_CN,
+ STT_VOICE_N66_JA_JP,
+ STT_VOICE_N66_KO_KR
+} STT_VOICE_LANGUAGE_N66_I;
void create_setting_window();
-void get_stt_default_language(VoiceData *my_voicedata);
-void _stt_lang_changed_cb(keynode_t *key, void* data);
+int get_language_value();
int is_lang_supported_by_stt(char lang[]);
#endif
#define INPUT_LANGUAGE dgettext(PACKAGE, "IDS_IME_HEADER_INPUT_LANGUAGES")
#define PREDICTION dgettext(PACKAGE, "IDS_IME_BODY_PREDICTIVE_TEXT")
+#define VOICE_LANGUAGE dgettext(PACKAGE, "IDS_VOICE_OPT_LANGUAGE_ABB")
#define KEYPAD dgettext(PACKAGE, "IDS_IME_BODY_KEYBOARD_TYPE")
#define KEYPAD_3X4 dgettext(PACKAGE, "IDS_IME_OPT_3_X_4_KEYBOARD")
#define KEYPAD_QTY dgettext(PACKAGE, "IDS_IME_OPT_QWERTY_KEYBOARD_ABB")
--- /dev/null
+/*
+ * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.0 (the License);
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an AS IS BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <vconf.h>
+#include <stdio.h>
+#include <Ecore.h>
+#include <dlog.h>
+#include <string.h>
+#include <app.h>
+#include <app_preference.h>
+#include <stt.h>
+#include <unistd.h>
+#include <efl_extension.h>
+
+#include "ise.h"
+#include "ise-stt-mode.h"
+#include "ise-stt-option.h"
+#include "ise-stt-common.h"
+#include "eflutil.h"
+
+extern char *supported_language;
+void _stt_lang_changed_cb(keynode_t *key, void* data)
+{
+ if (!data) return;
+
+ VoiceData *vd = (VoiceData *) data;
+ get_stt_default_language(vd);
+ vd->sttmanager->SetLanguage(std::string(vd->kbd_lang));
+
+ return;
+}
+
+void get_stt_default_language(VoiceData *my_voicedata)
+{
+ if (!my_voicedata) {
+ return;
+ }
+
+ if (my_voicedata->kbd_lang) {
+ free(my_voicedata->kbd_lang);
+ my_voicedata->kbd_lang = NULL;
+ }
+
+ STT_VOICE_LANGUAGE_N66_I stt_lang;
+ stt_lang = (STT_VOICE_LANGUAGE_N66_I)get_language_value();
+
+ LOGW("language type (%d)", stt_lang);
+
+ switch (stt_lang) {
+ case STT_VOICE_N66_AUTO :
+ {
+ stt_get_default_language(my_voicedata->voicefw_handle, &my_voicedata->kbd_lang);
+
+ // get system display language
+ char* value = NULL;
+ value = vconf_get_str(VCONFKEY_LANGSET);
+ if (NULL == value) {
+ LOGW("Fail to get display language");
+ return;
+ }
+ LOGW("system language (%s)", value);
+
+ char system_lang[6] = {0, };
+ strncpy(system_lang, value , 5);
+ free(value);
+
+ // confirm whether the system language is supported by stt engine or not.
+ // if supported, set the language
+ // otherwise, set language to en_US
+ if (is_lang_supported_by_stt(system_lang) == TRUE) {
+ my_voicedata->kbd_lang = strdup(system_lang);
+ LOGW("Set auto language (%s)", system_lang);
+ } else {
+ my_voicedata->kbd_lang = strdup("en_US");
+ LOGW("System language is not supported by STT (%s), en_US will be set", system_lang);
+ }
+ }
+ break;
+ case STT_VOICE_N66_EN_US :
+ case STT_VOICE_N66_ES_US :
+ case STT_VOICE_N66_FR_FR :
+ case STT_VOICE_N66_JA_JP :
+ case STT_VOICE_N66_KO_KR :
+ case STT_VOICE_N66_ZH_CN :
+ {
+ my_voicedata->kbd_lang = strdup(supported_language[stt_lang]);
+ }
+ break;
+ default :
+ my_voicedata->kbd_lang = strdup("en_US");
+ break;
+ }
+
+ LOGW("stt language (%s)", my_voicedata->kbd_lang);
+}
#include "candidate-factory.h"
#include "ise-stt-mode.h"
#include "ise-stt-option.h"
+#include "ise-stt-common.h"
#define _EDJ(x) elm_layout_edje_get(x)
#include <string.h>
#include <app.h>
#include <app_preference.h>
-#include <stt.h>
#include <unistd.h>
#include <efl_extension.h>
-#include "ise.h"
#include "ise-stt-option.h"
-#include "ise-stt-mode.h"
#include "eflutil.h"
#define item_append(obj, style, index, cb, udata) \
elm_genlist_item_append(obj, &(style), (void *)index, NULL, ELM_GENLIST_ITEM_NONE, cb, udata)
-sclboolean g_setting_window_open_status = FALSE;
+Eina_Bool g_setting_window_open_status = EINA_FALSE;
-extern stt_h g_stt;
static Evas_Object *radio_gp = NULL;
static Evas_Object *g_setting_naviframe = NULL;
static Evas_Object *g_setting_window = NULL;
static Elm_Genlist_Item_Class itc_2text;
static const char* get_lang_label(char lang[]);
-static int get_language_value();
static void set_language_value(int type);
static char *__get_genlist_item_label(void *data, Evas_Object *obj, const char *part);
"한국어",
};
-typedef enum {
- STT_VOICE_N66_AUTO,
- STT_VOICE_N66_EN_US,
- STT_VOICE_N66_ES_US,
- STT_VOICE_N66_FR_FR,
- STT_VOICE_N66_ZH_CN,
- STT_VOICE_N66_JA_JP,
- STT_VOICE_N66_KO_KR
-} STT_VOICE_LANGUAGE_N66_I;
static const char* get_lang_label(char lang[])
{
return str;
}
-static int get_language_value()
+int get_language_value()
{
int lang = 0, ret = 0;
// Update string
}
-void _stt_lang_changed_cb(keynode_t *key, void* data)
-{
- if (!data) return;
-
- VoiceData *vd = (VoiceData *) data;
- get_stt_default_language(vd);
- vd->sttmanager->SetLanguage(std::string(vd->kbd_lang));
-
- return;
-}
-
int is_lang_supported_by_stt(char lang[])
{
/* to check if the language is supported by stt */
{
if (!strcmp(lang, supported_language[index])) {
LOGD("current lang supported (%s)", supported_language[index]);
- return TRUE;
+ return EINA_TRUE;
}
}
LOGD("current lang not supported (%s)", lang);
- return FALSE;
-}
-
-void get_stt_default_language(VoiceData *my_voicedata)
-{
- if (!my_voicedata) {
- return;
- }
-
- if (my_voicedata->kbd_lang) {
- free(my_voicedata->kbd_lang);
- my_voicedata->kbd_lang = NULL;
- }
-
- STT_VOICE_LANGUAGE_N66_I stt_lang;
- stt_lang = (STT_VOICE_LANGUAGE_N66_I)get_language_value();
-
- LOGD("language type (%d)", stt_lang);
-
- switch (stt_lang) {
- case STT_VOICE_N66_AUTO :
- {
- stt_get_default_language(my_voicedata->voicefw_handle, &my_voicedata->kbd_lang);
-
- // get system display language
- char* value = NULL;
- value = vconf_get_str(VCONFKEY_LANGSET);
- if (NULL == value) {
- LOGD("Fail to get display language");
- return;
- }
- LOGD("system language (%s)", value);
-
- char system_lang[6] = {0, };
- strncpy(system_lang, value , 5);
- free(value);
-
- // confirm whether the system language is supported by stt engine or not.
- // if supported, set the language
- // otherwise, set language to en_US
- if (is_lang_supported_by_stt(system_lang) == TRUE) {
- my_voicedata->kbd_lang = strdup(system_lang);
- LOGD("Set auto language (%s)", system_lang);
- } else {
- my_voicedata->kbd_lang = strdup("en_US");
- LOGD("System language is not supported by STT (%s), en_US will be set", system_lang);
- }
- }
- break;
- case STT_VOICE_N66_EN_US :
- case STT_VOICE_N66_ES_US :
- case STT_VOICE_N66_FR_FR :
- case STT_VOICE_N66_JA_JP :
- case STT_VOICE_N66_KO_KR :
- case STT_VOICE_N66_ZH_CN :
- {
- my_voicedata->kbd_lang = strdup(supported_language[stt_lang]);
- }
- break;
- default :
- my_voicedata->kbd_lang = strdup("en_US");
- break;
- }
-
- LOGD("stt language (%s)", my_voicedata->kbd_lang);
+ return EINA_FALSE;
}
static char *__get_genlist_item_label(void *data, Evas_Object *obj, const char *part)
void create_setting_window()
{
- g_setting_window_open_status = TRUE;
- ise_hide_stt_mode();
+ g_setting_window_open_status = EINA_TRUE;
Evas_Object *window = NULL;
Evas_Object *genlist = NULL;
#endif
if (strcmp(event_desc.key_value, USER_VOICE_LANGUAGE) == 0) {
if (!g_setting_window_open_status) {
+ ise_hide_stt_mode();
create_setting_window();
}
} else if (strcmp(event_desc.key_value, USER_KEYSTRING_VOICE) == 0) {
#include "languages.h"
#include "eflutil.h"
#include "sdk/ise_lang_table.h"
+#include "ise-stt-option.h"
#undef LOG_TAG
#define LOG_TAG "ISE_DEFAULT"
SETTING_ITEM_ID_MORE_SETTINGS_TITLE,
SETTING_ITEM_ID_RESET,
SETTING_ITEM_ID_FLOATING,
+ SETTING_ITEM_ID_PREDICTION,
+ SETTING_ITEM_ID_VOICE_LANGUAGE,
SETTING_ITEM_ID_MAX,
};
static void check_autocapitalise_change_callback(void *data, Evas_Object *obj, void *event_info);
static void check_autopunctuate_change_callback(void *data, Evas_Object *obj, void *event_info);
static void check_sound_change_callback(void *data, Evas_Object *obj, void *event_info);
+static void check_prediction_change_callback(void *data, Evas_Object *obj, void *event_info);
+static void check_voice_language_callback(void *data, Evas_Object *obj, void *event_info);
static void check_vibration_change_callback(void *data, Evas_Object *obj, void *event_info);
static void check_character_pre_change_callback(void *data, Evas_Object *obj, void *event_info);
static void check_floating_mode_change_callback(void *data, Evas_Object *obj, void *event_info);
}
break;
}
+ case SETTING_ITEM_ID_PREDICTION: {
+ if (item) {
+ state = _update_check_button_state(item, obj);
+ check_prediction_change_callback((void *)(intptr_t)(state), NULL, NULL);
+ }
+ break;
+ }
+ case SETTING_ITEM_ID_VOICE_LANGUAGE: {
+ if (item) {
+ check_voice_language_callback((void *)(intptr_t)(state), NULL, NULL);
+ }
+ break;
+ }
case SETTING_ITEM_ID_VIBRATION: {
if (item) {
state = _update_check_button_state(item, obj);
write_ise_config_values();
}
+static void check_prediction_change_callback(void *data, Evas_Object *obj, void *event_info)
+{
+ Eina_Bool state = EINA_FALSE;
+ if (obj) {
+ state = elm_check_state_get(obj);
+ } else {
+ state = (int)reinterpret_cast<long>(data);
+ }
+ g_config_values.prediction_on = state;
+ write_ise_config_values();
+}
+
+static void check_voice_language_callback(void *data, Evas_Object *obj, void *event_info)
+{
+ create_setting_window();
+}
static void check_vibration_change_callback(void *data, Evas_Object *obj, void *event_info)
{
Eina_Bool state = EINA_FALSE;
evas_object_smart_callback_add(ck, "changed", check_sound_change_callback,
reinterpret_cast<void*>(item_data->mode));
break;
+ case SETTING_ITEM_ID_PREDICTION:
+ ck = _create_check_button(obj, g_config_values.prediction_on);
+ evas_object_smart_callback_add(ck, "changed", check_prediction_change_callback,
+ reinterpret_cast<void*>(item_data->mode));
+ break;
+ case SETTING_ITEM_ID_VOICE_LANGUAGE:
+ evas_object_smart_callback_add(ck, "changed", check_voice_language_callback,
+ reinterpret_cast<void*>(item_data->mode));
+ break;
case SETTING_ITEM_ID_VIBRATION:
ck = _create_check_button(obj, g_config_values.vibration_on);
evas_object_smart_callback_add(ck, "changed", check_vibration_change_callback,
/* Sound */
append_item(genlist, SETTING_ITEM_ID_SOUND, SOUND, NULL, (void *)SETTING_ITEM_ID_SOUND, option_elements[type].itc_main_item, ELM_GENLIST_ITEM_NONE, EINA_FALSE);
+#ifdef _TV
+ /* Prediction */
+ append_item(genlist, SETTING_ITEM_ID_PREDICTION, PREDICTION, NULL, (void *)SETTING_ITEM_ID_PREDICTION, option_elements[type].itc_main_item, ELM_GENLIST_ITEM_NONE, EINA_FALSE);
+ /* voice language */
+ append_item(genlist, SETTING_ITEM_ID_VOICE_LANGUAGE, VOICE_LANGUAGE, NULL, (void *)SETTING_ITEM_ID_VOICE_LANGUAGE, option_elements[type].itc_main_item, ELM_GENLIST_ITEM_NONE, EINA_FALSE);
+#endif
#ifndef _TV
/* Character preview */
append_item(genlist, SETTING_ITEM_ID_CHARACTER_PRE, CHARACTER_PREVIEW, PREVIEW_DESC, (void *)SETTING_ITEM_ID_CHARACTER_PRE, option_elements[type].itc_multi_item, ELM_GENLIST_ITEM_NONE, EINA_FALSE);