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); }); }
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))); }
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 }); }
public AlsaMidiOutput(AlsaSequencer seq, AlsaMidiPortDetails port) { this.seq = seq; this.port = port; }
public AlsaMidiOutput(AlsaSequencer seq, AlsaMidiPortDetails appPort, AlsaMidiPortDetails targetPort) { this.seq = seq; this.port = appPort; }