예제 #1
0
 public void SubscribeUnsubscribePort()
 {
     using (var seq = new AlsaSequencer(AlsaIOType.Input, AlsaIOMode.NonBlocking)) {
         var subs = new AlsaPortSubscription();
         subs.Sender.Client      = AlsaSequencer.ClientSystem;
         subs.Sender.Port        = AlsaPortInfo.PortSystemAnnouncement;
         subs.Destination.Client = (byte)seq.CurrentClientId;
         subs.Destination.Port   = (byte)seq.CreateSimplePort("test in port", AlsaPortCapabilities.SubsRead | AlsaPortCapabilities.Read, AlsaPortType.MidiGeneric | AlsaPortType.Application);
         try {
             seq.SubscribePort(subs);
             foreach (var ppi in subs.GetType().GetProperties())
             {
                 TextWriter.Null.WriteLine($"    [{ppi}]\t{ppi.GetValue (subs)}");
             }
             seq.UnsubscribePort(subs);
         } finally {
             seq.DeleteSimplePort(subs.Destination.Port);
         }
     }
 }