Ejemplo n.º 1
0
 private void StopPlugin()
 {
     configForm?.Close();
     configForm = null;
     server?.Stop();
     server = null;
     revisionManager?.Stop();
     revisionManager = null;
 }
Ejemplo n.º 2
0
        private void InitialiseServer()
        {
            errors = PluginError.Initialising;

            try {
                server      = new DAAP.Server(settings.serverName, db, revisionManager);
                server.Port = settings.serverPort;

                server.Collision += (o, args) =>
                {
                    if (server.Name.Length > settings.serverName.Length)
                    {
                        int next = int.Parse(server.Name.Substring(server.Name.Length + 1)) + 1;
                        server.Name = settings.serverName + " " + next.ToString();
                    }
                    else
                    {
                        server.Name += " 2";
                    }
                };

                server.TrackRequested    += OnTrackRequest;
                server.DatabaseRequested += OnDatabaseRequest;

                server.UserLogin  += revisionManager.OnLogin;
                server.UserLogout += revisionManager.OnLogout;

                server.Start();

                errors = PluginError.None;
            } catch (SocketException) {
                errors = PluginError.PortTaken;
            } catch (Mono.Zeroconf.Providers.Bonjour.ServiceErrorException) {
                errors = PluginError.BonjourNotFound;
            } catch (Exception) {
                // Fatal.
                StopPlugin();

                mbApi.MB_SendNotification(CallbackType.DisablePlugin);
            }

            configForm?.SetMessages(errors);
        }