diff --git a/CHANGELOG.md b/CHANGELOG.md index 07a148e73..6a00ca8f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,9 @@ ## Next +## Version 9.2.12 (2025-05-18) +* Fix for placeshifter on windows (also added optional logging) + ## Version 9.2.11 (2025-05-15) * SD EPG changes to correct non-syncronized method causing use of old tokens diff --git a/java/sage/Version.java b/java/sage/Version.java index d1884d511..7cee3bca1 100644 --- a/java/sage/Version.java +++ b/java/sage/Version.java @@ -23,7 +23,7 @@ public class Version { public static final byte MAJOR_VERSION = 9; public static final byte MINOR_VERSION = 2; - public static final byte MICRO_VERSION = 11; + public static final byte MICRO_VERSION = 12; public static final String VERSION = MAJOR_VERSION + "." + MINOR_VERSION + "." + MICRO_VERSION + "." + SageConstants.BUILD_VERSION; diff --git a/java/sage/miniclient/DirectX9GFXCMD.java b/java/sage/miniclient/DirectX9GFXCMD.java index 1f7edfef7..82cfe2848 100644 --- a/java/sage/miniclient/DirectX9GFXCMD.java +++ b/java/sage/miniclient/DirectX9GFXCMD.java @@ -15,6 +15,8 @@ */ package sage.miniclient; +import java.nio.Buffer; + /** * * @author Narflex @@ -1227,7 +1229,7 @@ else if (nativeDiffPtr == null) { ImageLoadData ild = new ImageLoadData(); ild.imageLoadBuff = java.nio.ByteBuffer.allocateDirect(width * height * 4); - ild.imageLoadBuff.clear(); + ((Buffer)ild.imageLoadBuff).clear(); ild.imageLoadBuffHandle = imghandle; ild.imageLoadBuffSize = new java.awt.Dimension(width, height); imageLoadBuffMap.put(new Integer(imghandle), ild); @@ -1268,7 +1270,7 @@ else if (nativeDiffPtr == null) } ImageLoadData ild = new ImageLoadData(); ild.imageLoadBuff = java.nio.ByteBuffer.allocateDirect(width * height * 4); - ild.imageLoadBuff.clear(); + ((Buffer)ild.imageLoadBuff).clear(); ild.imageLoadBuffHandle = imghandle; ild.imageLoadBuffSize = new java.awt.Dimension(width, height); imageLoadBuffMap.put(new Integer(imghandle), ild); diff --git a/java/sage/miniclient/MiniClient.java b/java/sage/miniclient/MiniClient.java index 1d8fb8d7c..1d173715e 100644 --- a/java/sage/miniclient/MiniClient.java +++ b/java/sage/miniclient/MiniClient.java @@ -15,6 +15,11 @@ */ package sage.miniclient; +import java.io.BufferedOutputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintStream; + public class MiniClient { public static boolean WINDOWS_OS = false; @@ -24,6 +29,7 @@ public class MiniClient public static boolean fsStartup = false; public static Integer irKillCode = null; public static final String BYTE_CHARSET = "ISO8859_1"; + public static final String redirectLogProp = "write_output_to_miniClient_log"; static { System.out.println("Starting MiniClient"); @@ -145,6 +151,8 @@ public static void startup(String[] args) if(MAC_OS_X) myProperties.setProperty("opengl", "true"); } + java.io.File redirectLog = new java.io.File(configDir, "miniClient.log"); + java.io.PrintStream redir = null; redir = new java.io.PrintStream(new java.io.OutputStream() { @@ -158,8 +166,18 @@ public synchronized void println(String s) } }; - System.setOut(redir); - //System.setErr(redir); + if (myProperties.getProperty(redirectLogProp, "false").equalsIgnoreCase("true")){ + try { + PrintStream printStream = new PrintStream(new BufferedOutputStream(new FileOutputStream(redirectLog)),true); + System.setOut(printStream); + System.setErr(printStream); + } catch (FileNotFoundException ex) { + ex.printStackTrace(); + } + }else{ + System.setOut(redir); + } + mainArgs = args; boolean noretries = false; for (int i = 0; args != null && i < args.length; i++)