From 66a8ad4caa095935e9c2968f9919ad4557fdae7f Mon Sep 17 00:00:00 2001 From: Joacim Breiler Date: Sun, 29 Oct 2023 06:39:11 +0100 Subject: [PATCH] Allow loading mappings from local path --- .../java/com/studiohartman/jamepad/ControllerManager.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/studiohartman/jamepad/ControllerManager.java b/src/main/java/com/studiohartman/jamepad/ControllerManager.java index 360bab0..96fb4cc 100644 --- a/src/main/java/com/studiohartman/jamepad/ControllerManager.java +++ b/src/main/java/com/studiohartman/jamepad/ControllerManager.java @@ -3,6 +3,8 @@ import com.badlogic.gdx.utils.SharedLibraryLoader; import java.io.ByteArrayOutputStream; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; @@ -283,6 +285,7 @@ public boolean update() { public void addMappingsFromFile(String path) throws IOException, IllegalStateException { InputStream source = getClass().getResourceAsStream(path); if(source==null) source = ClassLoader.getSystemResourceAsStream(path); + if(source==null && new File(path).exists()) source = new FileInputStream(path); if(source==null) throw new IOException("Cannot open resource from classpath "+path); if(configuration.loadDatabaseInMemory) { @@ -294,6 +297,7 @@ public void addMappingsFromFile(String path) throws IOException, IllegalStateExc while((read = source.read(data, 0, data.length)) != -1) { buffer.write(data, 0, read); } + source.close(); byte[] b = buffer.toByteArray(); if(!nativeAddMappingsFromBuffer(b, b.length)) {