Skip to content

Commit

Permalink
make linux binary :-)
Browse files Browse the repository at this point in the history
  • Loading branch information
xitiomet committed May 1, 2019
1 parent 4ddb515 commit cff22bd
Show file tree
Hide file tree
Showing 6 changed files with 51 additions and 6 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
dependency-reduced-pom.xml
target/*
*.class
midi-bridge
5 changes: 5 additions & 0 deletions compile.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash
mvn clean
mvn package
cat src/stub.sh target/jack-apple-midi-bridge-1.0-SNAPSHOT.jar > midi-bridge
chmod +x midi-bridge
6 changes: 6 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@
<artifactId>jmdns</artifactId>
<version>3.5.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-cli/commons-cli -->
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
<reporting>
<plugins>
Expand Down
32 changes: 26 additions & 6 deletions src/main/java/org/openstatic/MIDIBridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@
import org.jaudiolibs.jnajack.JackShutdownCallback;
import org.jaudiolibs.jnajack.JackStatus;

import org.apache.commons.cli.*;

public class MIDIBridge implements JackProcessCallback, JackShutdownCallback
{
private final JackClient client;
Expand All @@ -45,25 +47,41 @@ public class MIDIBridge implements JackProcessCallback, JackShutdownCallback
private ConcurrentLinkedQueue<TimedMidiMessage> jackOutputQueue;
private JmDNS jmdns;
private byte[] data;

private CommandLine commandLineOptions;
private BlockingQueue<String> debugQueue;

public static void main(String[] args)
{
try
{
MIDIBridge midiSource = new MIDIBridge();
Options options = new Options();
CommandLineParser parser = new DefaultParser();

options.addOption(new Option("d", "debug", false, "Turn on debug."));
options.addOption(new Option("h", "help", false, "Show command line options and usage."));

CommandLine cmd = parser.parse(options, args);

if (cmd.hasOption("h"))
{
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp( "midi-bridge", options );
System.exit(0);
}

MIDIBridge midiSource = new MIDIBridge(cmd);
while (true)
{
Thread.sleep(100000);
}
} catch (Exception ex) {
Logger.getLogger(MIDIBridge.class.getName()).log(Level.SEVERE, null, ex);

}
}

private MIDIBridge() throws JackException
private MIDIBridge(CommandLine cmdLine) throws JackException
{
this.commandLineOptions = cmdLine;
Runtime.getRuntime().addShutdownHook(new Thread()
{
public void run()
Expand Down Expand Up @@ -116,7 +134,8 @@ protected void onMidiMessage(final MidiMessage message, final long timestamp)
if (message != null)
{
int ts = (int) (frameTime % 1024);
//System.err.println("RTP Recieved Midi Event ts" + String.valueOf(ts) + " / " + String.valueOf(timestamp) + " Data:" + midiDataToString(message.getData()));
if (MIDIBridge.this.commandLineOptions.hasOption("d"))
System.err.println("RTP Recieved Midi Event tick=" + String.valueOf(ts) + " Data:" + midiDataToString(message.getData()));
MIDIBridge.this.jackOutputQueue.add(new TimedMidiMessage(message, ts));
}
} catch (JackException je) {
Expand Down Expand Up @@ -188,7 +207,8 @@ public boolean process(JackClient client, int nframes)
final int tickTs = (int) client.getLastFrameTime() % 1024;
MidiMessage m = new TimedMidiMessage(data, size, tickTs);
this.session.sendMidiMessage(m, tickTs);
//System.err.println("JACK Recieved Midi Event ts" + String.valueOf(midiEvent.time()) + " Data:" + midiDataToString(data) + " length:" + String.valueOf(midiEvent.size()));
if (MIDIBridge.this.commandLineOptions.hasOption("d"))
System.err.println("JACK Recieved Midi Event tick=" + String.valueOf(tickTs) + " Data:" + midiDataToString(data));
}

// Read Events from AppleMidi Queue and write to jack with frame time
Expand Down
10 changes: 10 additions & 0 deletions src/stub.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh
MYSELF=`which "$0" 2>/dev/null`
[ $? -gt 0 -a -f "$0" ] && MYSELF="./$0"
java=java
if test -n "$JAVA_HOME"; then
java="$JAVA_HOME/bin/java"
fi
exec "$java" $java_args -jar $MYSELF "$@"
exit 1

3 changes: 3 additions & 0 deletions test-run.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash
mvn package
java -jar target/jack-apple-midi-bridge-1.0-SNAPSHOT.jar

0 comments on commit cff22bd

Please sign in to comment.