Port registration event arguments.
Inheritance: System.EventArgs
Ejemplo n.º 1
0
 static bool TryGetOldPortArgs(PortRegistrationEventArgs args, out ConnectionEventArgs eventArgs)
 {
     eventArgs = new ConnectionEventArgs {
         MessageType = MessageType.Change
     };
     JackPort oldPort = PortMapper.FirstOrDefault (map => map.PortReference == args.Port);
     if (oldPort == null) {
         return false;
     }
     List<Port> ports = new List<Port> ();
     ports.Add (oldPort);
     eventArgs.Connectables = ports;
     eventArgs.ChangeType = ChangeType.Deleted;
     eventArgs.ConnectionType = oldPort.ConnectionType;
     PortMapper.Remove (oldPort);
     eventArgs.Message = "Port unregistered.";
     return true;
 }
Ejemplo n.º 2
0
 static void OnPortRegistration(object sender, PortRegistrationEventArgs args)
 {
     ConnectionEventArgs eventArgs = null;
     if (args.ChangeType == JackSharp.Events.ChangeType.New) {
         eventArgs = GetNewPortArgs (args);
     } else if (args.ChangeType == JackSharp.Events.ChangeType.Deleted) {
         if (!TryGetOldPortArgs (args, out eventArgs)) {
             return;
         }
     } else if (args.ChangeType == JackSharp.Events.ChangeType.Renamed) {
         JackPort oldPort = PortMapper.FirstOrDefault (map => map.PortReference == args.Port);
         if (oldPort == null) {
             // Cannot find it, treat is as new
             eventArgs = GetNewPortArgs (args);
         } else {
             eventArgs = GetRenamedPortArgs (args, oldPort);
         }
     }
     if (PortOrConnectionHasChanged != null && eventArgs != null) {
         PortOrConnectionHasChanged (null, eventArgs);
     }
 }
Ejemplo n.º 3
0
 static ConnectionEventArgs GetNewPortArgs(PortRegistrationEventArgs args)
 {
     ConnectionEventArgs eventArgs = new ConnectionEventArgs {
         MessageType = MessageType.Change
     };
     var newPort = AddNewJackPort (args.Port);
     eventArgs.Message = "New port registered.";
     eventArgs.ChangeType = ChangeType.New;
     List<IConnectable> clients = new List<IConnectable> ();
     Client newClient = new Client (newPort.ClientName, newPort.FlowDirection, newPort.ConnectionType);
     eventArgs.ConnectionType = newClient.ConnectionType;
     newClient.AddPort (newPort);
     clients.Add (newClient);
     eventArgs.Connectables = clients;
     return eventArgs;
 }
Ejemplo n.º 4
0
 static ConnectionEventArgs GetRenamedPortArgs(PortRegistrationEventArgs args, JackPort oldPort)
 {
     ConnectionEventArgs eventArgs = new ConnectionEventArgs {
         MessageType = MessageType.Change
     };
     PortMapper.Remove (oldPort);
     JackPort port = AddNewJackPort (args.Port);
     eventArgs.Connectables = new List<Port> { port };
     eventArgs.ChangeType = ChangeType.Content;
     eventArgs.ConnectionType = port.ConnectionType;
     eventArgs.Message = "Port renamed.";
     return eventArgs;
 }
Ejemplo n.º 5
0
 public void PortChanged(object sender, PortRegistrationEventArgs e)
 {
     switch (e.ChangeType) {
     case ChangeType.New:
         _ports.Add (e.Port);
         PortsFound++;
         if (e.Port.IsPhysicalPort) {
             PhysicalPortsFound++;
         }
         break;
     case ChangeType.Deleted:
         _ports.Remove (e.Port);
         PortsFound--;
         if (e.Port.IsPhysicalPort) {
             PhysicalPortsFound--;
         }
         break;
     }
 }