コード例 #1
0
ファイル: VolumeConversation.cs プロジェクト: davidov541/SAMI
        public override string Speak()
        {
            base.Speak();
            Dialog phrase   = CurrentDialog;
            int    levelNum = Int32.Parse(phrase.GetPropertyValue("levelNum"));

            switch (_state)
            {
            case VolumeConversationState.Initial:
                if (levelNum == -1)
                {
                    // If we are asking to do volume and we didn't indicate a repeat volume, we should use the interactive mode.
                    ConversationIsOver = false;
                    _state             = VolumeConversationState.VolumeAdjustment;
                    _source            = phrase.GetPropertyValue("source");
                    AdjustVolume(phrase.GetPropertyValue("direction"), 0.05, _source);
                    return("How is that?");
                }
                else
                {
                    Console.WriteLine("About to call adjust volume with " + phrase.GetPropertyValue("direction"));
                    ConversationIsOver = true;
                    Task.Run(() => AdjustVolume(phrase.GetPropertyValue("direction"), levelNum / 100.0, phrase.GetPropertyValue("source")));
                    return("OK");
                }

            case VolumeConversationState.VolumeAdjustment:
                if (levelNum == -1)
                {
                    ConversationIsOver = true;
                    return("Good");
                }
                else
                {
                    ConversationIsOver = false;
                    AdjustVolume(phrase.GetPropertyValue("direction"), levelNum / 100.0, _source);
                    return("How is that?");
                }

            default:
                break;
            }
            return(String.Empty);
        }
コード例 #2
0
ファイル: VolumeConversation.cs プロジェクト: davidov541/SAMI
 internal VolumeConversation(IConfigurationManager configManager, IEnumerable <IOInterfaceReference> references)
     : base(configManager, DateTime.Now.AddMinutes(1))
 {
     _state      = VolumeConversationState.Initial;
     _references = references;
 }