mirror of
https://github.com/moonlight-stream/moonlight-embedded.git
synced 2026-04-04 23:16:06 +00:00
Cleanup code
This commit is contained in:
@@ -36,8 +36,8 @@
|
||||
<target name="build" depends="compile-native, compile-common, compile-java"/>
|
||||
|
||||
<target name="compile-native">
|
||||
<exec executable="./build.sh" dir="/home/iwan/Development/limelight/limelight-pi/jni/nv_omx_dec/"/>
|
||||
<exec executable="./build.sh" dir="/home/iwan/Development/limelight/limelight-pi/jni/nv_opus_dec/"/>
|
||||
<exec executable="./build.sh" dir="${libs.omx.dir}"/>
|
||||
<exec executable="./build.sh" dir="${libs.opus.dir}"/>
|
||||
</target>
|
||||
|
||||
<target name="compile-java" depends="init">
|
||||
|
||||
@@ -2,7 +2,6 @@ package com.limelight;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.limelight.binding.LibraryHelper;
|
||||
import com.limelight.binding.PlatformBinding;
|
||||
import com.limelight.input.EvdevHandler;
|
||||
import com.limelight.nvstream.NvConnection;
|
||||
@@ -19,10 +18,10 @@ import java.util.List;
|
||||
import org.xmlpull.v1.XmlPullParserException;
|
||||
|
||||
/**
|
||||
* Main class for Limelight-pc contains methods for starting the application as well
|
||||
* as the stream to the host pc.
|
||||
* Main class for Limelight-pi
|
||||
* @author Diego Waxemberg<br>
|
||||
* Cameron Gutman
|
||||
* Iwan Timmer
|
||||
*/
|
||||
public class Limelight implements NvConnectionListener {
|
||||
public static final double VERSION = 1.0;
|
||||
@@ -64,6 +63,9 @@ public class Limelight implements NvConnectionListener {
|
||||
PlatformBinding.getVideoDecoderRenderer());
|
||||
}
|
||||
|
||||
/**
|
||||
* Pair the device with the host
|
||||
*/
|
||||
private void pair() {
|
||||
String macAddress;
|
||||
try {
|
||||
@@ -110,13 +112,6 @@ public class Limelight implements NvConnectionListener {
|
||||
* @param args unused.
|
||||
*/
|
||||
public static void main(String args[]) {
|
||||
LibraryHelper.prepareNativeLibraries();
|
||||
|
||||
parseCommandLine(args);
|
||||
}
|
||||
|
||||
//TODO: make this less jank
|
||||
private static void parseCommandLine(String[] args) {
|
||||
String host = null;
|
||||
List<String> inputs = new ArrayList<String>();
|
||||
boolean pair = false;
|
||||
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.limelight.binding;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.util.HashSet;
|
||||
|
||||
public class LibraryHelper {
|
||||
private static final HashSet<String> avcDependencies = new HashSet<String>();
|
||||
private static final boolean needsDependencyExtraction;
|
||||
private static final String libraryExtractionFolder;
|
||||
|
||||
private static boolean librariesExtracted = false;
|
||||
|
||||
static {
|
||||
needsDependencyExtraction = System.getProperty("os.name").contains("Windows");
|
||||
libraryExtractionFolder = System.getProperty("java.io.tmpdir", ".");
|
||||
|
||||
// The AVC JNI library itself
|
||||
avcDependencies.add("nv_avc_dec");
|
||||
}
|
||||
|
||||
public static void loadNativeLibrary(String libraryName) {
|
||||
if (librariesExtracted && avcDependencies.contains(libraryName)) {
|
||||
System.load(libraryExtractionFolder + File.separatorChar + System.mapLibraryName(libraryName));
|
||||
}
|
||||
else {
|
||||
System.loadLibrary(libraryName);
|
||||
}
|
||||
}
|
||||
|
||||
public static void prepareNativeLibraries() {
|
||||
if (!needsDependencyExtraction) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
for (String dependency : avcDependencies) {
|
||||
extractNativeLibrary(dependency);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
// This is expected if this code is not running from a JAR
|
||||
return;
|
||||
}
|
||||
|
||||
librariesExtracted = true;
|
||||
}
|
||||
|
||||
private static void extractNativeLibrary(String libraryName) throws IOException {
|
||||
// convert general library name to platform-specific name
|
||||
libraryName = System.mapLibraryName(libraryName);
|
||||
|
||||
InputStream resource = new Object().getClass().getResourceAsStream("/binlib/"+libraryName);
|
||||
if (resource == null) {
|
||||
throw new FileNotFoundException("Unable to find native library in JAR: "+libraryName);
|
||||
}
|
||||
File destination = new File(libraryExtractionFolder+File.separatorChar+libraryName);
|
||||
|
||||
// this will only delete it if it exists, and then create a new file
|
||||
destination.delete();
|
||||
destination.createNewFile();
|
||||
|
||||
// schedule the temporary file to be deleted when the program exits
|
||||
destination.deleteOnExit();
|
||||
|
||||
//this is the janky java 6 way to copy a file
|
||||
FileOutputStream fos = null;
|
||||
try {
|
||||
fos = new FileOutputStream(destination);
|
||||
int read;
|
||||
byte[] readBuffer = new byte[16384];
|
||||
while ((read = resource.read(readBuffer)) != -1) {
|
||||
fos.write(readBuffer, 0, read);
|
||||
}
|
||||
} finally {
|
||||
if (fos != null) {
|
||||
fos.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isRunningFromJar() {
|
||||
String classPath = LibraryHelper.class.getResource("LibraryHelper.class").toString();
|
||||
return classPath.startsWith("jar:");
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,8 @@ import com.limelight.nvstream.av.video.VideoDecoderRenderer;
|
||||
|
||||
/**
|
||||
* Used for platform-specific video/audio bindings.
|
||||
* @author Cameron Gutman
|
||||
* @author Cameron Gutman<br>
|
||||
* Iwan Timmer
|
||||
*/
|
||||
public class PlatformBinding {
|
||||
/**
|
||||
|
||||
@@ -13,7 +13,8 @@ import java.util.LinkedList;
|
||||
|
||||
/**
|
||||
* Audio renderer implementation
|
||||
* @author Cameron Gutman
|
||||
* @author Cameron Gutman<br>
|
||||
* Iwan Timmer
|
||||
*/
|
||||
public class JavaxAudioRenderer implements AudioRenderer {
|
||||
|
||||
|
||||
@@ -1,10 +1,12 @@
|
||||
package com.limelight.binding.video;
|
||||
|
||||
import com.limelight.binding.LibraryHelper;
|
||||
|
||||
/**
|
||||
* JNI Decoder bindings
|
||||
* @author Iwan Timmer
|
||||
*/
|
||||
public class OmxDecoder {
|
||||
static {
|
||||
LibraryHelper.loadNativeLibrary("nv_omx_dec");
|
||||
System.loadLibrary("nv_omx_dec");
|
||||
}
|
||||
|
||||
public static native int init();
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
package com.limelight.input;
|
||||
|
||||
public class Device {
|
||||
private int id;
|
||||
private int numButtons;
|
||||
private int numAxes;
|
||||
|
||||
public Device(int deviceID, int numButtons, int numAxes) {
|
||||
this.id = deviceID;
|
||||
this.numButtons = numButtons;
|
||||
this.numAxes = numAxes;
|
||||
}
|
||||
|
||||
public int getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public int getNumButtons() {
|
||||
return numButtons;
|
||||
}
|
||||
|
||||
public int getNumAxes() {
|
||||
return numAxes;
|
||||
}
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
package com.limelight.input;
|
||||
|
||||
public interface DeviceListener {
|
||||
public void handleButton(Device device, int buttonId, boolean pressed);
|
||||
public void handleAxis(Device device, int axisId, float newValue, float lastValue);
|
||||
}
|
||||
Reference in New Issue
Block a user