Example #1
0
 public AlsaMidiInput(AlsaSequencer seq, AlsaMidiPortDetails appPort, AlsaMidiPortDetails sourcePort)
 {
     this.seq  = seq;
     this.port = appPort;
     byte [] buffer = new byte [0x200];
     seq.StartListening(port.PortInfo.Port, buffer, (buf, start, len) => {
         var args = new MidiReceivedEventArgs()
         {
             Data = buf, Start = start, Length = len, Timestamp = 0
         };
         MessageReceived(this, args);
     });
 }
Example #2
0
            public override IMidiInput CreateVirtualOutputReceiver(PortCreatorContext context)
            {
                var seq        = new AlsaSequencer(AlsaIOType.Duplex, AlsaIOMode.NonBlocking);
                var portNumber = seq.CreateSimplePort(
                    context.PortName ?? "managed-midi virtual out",
                    AlsaMidiAccess.virtual_output_connected_cap,
                    AlsaMidiAccess.midi_port_type);

                seq.SetClientName(context.ApplicationName ?? "managed-midi output port creator");
                var port    = seq.GetPort(seq.CurrentClientId, portNumber);
                var details = new AlsaMidiPortDetails(port);

                return(new SimpleVirtualMidiInput(details, () => seq.DeleteSimplePort(portNumber)));
            }
Example #3
0
            public override IMidiOutput CreateVirtualInputSender(PortCreatorContext context)
            {
                var seq        = new AlsaSequencer(AlsaIOType.Duplex, AlsaIOMode.NonBlocking);
                var portNumber = seq.CreateSimplePort(
                    context.PortName ?? "managed-midi virtual in",
                    AlsaMidiAccess.virtual_input_connected_cap,
                    AlsaMidiAccess.midi_port_type);

                seq.SetClientName(context.ApplicationName ?? "managed-midi input port creator");
                var          port    = seq.GetPort(seq.CurrentClientId, portNumber);
                var          details = new AlsaMidiPortDetails(port);
                SendDelegate send    = (buffer, start, length, timestamp) =>
                                       seq.Send(portNumber, buffer, start, length);

                return(new SimpleVirtualMidiOutput(details, () => seq.DeleteSimplePort(portNumber))
                {
                    OnSend = send
                });
            }
Example #4
0
 public AlsaMidiOutput(AlsaSequencer seq, AlsaMidiPortDetails port)
 {
     this.seq  = seq;
     this.port = port;
 }
Example #5
0
 public AlsaMidiOutput(AlsaSequencer seq, AlsaMidiPortDetails appPort, AlsaMidiPortDetails targetPort)
 {
     this.seq  = seq;
     this.port = appPort;
 }