From 72d028e4cb1d0409d3a35345e6ff3cfa73597673 Mon Sep 17 00:00:00 2001 From: Vojtech Moravec <vojtech.moravec.st@vsb.cz> Date: Mon, 21 Sep 2020 07:54:49 +0200 Subject: [PATCH] Reporting QoL changes. --- .../compression/CompressorDecompressorBase.java | 9 +++++++-- src/main/java/azgracompress/compression/IListenable.java | 5 +++++ .../java/azgracompress/compression/ImageCompressor.java | 2 +- .../azgracompress/compression/VQImageCompressor.java | 5 ++++- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/azgracompress/compression/CompressorDecompressorBase.java b/src/main/java/azgracompress/compression/CompressorDecompressorBase.java index a833677..0616503 100644 --- a/src/main/java/azgracompress/compression/CompressorDecompressorBase.java +++ b/src/main/java/azgracompress/compression/CompressorDecompressorBase.java @@ -1,10 +1,10 @@ package azgracompress.compression; +import azgracompress.compression.exception.ImageCompressionException; import azgracompress.compression.listeners.IProgressListener; import azgracompress.compression.listeners.IStatusListener; -import azgracompress.io.InputData; -import azgracompress.compression.exception.ImageCompressionException; import azgracompress.huffman.Huffman; +import azgracompress.io.InputData; import azgracompress.io.OutBitStream; import java.io.DataOutputStream; @@ -40,6 +40,11 @@ public abstract class CompressorDecompressorBase { this.progressListeners.add(listener); } + public void clearAllListeners() { + this.statusListeners.clear(); + this.progressListeners.clear(); + } + protected void duplicateAllListeners(IListenable other) { if (other == this) return; diff --git a/src/main/java/azgracompress/compression/IListenable.java b/src/main/java/azgracompress/compression/IListenable.java index 5327d25..6a1f066 100644 --- a/src/main/java/azgracompress/compression/IListenable.java +++ b/src/main/java/azgracompress/compression/IListenable.java @@ -17,4 +17,9 @@ public interface IListenable { * @param listener Progress listener. */ void addProgressListener(IProgressListener listener); + + /** + * Remove all active listeners. + */ + void clearAllListeners(); } diff --git a/src/main/java/azgracompress/compression/ImageCompressor.java b/src/main/java/azgracompress/compression/ImageCompressor.java index 8ef03d2..6951e22 100644 --- a/src/main/java/azgracompress/compression/ImageCompressor.java +++ b/src/main/java/azgracompress/compression/ImageCompressor.java @@ -5,7 +5,6 @@ import azgracompress.compression.exception.ImageCompressionException; import azgracompress.data.Range; import azgracompress.fileformat.QCMPFileHeader; import azgracompress.io.InputData; -import org.scijava.util.ArrayUtils; import java.io.*; import java.util.Arrays; @@ -112,6 +111,7 @@ public class ImageCompressor extends CompressorDecompressorBase { if (imageCompressor == null) { return false; } + duplicateAllListeners(imageCompressor); long[] planeDataSizes = null; diff --git a/src/main/java/azgracompress/compression/VQImageCompressor.java b/src/main/java/azgracompress/compression/VQImageCompressor.java index bdfeb7d..f690819 100644 --- a/src/main/java/azgracompress/compression/VQImageCompressor.java +++ b/src/main/java/azgracompress/compression/VQImageCompressor.java @@ -91,6 +91,7 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm if (!cacheManager.doesVQCacheExists(options.getInputDataInfo().getCacheFileName(), getCodebookSize(), options.getQuantizationVector())) { + reportStatusToListeners("Quantization file doesn't exist"); trainAndSaveCodebook(); } @@ -183,10 +184,11 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm for (final int planeIndex : planeIndices) { stopwatch.restart(); - reportStatusToListeners(String.format("Loading plane %d.", planeIndex)); + final int[][] planeVectors = planeLoader.loadVectorsFromPlaneRange(options, Utils.singlePlaneRange(planeIndex)); + if (!hasGeneralQuantizer) { reportStatusToListeners(String.format("Training vector quantizer from plane %d.", planeIndex)); quantizer = trainVectorQuantizerFromPlaneVectors(planeVectors); @@ -206,6 +208,7 @@ public class VQImageCompressor extends CompressorDecompressorBase implements IIm stopwatch.stop(); if (options.isConsoleApplication()) { + System.out.println("Is console app, whyy"); reportStatusToListeners("Finished compression of plane %d in %s.", planeIndex, stopwatch.getElapsedTimeString()); } else { reportProgressToListeners(planeIndex, planeIndices.length, -- GitLab