Ejemplo n.º 1
0
        /// <summary>
        /// Find keyboard phone.
        /// </summary>
        /// <param name="phoneText">Phone string.</param>
        /// <param name="phoneStyle">Phone style.</param>
        /// <returns>Keyboard phone.</returns>
        private KeyboardPhone FindKeyboardPhone(string phoneText, PhoneStyle phoneStyle)
        {
            Debug.Assert(!string.IsNullOrEmpty(phoneText));

            KeyboardInfo foundPhone = null;
            if (_keyboardPhoneList != null)
            {
                foreach (int key in _keyboardPhoneList.Keys)
                {
                    KeyboardInfo phone = _keyboardPhoneList[key];
                    string phoneLabel;
                    if (phoneStyle == PhoneStyle.IpaPhone)
                    {
                        phoneLabel = phone.IpaPhone;
                    }
                    else if (phoneStyle == PhoneStyle.TtsPhone)
                    {
                        phoneLabel = phone.TtsPhone;
                    }
                    else
                    {
                        string message = string.Format(CultureInfo.InvariantCulture,
                            "Invalid phone type [{0}]", phoneStyle);
                        throw new NotSupportedException(message);
                    }

                    if (string.CompareOrdinal(phoneLabel, phoneText) == 0)
                    {
                        foundPhone = phone;
                        break;
                    }
                }
            }

            return foundPhone as KeyboardPhone;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get given phone's all information.
        /// </summary>
        /// <param name="phone">TTS phone or IPA phone or displayed phone.</param>
        /// <param name="phoneStyle">Phone style.</param>
        /// <returns>KeyboardInfo structure.</returns>
        public KeyboardInfo GetPhoneInfo(string phone, PhoneStyle phoneStyle)
        {
            if (string.IsNullOrEmpty(phone))
            {
                throw new ArgumentException("Phone");
            }

            KeyboardInfo keyboardInfo = null;
            if (phoneStyle == PhoneStyle.IpaPhone && _ipaPhoneHashTable.ContainsKey(phone))
            {
                keyboardInfo = _ipaPhoneHashTable[phone];
            }
            else if (phoneStyle == PhoneStyle.TtsPhone && _ttsPhoneHashTable.ContainsKey(phone))
            {
                keyboardInfo = _ttsPhoneHashTable[phone];
            }
            else if (phoneStyle == PhoneStyle.DisplayedPhone && _displayedPhoneHashTable.ContainsKey(phone))
            {
                keyboardInfo = _displayedPhoneHashTable[phone];
            }
            else
            {
                string message = Helper.NeutralFormat("Can not find PhoneInfo of {0} in keyboard.", phone);
                throw new ArgumentOutOfRangeException(message);
            }

            return keyboardInfo;
        }