예제 #1
0
 private void DisconnectNow()
 {
     lock (objlock)
     {
         try
         {
             if (_client != null)
             {
                 try
                 {
                     if (_speakHost != null)
                     {
                         _speakHost = null;
                     }
                     _client.Disconnect();
                     _client.Dispose();
                 }
                 catch (Exception)
                 {
                 }
             }
         }
         catch (Exception)
         {
         }
     }
 }
        public UnderstandingTest_ViewModel_WPF(
            ILogger Logger_,
            INavigationService NavigationService_,
            IDialogService DialogService_,
            AppSetting AppSetting_,
            IAudioAPI AudioAPI_,
            IMvxMessenger Messenger_,
            ISpeechAPI SpeechAPI_,
            ILocalization loc_) : 
            base (Logger_,NavigationService_,DialogService_,AppSetting_,AudioAPI_,Messenger_,SpeechAPI_,loc_)
        {

        }
 public PlayerWindow_ViewModel_WPF(
     ILogger logger,
     INavigationService navigationService,
     IDialogService dialogService,
     AppSetting appSetting,
     ISpeechAPI speechApi,
     IAudioAPI audioApi,
     IMvxMessenger messenger,
     ILocalization loc)
     : base(logger,navigationService,dialogService,appSetting,speechApi,audioApi,messenger,loc)
 {
     if (!IsInDesignModeNet())
     {
         player = Mvx.Resolve<IPlayer>(); 
     }
 }
예제 #4
0
        private void DisconnectNow()
        {
            if (_client == null)
            {
                return;
            }

            try {
                SpeechHost = null;
                _client.Disconnect();
                _client.Disconnected -= OnClientDisconnect;
                _client.Connected    -= OnClientConnect;
                _client.Dispose();
            }
            catch (Exception exception) {
                Console.WriteLine($"Error while disconnecting speaker client : {exception.Message}");
            }
        }
예제 #5
0
        private void Connect(int attempts)
        {
            try {
                _client.Connect();
                SpeechHost = _client.ServiceProxy;
                //make sure the interface is supported
                try {
                    var speakHostVersion = SpeechHost.version();
                    if (speakHostVersion != SPEAKER_INTERFACE_VERSION)
                    {
                        Console.WriteLine("Speaker API version mismatch");
                        DisconnectNow();
                        return;
                    }
                }
                catch (Exception exception) {
                    Console.WriteLine($"Error attempting to connect to server, please check your connection options: {exception.Message}");
                    DisconnectNow();
                    return;
                }

                var response = SpeechHost.Connect(HostName, ClientName, IpAddress, _username, _password);

                if (string.IsNullOrEmpty(response))
                {
                    return;
                }

                Console.WriteLine($"Error, Unable to connect speaker client interface: {response}");
                DisconnectNow();
            }
            catch (Exception exception) {
                Console.WriteLine($"Cannot connect speaker client attempt {attempts.ToString()}");
                if (exception.Message.ToLower().Contains("timeout occurred.") && attempts < 6)
                {
                    Connect(attempts + 1);
                }
                else
                {
                    DisconnectNow();
                    Console.WriteLine($"Error, Unable to connect speaker client interface: {exception.Message}");
                }
            }
        }
        public UnderstandingTest_ViewModel(
            ILogger Logger_,
            INavigationService NavigationService_,
            IDialogService DialogService_,
            AppSetting AppSetting_,
            IAudioAPI AudioAPI_,
            IMvxMessenger Messenger_,
            ISpeechAPI SpeechAPI_,
            ILocalization Loc_
            )
        {
            if (!IsInDesignMode)
            {
                Logger = Logger_;
                NavigationService = NavigationService_;
                DialogService = DialogService_;
                AppSetting = AppSetting_;
                AudioAPI = AudioAPI_;
                Messenger = Messenger_;
                SpeechAPI = SpeechAPI_;
                Loc = Loc_;

                Speak_Command = new MvxCommand(Speak_cmd);
                PressWordButton_Command = new MvxCommand<ButtonModel>(PressWordButton_Cmd);
            }

            ButtonsCollection = new ObservableCollection<ButtonModel>();

            if (IsInDesignMode)
            {
                string[] tarr = {
                    "Good news everyone !\nLine1\nLine2",
                    "What's happening here ?\nLine1",
                    "Hello world!" };
                for(int i = 0; i < 3; i++) ButtonsCollection.Add(new ButtonModel() {Text = tarr[i] });
                CurrentSub = new SubtitleItem() {
                    Text = "This is current subtitles item.\nLine 2\nLine3" };
            }

        }
예제 #7
0
        public bool Connect(string username, string password)
        {
            lock (objlock)
            {
                string ipAddress = "127.0.0.1";

                Logger.LogInfo("Connecting speaker client {0} to HomeSeer IP {1}", _clientName, ipAddress);

                try
                {
                    _client = ScsServiceClientBuilder.CreateClient <ISpeechAPI>(new ScsTcpEndPoint(ipAddress, 10401), this);
                    _client.Disconnected += new EventHandler(ClientDisconnected);
                    _client.Connected    += new EventHandler(ClientConnected);
                }
                catch (Exception e)
                {
                    Logger.LogError(e.ToString());
                    return(false);
                }

                try
                {
                    _client.Connect();
                    _speakHost = _client.ServiceProxy;
                    //make sure the interface is supported
                    int v;
                    try
                    {
                        v = _speakHost.version();
                    }
                    catch (Exception e)
                    {
                        Logger.LogError("Error attempting to connect to server, please check your connection options: {0}", e.Message);
                        return(false);
                    }

                    if (v != SPEAKER_INTERFACE_VERSION)
                    {
                        Logger.LogError("Speaker API version mismatch");
                        return(false);
                    }

                    //string localIp = Util.GetLocalIp();
                    string rval = _speakHost.Connect("Sample Plugin", _clientName, "127.0.0.1", username, password);

                    if (!string.IsNullOrEmpty(rval))
                    {
                        Logger.LogError("Error, Unable to connect speaker client interface: {0}", rval);
                        DisconnectNow();
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    Logger.LogError("Error while connecting speaker client: {0}", e.ToString());
                    return(false);
                }
            }

            return(true);
        }
        public PlayerWindow_ViewModel(
            ILogger Logger_,
            INavigationService NavigationService_,
            IDialogService DialogService_,
            AppSetting AppSetting_,
            ISpeechAPI SpeechAPI_,
            IAudioAPI AudioAPI_,
            IMvxMessenger Messenger_,
            ILocalization Loc_
            ) : base()
        {
            
             
            if (!IsInDesignMode)
            {
                Logger = Logger_;
                NavigationService = NavigationService_;
                DialogService = DialogService_;
                AppSetting = AppSetting_;
                SpeechAPI = SpeechAPI_;
                AudioAPI = AudioAPI_;
                Messenger = Messenger_;
                Loc = Loc_;

                //Messenger.Default.Register<PlayerEvent>(this, Controller);
                _substoken = Messenger.Subscribe<PlayerEvent>(Controller);

                // Commands
                CommandDispatcher = new MvxCommand<string>(CmdDispatcher);

                PressCollectWordsButton_Command = new MvxCommand<ButtonModel>(PressCollectWordsButton_Cmd);
                TranslateWord_Command = new MvxCommand<PhraseOfCollectMode.Word>(TranslateWord_Cmd);

            }
            
            

            CollectPhrases_Buttons = new ObservableCollection<ButtonModel>();
            
            if (IsInDesignMode)
            {
                
                string phr = "Cakes have layers!";
                var arr = phr.Split(' ');
                foreach(var elm in arr)
                {
                    CollectPhrases_Buttons.Add(new ButtonModel {WordOfButton = new PhraseOfCollectMode.Word { word_of_phrase = elm } });
                }
                
                CollectedPhraseText = "Everybody loves cake!";

                
                //LearningItem = new LearningItem();
                //LearningItem.Statistics = new Statistics();
                //LearningItem.MainSubs = new Subtitles();
                //LearningItem.MainSubs.Items = new SynchronizedObservableCollection<SubtitleItem>();
                
                string subs_ = @"
                    Once upon a time
                    there was a lovely princess.
                    But she had an enchantment
                    upon her of a fearful sort,
                    which could only be broken
                    by love's first kiss.
                    She was locked away in a castle
                    guarded by a terrible
                    fire-breathing dragon.
                    Many brave knights had attempted
                    to free her from this dreadful prison,
                    but none prevailed.
                    She waited in the dragon's keep
                    in the highest room of the tallest tower,
                    for her true love
                    and true love's first kiss.
                    Like that's ever gonna happen.
                    What a load of...";
                arr = subs_.Split('\n');
                foreach(var elm in arr)
                {
                    //LearningItem.MainSubs.Items.Add(new SubtitleItem { Text = elm.Trim()});
                }
                //LearningItem.CollectPhrases = true;
                
            }

        }