void LocalizedSpeaker.Say(LocalizedPhrase phrase)
        {
            _logger.Method().Start(phrase.Text());

            try
            {
                _mediaElement.Stop();

                MediaPlaybackItem[] items = Enumerable.Range(0, Convert.ToInt32(phrase.TokensCount()))
                                            .Select(Convert.ToUInt32)
                                            .Select(phrase.Token)
                                            .Select(token => _voiceFileHelper.GetFileUri(token, phrase.Language(), _settingsRepository.GuideSpeakerSex))
                                            .Where(uri => uri != null)
                                            .Select(MediaSource.CreateFromUri)
                                            .Select(src => new MediaPlaybackItem(src))
                                            .ToArray();

                var playList = new MediaPlaybackList();
                items.ForEach(playList.Items.Add);

                _mediaElement.SetPlaybackSource(playList);
                _mediaElement.Play();
                _logger.Method().End();
            }
            catch (Exception exception)
            {
                _logger.Method().Exception(exception);
            }
        }
Esempio n. 2
0
    public static string GetPhrase(LocalizedPhrase lp)
    {
        switch (lp)
        {
        default: return("<...>");

        case LocalizedPhrase.PointsSec: return("points/sec");

        case LocalizedPhrase.StopDig: return("Stop digging");

        case LocalizedPhrase.StopGather: return("Stop gathering");

        case LocalizedPhrase.RequiredSurface: return("Required surface");

        case LocalizedPhrase.ImmigrationEnabled: return("Immigration enabled");

        case LocalizedPhrase.ImmigrationDisabled:  return("Immigration disabled");

        case LocalizedPhrase.TicketsLeft: return("Tickets left");

        case LocalizedPhrase.ColonistsArrived: return("Colonists arrived");

        case LocalizedPhrase.BirthrateMode: return("Spawnrate mode");

        case LocalizedPhrase.ShuttlesAvailable: return("Shuttles available");

        case LocalizedPhrase.CrewsAvailable: return("Crews available");

        case LocalizedPhrase.TransmittersAvailable: return("Transmitters available");

        case LocalizedPhrase.ImproveGears: return("Improve gears");

        case LocalizedPhrase.NoActivity: return("No activity");

        case LocalizedPhrase.CrewSlots: return("Crew slots");

        case LocalizedPhrase.HireNewCrew: return("Hire new crew");

        case LocalizedPhrase.ConstructShuttle: return("Construct shuttle");

        case LocalizedPhrase.ShuttleRepaired: return("A shuttle has been repaired");

        case LocalizedPhrase.ShuttleConstructed: return("New shuttle constructed");

        case LocalizedPhrase.ObjectsLeft: return("Objects left");

        case LocalizedPhrase.NoSavesFound: return("No saves found");

        case LocalizedPhrase.CreateNewSave: return("Create new save");

        case LocalizedPhrase.CameraZoom: return("Camera zoom");

        case LocalizedPhrase.LODdistance: return("LOD sprite distance");

        case LocalizedPhrase.GraphicQuality: return("Graphic quality");

        case LocalizedPhrase.Ask_DestroyIntersectingBuildings: return("Destroy all intersecting buildings?");
        }
    }
Esempio n. 3
0
 public double GetDuration(LocalizedPhrase phrase, Sex speakerSex)
 {
     return(Enumerable.Range(0, Convert.ToInt32(phrase.TokensCount()))
            .Select(Convert.ToUInt32)
            .Select(phrase.Token)
            .Select(token => GetTokenDuration(token, phrase.Language(), speakerSex))
            .Sum() + 1.0);    //add secod like in IOS
 }
 double LocalizedSpeaker.Duration(LocalizedPhrase phrase)
 {
     return(_voiceFileHelper.GetDuration(phrase, _settingsRepository.GuideSpeakerSex));
 }