예제 #1
0
 private void StopClient()
 {
     try
     {
         _zeroConfig?.Stop();
         _zeroConfig = null;
         NowPlayingUpdater.Stop();
         StatusUpdater.Stop();
         _mpMessageHandler.UnsubscribeFromMessages();
     }
     catch (Exception ex)
     {
         ServiceRegistration.Get <ILogger>().Error("WifiRemote: Failed to stop server", ex);
     }
 }
예제 #2
0
        /// <summary>
        /// Connects the IR client to the host configured in the settings.
        /// </summary>
        /// <returns><c>true</c>, if the client could successfully be started, else <c>false</c>.</returns>
        private bool StartClient()
        {
            try
            {
                ISettingsManager   settingsManager = ServiceRegistration.Get <ISettingsManager>();
                WifiRemoteSettings settings        = settingsManager.Load <WifiRemoteSettings>();

                // Start listening for client connections
                _socketServer = new SocketServer(Convert.ToUInt16(settings.Port))
                {
                    PassCode          = settings.PassCode,
                    AllowedAuth       = (AuthMethod)settings.AuthenticationMethod,
                    AutologinTimeout  = settings.AutoLoginTimeout,
                    ShowNotifications = false
                };

                _socketServer.Start();

                if (settings.EnableBonjour)
                {
                    // start ZeroConfig
                    _zeroConfig = new ZeroConfig(Convert.ToUInt16(settings.Port), settings.ServiceName, "");
                    _zeroConfig.PublishBonjourService();
                }

                // start the MP Message Handler
                _mpMessageHandler = new MPMessageHandler();
                _mpMessageHandler.SubscribeToMessages();

                // Status updated
                StatusUpdater.Start();

                ServiceRegistration.Get <ILogger>().Info("WifiRemote: Server started");
                return(true);
            }
            catch (Exception ex)
            {
                ServiceRegistration.Get <ILogger>().Error("WifiRemote: Failed to start server, input service is unavailable for this session", ex);
            }
            return(false);
        }