From 6c5fb486e89965c6f89ea62242a589741ccd9fa6 Mon Sep 17 00:00:00 2001 From: Darien Campbell Date: Mon, 22 Aug 2022 14:32:48 -0400 Subject: [PATCH] Add overloaded convert method with an outputStream Add a second constructor for the convert method to allow for giving an existing output stream so LionRay's output can be used by another Java class without a file being generated --- src/main/java/LionRay.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/LionRay.java b/src/main/java/LionRay.java index e7a53fd..44c2592 100644 --- a/src/main/java/LionRay.java +++ b/src/main/java/LionRay.java @@ -53,11 +53,10 @@ public static void main(String[] args) throws Exception { } } - public static void convert(String inputFilename, String outputFilename, boolean dfpwmNew) throws UnsupportedAudioFileException, IOException { + public static void convert(String inputFilename, BufferedOutputStream outputStream, boolean dfpwmNew) throws UnsupportedAudioFileException, IOException { AudioFormat convertFormat = new AudioFormat(AudioFormat.Encoding.PCM_SIGNED, sampleRate, 8, 1, 1, sampleRate, false); AudioInputStream unconverted = AudioSystem.getAudioInputStream(new File(inputFilename)); AudioInputStream inFile = AudioSystem.getAudioInputStream(convertFormat, unconverted); - BufferedOutputStream outFile = new BufferedOutputStream(new FileOutputStream(outputFilename)); byte[] readBuffer = new byte[1024]; byte[] outBuffer = new byte[readBuffer.length / 8]; @@ -72,9 +71,14 @@ public static void convert(String inputFilename, String outputFilename, boolean } read &= ~0x07; converter.compress(outBuffer, readBuffer, 0, 0, read / 8); - outFile.write(outBuffer, 0, read / 8); + outputStream.write(outBuffer, 0, read / 8); } while(read == readBuffer.length); - outFile.close(); + } + + public static void convert(String inputFilename, String outputFilename, boolean dfpwmNew) throws UnsupportedAudioFileException, IOException { + BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(outputFilename)); + convert(inputFilename, outputStream, dfpwmNew); + outputStream.close(); } public static JTextField textInputFile, textOutputFile;