Exemple #1
0
        /// <summary>
        /// Handle multiple panels open and changing languages
        /// </summary>
        /// <param name="languageChangedResult"></param>
        void HandleOnLanguageChanged(LanguageChangedResult languageChangedResult)
        {
            ISpeechDetectionPlugin plugin = EditorProxySpeechDetectionPlugin.GetInstance();
            int languageIndex             = _mLanguage;

            if (SpeechDetectionUtils.HandleOnLanguageChanged(
                    ref _mLanguage,
                    _mLanguages,
                    ref _mDialect,
                    _mDialects,
                    _mLanguageResult,
                    plugin,
                    languageChangedResult))
            {
                if (languageIndex != _mLanguage)
                {
                    SpeechDetectionUtils.HandleLanguageChanged(_mLanguages,
                                                               _mLanguage,
                                                               out _mDialects,
                                                               ref _mDialect,
                                                               _mLanguageResult,
                                                               plugin);
                }
                Repaint();
            }
        }
Exemple #2
0
 /// <summary>
 /// Invoke all the listeners
 /// </summary>
 /// <param name="detectionResult"></param>
 public void Invoke(LanguageChangedResult languageChangedResult)
 {
     foreach (DelegateHandleLanguageChanged listener in _sOnLanguageChanged)
     {
         listener.Invoke(languageChangedResult);
     }
 }
Exemple #3
0
        /// <summary>
        /// Handler for changing dialects
        /// </summary>
        public static void HandleDialectChanged(string[] dialectOptions,
                                                int dialectIndex,
                                                LanguageResult languageResult,
                                                ISpeechDetectionPlugin plugin)
        {
            if (null == dialectOptions)
            {
                Debug.LogError("The dialect options are not set!");
                return;
            }

            if (null == languageResult)
            {
                Debug.LogError("The language result is not set!");
                return;
            }

            string display = dialectOptions[dialectIndex];

            Dialect dialect = null;

            if (dialectIndex > 0)
            {
                //Debug.Log(display);
                SetDefaultDialect(display);

                dialect = SpeechDetectionUtils.GetDialect(languageResult, display);
                if (null == dialect)
                {
                    Debug.LogError("Did not find specified dialect!");
                    return;
                }

                //Debug.Log(dialect.name);
                if (null != plugin)
                {
                    plugin.Abort();
                    plugin.SetLanguage(dialect.name);

                    LanguageChangedResult languageChangedResult = new LanguageChangedResult();
                    languageChangedResult._mDialect = dialect.name;
                    plugin.Invoke(languageChangedResult);
                }
            }
        }
Exemple #4
0
        /// <summary>
        /// Handler for changing dialects
        /// </summary>
        public static void HandleDialectChanged(Dropdown dropdownDialects,
                                                LanguageResult languageResult,
                                                ISpeechDetectionPlugin plugin)
        {
            if (null == dropdownDialects)
            {
                Debug.LogError("The dropdown for dialects is not set!");
                return;
            }

            if (null == languageResult)
            {
                Debug.LogError("The language result is not set!");
                return;
            }

            string display = dropdownDialects.options[dropdownDialects.value].text;

            Dialect dialect = null;

            if (dropdownDialects.value > 0)
            {
                //Debug.Log(display);
                SetDefaultDialect(display);

                dialect = SpeechDetectionUtils.GetDialect(languageResult, display);
                if (null == dialect)
                {
                    Debug.LogError("Did not find specified dialect!");
                    return;
                }

                //Debug.Log(dialect.name);
                if (null != plugin)
                {
                    plugin.Abort();
                    plugin.SetLanguage(dialect.name);

                    LanguageChangedResult languageChangedResult = new LanguageChangedResult();
                    languageChangedResult._mDialect = dialect.name;
                    plugin.Invoke(languageChangedResult);
                }
            }
        }
Exemple #5
0
        public static bool HandleOnLanguageChanged(
            ref int languageIndex,
            string[] languageOptions,
            ref int dialectIndex,
            string[] dialectOptions,
            LanguageResult languageResult,
            ISpeechDetectionPlugin plugin,
            LanguageChangedResult languageChangedResult)
        {
            if (_sPausePreferences)
            {
                return(false);
            }

            if (null == languageResult)
            {
                Debug.LogError("LanguageResult is null!");
                return(false);
            }

            if (null == languageChangedResult)
            {
                Debug.LogError("LanguageChangedResult is null!");
                return(false);
            }

            bool changed = false;

            /*
             * Debug.LogFormat("GetLanguageDisplay: language={0} dialect={1}",
             *  (languageChangedResult._mLanguage == null) ? "null" : languageChangedResult._mLanguage,
             *  (languageChangedResult._mDialect == null) ? "null" : languageChangedResult._mDialect);
             */

            if (null != languageChangedResult._mLanguage)
            {
                string language = GetLanguageDisplay(languageResult, languageChangedResult._mLanguage);
                for (int index = 0; index < languageOptions.Length; ++index)
                {
                    if (languageOptions[index] == language)
                    {
                        if (languageIndex != index)
                        {
                            languageIndex = index;
                            changed       = true;
                            break;
                        }
                    }
                }
            }

            if (null != languageChangedResult._mDialect)
            {
                string dialect = GetDialectDisplay(languageResult, languageChangedResult._mDialect);
                for (int index = 0; index < dialectOptions.Length; ++index)
                {
                    if (dialectOptions[index] == dialect)
                    {
                        if (dialectIndex != index)
                        {
                            dialectIndex = index;
                            changed      = true;
                        }
                    }
                }
            }

            return(changed);
        }
Exemple #6
0
        /// <summary>
        /// Handler for changing languages
        /// </summary>
        public static void HandleLanguageChanged(string[] languageOptions,
                                                 int languageIndex,
                                                 out string[] dialectOptions,
                                                 ref int dialectIndex,
                                                 LanguageResult languageResult,
                                                 ISpeechDetectionPlugin plugin)
        {
            List <string> options = GetDefaultDialectOptions();

            dialectOptions = options.ToArray();
            dialectIndex   = 0;

            if (null == languageOptions)
            {
                Debug.LogError("The language options are not set!");
                return;
            }

            if (null == dialectOptions)
            {
                Debug.LogError("The dialect options are not set!");
                return;
            }

            if (null == languageResult)
            {
                Debug.LogError("The language result is not set!");
                return;
            }

            string display = languageOptions[languageIndex];

            //Debug.Log(display);
            SetDefaultLanguage(display);

            Language language = null;

            if (languageIndex > 0)
            {
                language = SpeechDetectionUtils.GetLanguage(languageResult, display);
                if (null == language)
                {
                    Debug.LogError("Did not find specified language!");
                }
                else
                {
                    LanguageChangedResult languageChangedResult = new LanguageChangedResult();
                    languageChangedResult._mLanguage = language.name;
                    plugin.Invoke(languageChangedResult);
                }
            }

            if (languageIndex > 0 &&
                null != language &&
                null != language.dialects &&
                language.dialects.Length > 0)
            {
                foreach (Dialect dialect in language.dialects)
                {
                    if (!string.IsNullOrEmpty(dialect.display))
                    {
                        options.Add(dialect.display);
                    }
                    else if (!string.IsNullOrEmpty(dialect.description))
                    {
                        options.Add(dialect.description);
                    }
                    else if (!string.IsNullOrEmpty(dialect.name))
                    {
                        options.Add(dialect.name);
                    }
                }
            }
            dialectOptions = options.ToArray();
            if (dialectOptions.Length > 1)
            {
                dialectIndex = 1;
            }

            HandleDialectChanged(dialectOptions, dialectIndex, languageResult, plugin);
        }
Exemple #7
0
        /// <summary>
        /// Handler for changing languages
        /// </summary>
        public static void HandleLanguageChanged(Dropdown dropdownLanguages,
                                                 Dropdown dropdownDialects,
                                                 LanguageResult languageResult,
                                                 ISpeechDetectionPlugin plugin)
        {
            if (null == dropdownLanguages)
            {
                Debug.LogError("The dropdown for languages is not set!");
                return;
            }

            if (null == dropdownDialects)
            {
                Debug.LogError("The dropdown for dialects is not set!");
                return;
            }

            if (null == languageResult)
            {
                Debug.LogError("The language result is not set!");
                return;
            }

            string display = dropdownLanguages.options[dropdownLanguages.value].text;

            //Debug.Log(display);
            SetDefaultLanguage(display);

            Language language = null;

            if (dropdownLanguages.value > 0)
            {
                language = SpeechDetectionUtils.GetLanguage(languageResult, display);
                if (null == language)
                {
                    Debug.LogError("Did not find specified language!");
                }
                else
                {
                    LanguageChangedResult languageChangedResult = new LanguageChangedResult();
                    languageChangedResult._mLanguage = language.name;
                    plugin.Invoke(languageChangedResult);
                }
            }

            List <string> options = SpeechDetectionUtils.GetDefaultDialectOptions();

            if (dropdownLanguages.value > 0 &&
                null != language &&
                null != language.dialects &&
                language.dialects.Length > 0)
            {
                foreach (Dialect dialect in language.dialects)
                {
                    if (!string.IsNullOrEmpty(dialect.display))
                    {
                        options.Add(dialect.display);
                    }
                    else if (!string.IsNullOrEmpty(dialect.description))
                    {
                        options.Add(dialect.description);
                    }
                    else if (!string.IsNullOrEmpty(dialect.name))
                    {
                        options.Add(dialect.name);
                    }
                }
            }
            SpeechDetectionUtils.PopulateDropdown(dropdownDialects, options);
            SpeechDetectionUtils.SetInteractable(options.Count > 1, dropdownDialects);
            SpeechDetectionUtils.SelectIndex(dropdownDialects, 1);

            HandleDialectChanged(dropdownDialects, languageResult, plugin);
        }