diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
new file mode 100644
index 0000000..6d50cd4
--- /dev/null
+++ b/.idea/uiDesigner.xml
@@ -0,0 +1,124 @@
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+ -
+
+
+
+
+ -
+
+
+ -
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 86b5654..ea6ca2d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -5,130 +5,147 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
+
-
-
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -174,9 +191,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
@@ -235,6 +276,15 @@
+
+
+
+
+
+
+
+
+
@@ -317,6 +367,7 @@
+
@@ -337,11 +388,15 @@
1727983986841
-
+
+
+
+
+
\ No newline at end of file
diff --git a/api/src/main/java/com/github/gtache/autosubtitle/ToolType.java b/api/src/main/java/com/github/gtache/autosubtitle/ToolType.java
index c2ec2b9..afa7243 100644
--- a/api/src/main/java/com/github/gtache/autosubtitle/ToolType.java
+++ b/api/src/main/java/com/github/gtache/autosubtitle/ToolType.java
@@ -4,10 +4,6 @@ package com.github.gtache.autosubtitle;
* Type of a tool
*/
public enum ToolType {
- /**
- * The video converter (used to add subtitles)
- */
- VIDEO_CONVERTER,
/**
* The subtitle extractor (used to extract subtitles from a video)
*/
@@ -15,5 +11,13 @@ public enum ToolType {
/**
* The subtitle translator (used to translate subtitles from one language to another)
*/
- TRANSLATOR
+ TRANSLATOR,
+ /**
+ * The video converter (used to add subtitles)
+ */
+ VIDEO_CONVERTER,
+ /**
+ * The video loader (used to load videos)w
+ */
+ VIDEO_LOADER
}
diff --git a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaBundledPath.java b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaBundledPath.java
index d3dd0fc..eb7960e 100644
--- a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaBundledPath.java
+++ b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaBundledPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.conda;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaInstallerPath.java b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaInstallerPath.java
index 6a536d8..159ea7e 100644
--- a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaInstallerPath.java
+++ b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaInstallerPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.conda;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMajorVersion.java b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMajorVersion.java
index b391b1e..ad342d3 100644
--- a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMajorVersion.java
+++ b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMajorVersion.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.conda;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMinorVersion.java b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMinorVersion.java
index 857f5a2..ca7eac0 100644
--- a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMinorVersion.java
+++ b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaMinimumMinorVersion.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.conda;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaRootPath.java b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaRootPath.java
index 1ce8230..6b5b47d 100644
--- a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaRootPath.java
+++ b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaRootPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.conda;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaSystemPath.java b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaSystemPath.java
index a0ab21c..0b89831 100644
--- a/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaSystemPath.java
+++ b/conda/src/main/java/com/github/gtache/autosubtitle/modules/setup/conda/CondaSystemPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.conda;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/conda/src/main/java/com/github/gtache/autosubtitle/setup/conda/CondaSetupManager.java b/conda/src/main/java/com/github/gtache/autosubtitle/setup/conda/CondaSetupManager.java
index 9946c39..ec76828 100644
--- a/conda/src/main/java/com/github/gtache/autosubtitle/setup/conda/CondaSetupManager.java
+++ b/conda/src/main/java/com/github/gtache/autosubtitle/setup/conda/CondaSetupManager.java
@@ -6,11 +6,13 @@ import com.github.gtache.autosubtitle.process.ProcessRunner;
import com.github.gtache.autosubtitle.setup.SetupException;
import com.github.gtache.autosubtitle.setup.SetupStatus;
import com.github.gtache.autosubtitle.setup.impl.AbstractSetupManager;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import javax.inject.Inject;
import javax.inject.Singleton;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import java.io.IOException;
import java.net.http.HttpClient;
import java.nio.file.Files;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ArchiverProviderImpl.java b/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ArchiverProviderImpl.java
index a076228..4d835b9 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ArchiverProviderImpl.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ArchiverProviderImpl.java
@@ -5,6 +5,7 @@ import com.github.gtache.autosubtitle.archive.Archiver;
import com.github.gtache.autosubtitle.archive.ArchiverProvider;
import javax.inject.Inject;
+
import java.util.Collection;
import java.util.Map;
import java.util.stream.Collectors;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ZipArchiver.java b/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ZipArchiver.java
index af6d04c..22e8db4 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ZipArchiver.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/archive/impl/ZipArchiver.java
@@ -3,6 +3,7 @@ package com.github.gtache.autosubtitle.archive.impl;
import com.github.gtache.autosubtitle.archive.Archiver;
import javax.inject.Inject;
+
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/CoreModule.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/CoreModule.java
index b5589c2..e284dab 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/CoreModule.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/CoreModule.java
@@ -13,6 +13,7 @@ import dagger.Module;
import dagger.Provides;
import javax.inject.Singleton;
+
import java.util.prefs.Preferences;
/**
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/ExecutableExtension.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/ExecutableExtension.java
index 738916e..13b684d 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/ExecutableExtension.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/ExecutableExtension.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontName.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontName.java
index 484b3b6..fbe0070 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontName.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontName.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontSize.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontSize.java
index 89898a4..63fe684 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontSize.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/FontSize.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLineLength.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLineLength.java
index ca32f2a..a6f3c57 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLineLength.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLineLength.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLines.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLines.java
index 8e2c5aa..800571b 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLines.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/MaxLines.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/ToolTypeKey.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/ToolTypeKey.java
new file mode 100644
index 0000000..28bd64f
--- /dev/null
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/impl/ToolTypeKey.java
@@ -0,0 +1,16 @@
+package com.github.gtache.autosubtitle.modules.impl;
+
+import com.github.gtache.autosubtitle.ToolType;
+import dagger.MapKey;
+
+/**
+ * Used for injection
+ */
+@MapKey
+public @interface ToolTypeKey {
+
+ /**
+ * @return the tool type
+ */
+ ToolType value();
+}
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/CacheRoot.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/CacheRoot.java
index e454127..77b972d 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/CacheRoot.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/CacheRoot.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SetupModule.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SetupModule.java
index 5fbee4a..b677a52 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SetupModule.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SetupModule.java
@@ -36,6 +36,7 @@ public final class SetupModule {
return HttpClient.newHttpClient();
}
+
@Provides
static Map> providesSetupManagers(@VideoConverterSetup final Map convertersManagers,
@SubtitleExtractorSetup final Map extractorsManagers,
@@ -44,13 +45,4 @@ public final class SetupModule {
ToolType.SUBTITLE_EXTRACTOR, extractorsManagers,
ToolType.TRANSLATOR, translatorsManagers);
}
-
- @Provides
- static Map providesDefaultManagers(@VideoConverterSetup final SetupManager videoConverterManager,
- @SubtitleExtractorSetup final SetupManager subtitleExtractorManager,
- @TranslatorSetup final SetupManager translatorManager) {
- return Map.of(ToolType.VIDEO_CONVERTER, videoConverterManager,
- ToolType.SUBTITLE_EXTRACTOR, subtitleExtractorManager,
- ToolType.TRANSLATOR, translatorManager);
- }
}
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SubtitleExtractorSetup.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SubtitleExtractorSetup.java
index 02d18b9..681fe82 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SubtitleExtractorSetup.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/SubtitleExtractorSetup.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/ToolsRoot.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/ToolsRoot.java
index 5fb97fe..1588d0b 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/ToolsRoot.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/ToolsRoot.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/TranslatorSetup.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/TranslatorSetup.java
index 026bd9f..95619cb 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/TranslatorSetup.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/TranslatorSetup.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/VideoConverterSetup.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/VideoConverterSetup.java
index 448ab49..7b91d1a 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/VideoConverterSetup.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/VideoConverterSetup.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/VideoLoaderSetup.java b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/VideoLoaderSetup.java
new file mode 100644
index 0000000..6a96925
--- /dev/null
+++ b/core/src/main/java/com/github/gtache/autosubtitle/modules/setup/impl/VideoLoaderSetup.java
@@ -0,0 +1,16 @@
+package com.github.gtache.autosubtitle.modules.setup.impl;
+
+import javax.inject.Qualifier;
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@Qualifier
+@Documented
+@Retention(RUNTIME)
+@Target({ElementType.PARAMETER, ElementType.METHOD, ElementType.FIELD})
+public @interface VideoLoaderSetup {
+}
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/process/impl/ProcessRunnerImpl.java b/core/src/main/java/com/github/gtache/autosubtitle/process/impl/ProcessRunnerImpl.java
index d51b474..b64eac4 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/process/impl/ProcessRunnerImpl.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/process/impl/ProcessRunnerImpl.java
@@ -3,10 +3,12 @@ package com.github.gtache.autosubtitle.process.impl;
import com.github.gtache.autosubtitle.process.ProcessListener;
import com.github.gtache.autosubtitle.process.ProcessResult;
import com.github.gtache.autosubtitle.process.ProcessRunner;
+
+import javax.inject.Inject;
+
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import javax.inject.Inject;
import java.io.IOException;
import java.time.Duration;
import java.util.List;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/ASSSubtitleConverter.java b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/ASSSubtitleConverter.java
index 601ce29..63c50f0 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/ASSSubtitleConverter.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/ASSSubtitleConverter.java
@@ -14,6 +14,7 @@ import com.github.gtache.autosubtitle.subtitle.impl.SubtitleImpl;
import com.github.gtache.autosubtitle.translation.Translator;
import javax.inject.Inject;
+
import java.util.Arrays;
import java.util.Collection;
import java.util.Comparator;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SRTSubtitleConverter.java b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SRTSubtitleConverter.java
index 451dc2a..8d94eea 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SRTSubtitleConverter.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SRTSubtitleConverter.java
@@ -13,12 +13,11 @@ import com.github.gtache.autosubtitle.translation.Translator;
import javax.inject.Inject;
import java.util.Arrays;
import java.util.Comparator;
+import java.util.Map;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
-import static java.util.Objects.requireNonNull;
-
/**
* Converts subtitles to SRT format
*/
@@ -27,11 +26,11 @@ public class SRTSubtitleConverter implements SubtitleConverter {
private static final Pattern ARROW_PATTERN = Pattern.compile(" --> ");
private static final Pattern DOUBLE_NEWLINE_PATTERN = Pattern.compile("\n\n");
- private final Translator> translator;
+ private final Map> translators;
@Inject
- SRTSubtitleConverter(final Translator translator) {
- this.translator = requireNonNull(translator);
+ SRTSubtitleConverter(final Map> translators) {
+ this.translators = Map.copyOf(translators);
}
@Override
@@ -61,7 +60,7 @@ public class SRTSubtitleConverter implements SubtitleConverter {
return new SubtitleImpl(text, start, end, null, null);
}).toList();
final var text = subtitles.stream().map(Subtitle::content).collect(Collectors.joining(" "));
- return new SubtitleCollectionImpl<>(text, subtitles, translator.getLanguage(text));
+ return new SubtitleCollectionImpl<>(text, subtitles, translators.values().iterator().next().getLanguage(text)); //Use any translator for now
} catch (final Exception e) {
throw new ParseException(e);
}
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SubtitleConverterProviderImpl.java b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SubtitleConverterProviderImpl.java
index 39660fc..adc8a21 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SubtitleConverterProviderImpl.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/impl/SubtitleConverterProviderImpl.java
@@ -4,6 +4,7 @@ import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverter;
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverterProvider;
import javax.inject.Inject;
+
import java.util.Collection;
import java.util.Map;
import java.util.stream.Collectors;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/JSONSubtitleConverter.java b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/JSONSubtitleConverter.java
index afae575..c900e63 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/JSONSubtitleConverter.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/JSONSubtitleConverter.java
@@ -14,6 +14,7 @@ import com.github.gtache.autosubtitle.subtitle.impl.SubtitleImpl;
import javax.inject.Inject;
import javax.inject.Singleton;
+
import java.nio.file.Path;
import java.util.Comparator;
import java.util.Objects;
diff --git a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/impl/SubtitleImporterExporterImpl.java b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/impl/SubtitleImporterExporterImpl.java
index 74a2151..ee00c12 100644
--- a/core/src/main/java/com/github/gtache/autosubtitle/subtitle/impl/SubtitleImporterExporterImpl.java
+++ b/core/src/main/java/com/github/gtache/autosubtitle/subtitle/impl/SubtitleImporterExporterImpl.java
@@ -11,10 +11,12 @@ import com.github.gtache.autosubtitle.subtitle.converter.FormatException;
import com.github.gtache.autosubtitle.subtitle.converter.ParseException;
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverter;
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverterProvider;
+
+import javax.inject.Inject;
+
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import javax.inject.Inject;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
diff --git a/core/src/test/java/com/github/gtache/autosubtitle/modules/setup/impl/TestSetupModule.java b/core/src/test/java/com/github/gtache/autosubtitle/modules/setup/impl/TestSetupModule.java
index 632de07..78a1235 100644
--- a/core/src/test/java/com/github/gtache/autosubtitle/modules/setup/impl/TestSetupModule.java
+++ b/core/src/test/java/com/github/gtache/autosubtitle/modules/setup/impl/TestSetupModule.java
@@ -1,12 +1,16 @@
package com.github.gtache.autosubtitle.modules.setup.impl;
+import com.github.gtache.autosubtitle.ToolType;
+import com.github.gtache.autosubtitle.setup.SetupManager;
import org.junit.jupiter.api.Test;
import java.net.http.HttpClient;
import java.nio.file.Paths;
+import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertInstanceOf;
+import static org.mockito.Mockito.mock;
class TestSetupModule {
@@ -24,4 +28,17 @@ class TestSetupModule {
void testHttpClient() {
assertInstanceOf(HttpClient.class, SetupModule.providesHttpClient());
}
+
+ @Test
+ void testSetupManagers() {
+ final var videoConverters = Map.of("test", mock(SetupManager.class));
+ final var subtitleExtractors = Map.of("test1", mock(SetupManager.class));
+ final var translators = Map.of("test2", mock(SetupManager.class));
+
+ final var expected = Map.of(ToolType.VIDEO_CONVERTER, videoConverters,
+ ToolType.SUBTITLE_EXTRACTOR, subtitleExtractors,
+ ToolType.TRANSLATOR, translators);
+
+ assertEquals(expected, SetupModule.providesSetupManagers(videoConverters, subtitleExtractors, translators));
+ }
}
diff --git a/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/impl/TestSRTSubtitleConverter.java b/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/impl/TestSRTSubtitleConverter.java
index d7f040c..1ee4fc6 100644
--- a/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/impl/TestSRTSubtitleConverter.java
+++ b/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/impl/TestSRTSubtitleConverter.java
@@ -1,7 +1,6 @@
package com.github.gtache.autosubtitle.subtitle.converter.impl;
import com.github.gtache.autosubtitle.Language;
-import com.github.gtache.autosubtitle.subtitle.Subtitle;
import com.github.gtache.autosubtitle.subtitle.converter.FormatOptions;
import com.github.gtache.autosubtitle.subtitle.converter.ParseException;
import com.github.gtache.autosubtitle.subtitle.converter.ParseOptions;
@@ -15,6 +14,7 @@ import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.Arrays;
+import java.util.Map;
import java.util.Objects;
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -25,19 +25,20 @@ import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
class TestSRTSubtitleConverter {
- private final Translator translator;
+ private final Translator> translator;
private final Language language;
private final FormatOptions formatOptions;
private final ParseOptions parseOptions;
private final SRTSubtitleConverter converter;
- TestSRTSubtitleConverter(@Mock final Translator translator, @Mock final Language language,
+ TestSRTSubtitleConverter(@Mock final Translator> translator, @Mock final Language language,
@Mock final FormatOptions formatOptions, @Mock final ParseOptions parseOptions) {
this.translator = Objects.requireNonNull(translator);
this.language = Objects.requireNonNull(language);
this.formatOptions = Objects.requireNonNull(formatOptions);
this.parseOptions = Objects.requireNonNull(parseOptions);
- this.converter = new SRTSubtitleConverter(translator);
+ final var translators = Map.>of("first", translator);
+ this.converter = new SRTSubtitleConverter(translators);
}
@BeforeEach
diff --git a/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/TestJSONSubtitleConverter.java b/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/TestJSONSubtitleConverter.java
index ef1e1a4..7f47db0 100644
--- a/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/TestJSONSubtitleConverter.java
+++ b/core/src/test/java/com/github/gtache/autosubtitle/subtitle/converter/json/impl/TestJSONSubtitleConverter.java
@@ -1,5 +1,6 @@
package com.github.gtache.autosubtitle.subtitle.converter.json.impl;
+import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.github.gtache.autosubtitle.Language;
import com.github.gtache.autosubtitle.subtitle.Subtitle;
@@ -24,6 +25,10 @@ import java.util.List;
import java.util.Objects;
import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
@ExtendWith(MockitoExtension.class)
@@ -65,6 +70,22 @@ class TestJSONSubtitleConverter {
}
}
+ @Test
+ void testFormatError() throws JsonProcessingException {
+ final var faultyMapper = mock(ObjectMapper.class);
+ when(faultyMapper.writeValueAsString(any())).thenThrow(JsonProcessingException.class);
+ final var faultyConverter = new JSONSubtitleConverter(faultyMapper);
+ assertThrows(FormatException.class, () -> faultyConverter.format(new SubtitleCollectionImpl<>("test", List.of(), Language.FR), formatOptions));
+ }
+
+ @Test
+ void testParseError() throws JsonProcessingException {
+ final var faultyMapper = mock(ObjectMapper.class);
+ when(faultyMapper.readValue(anyString(), any(Class.class))).thenThrow(JsonProcessingException.class);
+ final var faultyConverter = new JSONSubtitleConverter(faultyMapper);
+ assertThrows(ParseException.class, () -> faultyConverter.parse("{}", parseOptions));
+ }
+
@ParameterizedTest
@CsvSource({
"test.json,true",
diff --git a/deepl/src/main/java/com/github/gtache/autosubtitle/modules/deepl/DeepLModule.java b/deepl/src/main/java/com/github/gtache/autosubtitle/modules/deepl/DeepLModule.java
index 30297c2..7d6e1ee 100644
--- a/deepl/src/main/java/com/github/gtache/autosubtitle/modules/deepl/DeepLModule.java
+++ b/deepl/src/main/java/com/github/gtache/autosubtitle/modules/deepl/DeepLModule.java
@@ -1,5 +1,7 @@
package com.github.gtache.autosubtitle.modules.deepl;
+import com.github.gtache.autosubtitle.ToolType;
+import com.github.gtache.autosubtitle.modules.impl.ToolTypeKey;
import com.github.gtache.autosubtitle.modules.setup.deepl.DeepLSetupModule;
import com.github.gtache.autosubtitle.translation.Translator;
import com.github.gtache.autosubtitle.translation.deepl.DeepLTranslator;
@@ -25,8 +27,12 @@ public abstract class DeepLModule {
@StringKey("deepl")
abstract Translator> bindsTranslatorInMap(final DeepLTranslator translator);
- @Binds
- abstract Translator bindsTranslator(final DeepLTranslator translator);
+ @Provides
+ @IntoMap
+ @ToolTypeKey(ToolType.TRANSLATOR)
+ static String providesDefaultTranslator() {
+ return "deepl";
+ }
@Provides
@Singleton
diff --git a/deepl/src/main/java/com/github/gtache/autosubtitle/setup/deepl/DeepLSetupManager.java b/deepl/src/main/java/com/github/gtache/autosubtitle/setup/deepl/DeepLSetupManager.java
index ddd2646..d45c055 100644
--- a/deepl/src/main/java/com/github/gtache/autosubtitle/setup/deepl/DeepLSetupManager.java
+++ b/deepl/src/main/java/com/github/gtache/autosubtitle/setup/deepl/DeepLSetupManager.java
@@ -10,6 +10,7 @@ import com.github.gtache.autosubtitle.setup.impl.AbstractSetupManager;
import javax.inject.Inject;
import javax.inject.Singleton;
+
import java.net.http.HttpClient;
import java.util.Objects;
import java.util.prefs.BackingStoreException;
diff --git a/deepl/src/main/java/com/github/gtache/autosubtitle/translation/deepl/DeepLTranslator.java b/deepl/src/main/java/com/github/gtache/autosubtitle/translation/deepl/DeepLTranslator.java
index 87c5b5e..eccb7bd 100644
--- a/deepl/src/main/java/com/github/gtache/autosubtitle/translation/deepl/DeepLTranslator.java
+++ b/deepl/src/main/java/com/github/gtache/autosubtitle/translation/deepl/DeepLTranslator.java
@@ -9,9 +9,11 @@ import com.github.gtache.autosubtitle.subtitle.impl.SubtitleCollectionImpl;
import com.github.gtache.autosubtitle.subtitle.impl.SubtitleImpl;
import com.github.gtache.autosubtitle.translation.TranslationException;
import com.github.gtache.autosubtitle.translation.Translator;
-import org.apache.tika.language.detect.LanguageDetector;
import javax.inject.Inject;
+
+import org.apache.tika.language.detect.LanguageDetector;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/TarArchiver.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/TarArchiver.java
index 4bf6261..75a024f 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/TarArchiver.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/TarArchiver.java
@@ -1,10 +1,12 @@
package com.github.gtache.autosubtitle.archive.ffmpeg;
import com.github.gtache.autosubtitle.archive.Archiver;
+
+import javax.inject.Inject;
+
import org.apache.commons.compress.archivers.ArchiveEntry;
import org.apache.commons.compress.archivers.tar.TarArchiveInputStream;
-import javax.inject.Inject;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/XZArchiver.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/XZArchiver.java
index eab2017..9433ffe 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/XZArchiver.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/archive/ffmpeg/XZArchiver.java
@@ -1,9 +1,11 @@
package com.github.gtache.autosubtitle.archive.ffmpeg;
import com.github.gtache.autosubtitle.archive.Archiver;
-import org.tukaani.xz.XZInputStream;
import javax.inject.Inject;
+
+import org.tukaani.xz.XZInputStream;
+
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFmpegVideoConverter.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFmpegVideoConverter.java
index f27db60..c728ac2 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFmpegVideoConverter.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFmpegVideoConverter.java
@@ -15,10 +15,12 @@ import com.github.gtache.autosubtitle.subtitle.SubtitleCollection;
import com.github.gtache.autosubtitle.subtitle.converter.FormatException;
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverter;
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverterProvider;
+
+import javax.inject.Inject;
+
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import javax.inject.Inject;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFprobeVideoLoader.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFprobeVideoLoader.java
index 05a029d..0ee711f 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFprobeVideoLoader.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/ffmpeg/FFprobeVideoLoader.java
@@ -9,6 +9,7 @@ import com.github.gtache.autosubtitle.modules.setup.ffmpeg.FFprobeSystemPath;
import com.github.gtache.autosubtitle.process.ProcessRunner;
import javax.inject.Inject;
+
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/ffmpeg/FFmpegModule.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/ffmpeg/FFmpegModule.java
index 783b094..6941aa4 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/ffmpeg/FFmpegModule.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/ffmpeg/FFmpegModule.java
@@ -1,12 +1,15 @@
package com.github.gtache.autosubtitle.modules.ffmpeg;
+import com.github.gtache.autosubtitle.ToolType;
import com.github.gtache.autosubtitle.VideoConverter;
import com.github.gtache.autosubtitle.VideoLoader;
import com.github.gtache.autosubtitle.ffmpeg.FFmpegVideoConverter;
import com.github.gtache.autosubtitle.ffmpeg.FFprobeVideoLoader;
+import com.github.gtache.autosubtitle.modules.impl.ToolTypeKey;
import com.github.gtache.autosubtitle.modules.setup.ffmpeg.FFmpegSetupModule;
import dagger.Binds;
import dagger.Module;
+import dagger.Provides;
import dagger.multibindings.IntoMap;
import dagger.multibindings.StringKey;
@@ -25,14 +28,22 @@ public abstract class FFmpegModule {
@StringKey("ffmpeg")
abstract VideoConverter bindsVideoConverter(final FFmpegVideoConverter converter);
- @Binds
- abstract VideoConverter bindsDefaultVideoConverter(final FFmpegVideoConverter converter);
+ @Provides
+ @IntoMap
+ @ToolTypeKey(ToolType.VIDEO_CONVERTER)
+ static String bindsDefaultVideoConverter() {
+ return "ffmpeg";
+ }
@Binds
@IntoMap
@StringKey("ffprobe")
abstract VideoLoader bindsVideoLoader(final FFprobeVideoLoader loader);
- @Binds
- abstract VideoLoader bindsDefaultVideoLoader(final FFprobeVideoLoader loader);
+ @Provides
+ @IntoMap
+ @ToolTypeKey(ToolType.VIDEO_LOADER)
+ static String bindsDefaultVideoLoader() {
+ return "ffprobe";
+ }
}
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFBundledRoot.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFBundledRoot.java
index 104d206..64a2c4b 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFBundledRoot.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFBundledRoot.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFProbeInstallerPath.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFProbeInstallerPath.java
index 83d0969..95348e9 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFProbeInstallerPath.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFProbeInstallerPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegBundledPath.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegBundledPath.java
index 4b7ef39..780a513 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegBundledPath.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegBundledPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegInstallerPath.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegInstallerPath.java
index bd86030..7a8a54f 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegInstallerPath.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegInstallerPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSetupModule.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSetupModule.java
index 4172aab..c2284ae 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSetupModule.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSetupModule.java
@@ -9,6 +9,7 @@ import com.github.gtache.autosubtitle.modules.impl.ExecutableExtension;
import com.github.gtache.autosubtitle.modules.setup.impl.CacheRoot;
import com.github.gtache.autosubtitle.modules.setup.impl.ToolsRoot;
import com.github.gtache.autosubtitle.modules.setup.impl.VideoConverterSetup;
+import com.github.gtache.autosubtitle.modules.setup.impl.VideoLoaderSetup;
import com.github.gtache.autosubtitle.setup.SetupManager;
import com.github.gtache.autosubtitle.setup.ffmpeg.FFmpegSetupConfiguration;
import com.github.gtache.autosubtitle.setup.ffmpeg.FFmpegSetupManager;
@@ -52,8 +53,10 @@ public abstract class FFmpegSetupModule {
abstract SetupManager bindsFFmpegSetupManager(final FFmpegSetupManager manager);
@Binds
- @VideoConverterSetup
- abstract SetupManager bindsDefaultSetupManager(final FFmpegSetupManager manager);
+ @VideoLoaderSetup
+ @IntoMap
+ @StringKey("ffprobe")
+ abstract SetupManager bindsFFprobeSetupManager(final FFmpegSetupManager manager);
@Provides
static FFmpegSetupConfiguration providesFFmpegSetupConfiguration(@FFBundledRoot final Path root, @FFmpegBundledPath final Path bundledPath, @FFmpegSystemPath final Path systemPath,
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSystemPath.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSystemPath.java
index c393a77..7f7cc64 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSystemPath.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegSystemPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegVersion.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegVersion.java
index c798f05..7d62d25 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegVersion.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFmpegVersion.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeBundledPath.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeBundledPath.java
index df69cf1..f087bf7 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeBundledPath.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeBundledPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeSystemPath.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeSystemPath.java
index f63e040..7d7f531 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeSystemPath.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/modules/setup/ffmpeg/FFprobeSystemPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.ffmpeg;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/setup/ffmpeg/FFmpegSetupManager.java b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/setup/ffmpeg/FFmpegSetupManager.java
index 031b2e2..6efde97 100644
--- a/ffmpeg/src/main/java/com/github/gtache/autosubtitle/setup/ffmpeg/FFmpegSetupManager.java
+++ b/ffmpeg/src/main/java/com/github/gtache/autosubtitle/setup/ffmpeg/FFmpegSetupManager.java
@@ -11,6 +11,7 @@ import com.github.gtache.autosubtitle.setup.impl.AbstractSetupManager;
import javax.inject.Inject;
import javax.inject.Singleton;
+
import java.io.IOException;
import java.net.http.HttpClient;
import java.nio.file.Files;
diff --git a/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/main/MainController.java b/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/MainController.java
similarity index 84%
rename from gui/api/src/main/java/com/github/gtache/autosubtitle/gui/main/MainController.java
rename to gui/api/src/main/java/com/github/gtache/autosubtitle/gui/MainController.java
index bd6aaaa..a4f437e 100644
--- a/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/main/MainController.java
+++ b/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/MainController.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.main;
+package com.github.gtache.autosubtitle.gui;
/**
* Controller for the main view
diff --git a/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/main/MainModel.java b/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/MainModel.java
similarity index 84%
rename from gui/api/src/main/java/com/github/gtache/autosubtitle/gui/main/MainModel.java
rename to gui/api/src/main/java/com/github/gtache/autosubtitle/gui/MainModel.java
index fac95e6..e69d43d 100644
--- a/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/main/MainModel.java
+++ b/gui/api/src/main/java/com/github/gtache/autosubtitle/gui/MainModel.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.main;
+package com.github.gtache.autosubtitle.gui;
/**
* Model for the main view
diff --git a/gui/api/src/main/java/module-info.java b/gui/api/src/main/java/module-info.java
index c7c870b..05085f4 100644
--- a/gui/api/src/main/java/module-info.java
+++ b/gui/api/src/main/java/module-info.java
@@ -4,7 +4,6 @@
module com.github.gtache.autosubtitle.gui.api {
requires transitive com.github.gtache.autosubtitle.api;
exports com.github.gtache.autosubtitle.gui;
- exports com.github.gtache.autosubtitle.gui.main;
exports com.github.gtache.autosubtitle.gui.media;
exports com.github.gtache.autosubtitle.gui.parameters;
exports com.github.gtache.autosubtitle.gui.setup;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/ParametersBundleProvider.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/parameters/impl/spi/ParametersBundleProvider.java
similarity index 74%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/ParametersBundleProvider.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/parameters/impl/spi/ParametersBundleProvider.java
index b9b7a5d..2da8ba7 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/ParametersBundleProvider.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/parameters/impl/spi/ParametersBundleProvider.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.parameters.impl.spi;
import java.util.spi.ResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/ParametersBundleProviderImpl.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/parameters/impl/spi/ParametersBundleProviderImpl.java
similarity index 78%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/ParametersBundleProviderImpl.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/parameters/impl/spi/ParametersBundleProviderImpl.java
index 72c1110..da4e7fa 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/ParametersBundleProviderImpl.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/parameters/impl/spi/ParametersBundleProviderImpl.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.parameters.impl.spi;
import java.util.spi.AbstractResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SetupBundleProvider.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/setup/impl/spi/SetupBundleProvider.java
similarity index 74%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SetupBundleProvider.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/setup/impl/spi/SetupBundleProvider.java
index de42d4c..01a721c 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SetupBundleProvider.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/setup/impl/spi/SetupBundleProvider.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.setup.impl.spi;
import java.util.spi.ResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SetupBundleProviderImpl.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/setup/impl/spi/SetupBundleProviderImpl.java
similarity index 79%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SetupBundleProviderImpl.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/setup/impl/spi/SetupBundleProviderImpl.java
index a35fbc0..19d7fba 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SetupBundleProviderImpl.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/setup/impl/spi/SetupBundleProviderImpl.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.setup.impl.spi;
import java.util.spi.AbstractResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SubtitlesBundleProvider.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/impl/spi/SubtitlesBundleProvider.java
similarity index 74%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SubtitlesBundleProvider.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/impl/spi/SubtitlesBundleProvider.java
index 143820d..17ee09e 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SubtitlesBundleProvider.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/impl/spi/SubtitlesBundleProvider.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.subtitles.impl.spi;
import java.util.spi.ResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SubtitlesBundleProviderImpl.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/impl/spi/SubtitlesBundleProviderImpl.java
similarity index 78%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SubtitlesBundleProviderImpl.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/impl/spi/SubtitlesBundleProviderImpl.java
index 5657769..731dc84 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/SubtitlesBundleProviderImpl.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/impl/spi/SubtitlesBundleProviderImpl.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.subtitles.impl.spi;
import java.util.spi.AbstractResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/WorkBundleProvider.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/work/impl/spi/WorkBundleProvider.java
similarity index 75%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/WorkBundleProvider.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/work/impl/spi/WorkBundleProvider.java
index 3583df5..5f0b810 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/WorkBundleProvider.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/work/impl/spi/WorkBundleProvider.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.work.impl.spi;
import java.util.spi.ResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/WorkBundleProviderImpl.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/work/impl/spi/WorkBundleProviderImpl.java
similarity index 79%
rename from gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/WorkBundleProviderImpl.java
rename to gui/core/src/main/java/com/github/gtache/autosubtitle/gui/work/impl/spi/WorkBundleProviderImpl.java
index aa5dbcb..aa42f19 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/impl/spi/WorkBundleProviderImpl.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/gui/work/impl/spi/WorkBundleProviderImpl.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.impl.spi;
+package com.github.gtache.autosubtitle.gui.work.impl.spi;
import java.util.spi.AbstractResourceBundleProvider;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/GuiCoreModule.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/GuiCoreModule.java
index 419c394..f132ad9 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/GuiCoreModule.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/GuiCoreModule.java
@@ -20,32 +20,31 @@ public final class GuiCoreModule {
@Provides
static ResourceBundle providesBundle() {
return new CombinedResourceBundle(ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.impl.MainBundle"),
- ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.impl.SetupBundle"),
- ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.impl.WorkBundle"),
- ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.impl.ParametersBundle"),
- ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.impl.SubtitlesBundle"),
- ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.impl.MediaBundle"));
+ ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.setup.impl.SetupBundle"),
+ ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.work.impl.WorkBundle"),
+ ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.parameters.impl.ParametersBundle"),
+ ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.subtitles.impl.SubtitlesBundle"),
+ ResourceBundle.getBundle("com.github.gtache.autosubtitle.gui.media.impl.MediaBundle"));
}
@Provides
@Play
static byte[] providesPlayImage() {
- try (final var in = GuiCoreModule.class.getResourceAsStream("/com/github/gtache/autosubtitle/gui/impl/play_64.png")) {
- if (in == null) {
- throw new UncheckedIOException(new IOException("Resource not found : /com/github/gtache/autosubtitle/gui/impl/play_64.png"));
- }
- return in.readAllBytes();
- } catch (final IOException e) {
- throw new UncheckedIOException(e);
- }
+ final var path = "/com/github/gtache/autosubtitle/gui/media/impl/play_64.png";
+ return readResource(path);
}
@Provides
@Pause
static byte[] providesPauseImage() {
- try (final var in = GuiCoreModule.class.getResourceAsStream("/com/github/gtache/autosubtitle/gui/impl/pause_64.png")) {
+ final var path = "/com/github/gtache/autosubtitle/gui/media/impl/pause_64.png";
+ return readResource(path);
+ }
+
+ private static byte[] readResource(final String path) {
+ try (final var in = GuiCoreModule.class.getResourceAsStream(path)) {
if (in == null) {
- throw new UncheckedIOException(new IOException("Resource not found : /com/github/gtache/autosubtitle/gui/impl/pause_64.png"));
+ throw new UncheckedIOException(new IOException("Resource not found : " + path));
}
return in.readAllBytes();
} catch (final IOException e) {
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Pause.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Pause.java
index 313eafc..1bff173 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Pause.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Pause.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.gui.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Play.java b/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Play.java
index b035666..d636de3 100644
--- a/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Play.java
+++ b/gui/core/src/main/java/com/github/gtache/autosubtitle/modules/gui/impl/Play.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.gui.impl;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/gui/core/src/main/java/module-info.java b/gui/core/src/main/java/module-info.java
index 48e0010..71c65d5 100644
--- a/gui/core/src/main/java/module-info.java
+++ b/gui/core/src/main/java/module-info.java
@@ -1,12 +1,3 @@
-import com.github.gtache.autosubtitle.gui.impl.spi.MainBundleProvider;
-import com.github.gtache.autosubtitle.gui.impl.spi.MainBundleProviderImpl;
-import com.github.gtache.autosubtitle.gui.impl.spi.ParametersBundleProvider;
-import com.github.gtache.autosubtitle.gui.impl.spi.ParametersBundleProviderImpl;
-import com.github.gtache.autosubtitle.gui.impl.spi.SetupBundleProvider;
-import com.github.gtache.autosubtitle.gui.impl.spi.SetupBundleProviderImpl;
-import com.github.gtache.autosubtitle.gui.impl.spi.WorkBundleProvider;
-import com.github.gtache.autosubtitle.gui.impl.spi.WorkBundleProviderImpl;
-
/**
* Core gui module for autosubtitle
*/
@@ -14,12 +5,13 @@ module com.github.gtache.autosubtitle.gui.core {
requires transitive com.github.gtache.autosubtitle.gui.api;
requires transitive com.github.gtache.autosubtitle.core;
requires org.apache.logging.log4j;
+
exports com.github.gtache.autosubtitle.gui.impl;
exports com.github.gtache.autosubtitle.gui.impl.spi;
+ exports com.github.gtache.autosubtitle.gui.parameters.impl.spi;
+ exports com.github.gtache.autosubtitle.gui.setup.impl.spi;
+ exports com.github.gtache.autosubtitle.gui.subtitles.impl.spi;
+ exports com.github.gtache.autosubtitle.gui.work.impl.spi;
+
exports com.github.gtache.autosubtitle.modules.gui.impl;
-
- provides MainBundleProvider with MainBundleProviderImpl;
- provides ParametersBundleProvider with ParametersBundleProviderImpl;
- provides SetupBundleProvider with SetupBundleProviderImpl;
- provides WorkBundleProvider with WorkBundleProviderImpl;
}
\ No newline at end of file
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/MediaBundle.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/MediaBundle.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/MediaBundle.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/MediaBundle.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/MediaBundle_fr.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/MediaBundle_fr.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/MediaBundle_fr.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/MediaBundle_fr.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/pause_64.png b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/pause_64.png
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/pause_64.png
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/pause_64.png
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/play_64.png b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/play_64.png
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/play_64.png
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/media/impl/play_64.png
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/ParametersBundle.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/parameters/impl/ParametersBundle.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/ParametersBundle.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/parameters/impl/ParametersBundle.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/ParametersBundle_fr.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/parameters/impl/ParametersBundle_fr.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/ParametersBundle_fr.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/parameters/impl/ParametersBundle_fr.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SetupBundle.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/setup/impl/SetupBundle.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SetupBundle.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/setup/impl/SetupBundle.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SetupBundle_fr.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/setup/impl/SetupBundle_fr.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SetupBundle_fr.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/setup/impl/SetupBundle_fr.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SubtitlesBundle.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/subtitles/impl/SubtitlesBundle.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SubtitlesBundle.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/subtitles/impl/SubtitlesBundle.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SubtitlesBundle_fr.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/subtitles/impl/SubtitlesBundle_fr.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/SubtitlesBundle_fr.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/subtitles/impl/SubtitlesBundle_fr.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/WorkBundle.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/work/impl/WorkBundle.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/WorkBundle.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/work/impl/WorkBundle.properties
diff --git a/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/WorkBundle_fr.properties b/gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/work/impl/WorkBundle_fr.properties
similarity index 100%
rename from gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/impl/WorkBundle_fr.properties
rename to gui/core/src/main/resources/com/github/gtache/autosubtitle/gui/work/impl/WorkBundle_fr.properties
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/main/fx/FXMainController.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/fx/FXMainController.java
similarity index 86%
rename from gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/main/fx/FXMainController.java
rename to gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/fx/FXMainController.java
index 6e7ad5f..9128461 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/main/fx/FXMainController.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/fx/FXMainController.java
@@ -1,7 +1,6 @@
-package com.github.gtache.autosubtitle.gui.main.fx;
+package com.github.gtache.autosubtitle.gui.fx;
-import com.github.gtache.autosubtitle.gui.fx.AbstractFXController;
-import com.github.gtache.autosubtitle.gui.main.MainController;
+import com.github.gtache.autosubtitle.gui.MainController;
import javafx.fxml.FXML;
import javafx.scene.control.TabPane;
import javafx.stage.Window;
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/main/fx/FXMainModel.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/fx/FXMainModel.java
similarity index 86%
rename from gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/main/fx/FXMainModel.java
rename to gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/fx/FXMainModel.java
index 5a48505..7aa546b 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/main/fx/FXMainModel.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/fx/FXMainModel.java
@@ -1,6 +1,6 @@
-package com.github.gtache.autosubtitle.gui.main.fx;
+package com.github.gtache.autosubtitle.gui.fx;
-import com.github.gtache.autosubtitle.gui.main.MainModel;
+import com.github.gtache.autosubtitle.gui.MainModel;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.SimpleIntegerProperty;
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaBinder.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaBinder.java
index 76650c0..600714c 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaBinder.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaBinder.java
@@ -2,10 +2,12 @@ package com.github.gtache.autosubtitle.gui.media.fx;
import com.github.gtache.autosubtitle.gui.fx.FXBinder;
import com.github.gtache.autosubtitle.gui.work.fx.FXWorkModel;
-import javafx.beans.binding.Bindings;
import javax.inject.Inject;
import javax.inject.Singleton;
+
+import javafx.beans.binding.Bindings;
+
import java.util.Objects;
/**
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaController.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaController.java
index eaef8b0..ef97283 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaController.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaController.java
@@ -7,6 +7,10 @@ import com.github.gtache.autosubtitle.modules.gui.impl.Pause;
import com.github.gtache.autosubtitle.modules.gui.impl.Play;
import com.github.gtache.autosubtitle.subtitle.Subtitle;
import com.github.gtache.autosubtitle.subtitle.gui.fx.SubtitleLabel;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import javafx.application.Platform;
import javafx.beans.binding.Bindings;
import javafx.fxml.FXML;
@@ -29,8 +33,6 @@ import javafx.util.Duration;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import javax.inject.Inject;
-import javax.inject.Singleton;
import java.nio.file.Path;
import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaModel.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaModel.java
index 99fdf1f..50736b4 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaModel.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/media/fx/FXMediaModel.java
@@ -3,14 +3,15 @@ package com.github.gtache.autosubtitle.gui.media.fx;
import com.github.gtache.autosubtitle.Video;
import com.github.gtache.autosubtitle.gui.media.MediaModel;
import com.github.gtache.autosubtitle.subtitle.EditableSubtitle;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import javafx.beans.binding.Bindings;
import javafx.beans.property.*;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
-import javax.inject.Inject;
-import javax.inject.Singleton;
-
/**
* FX implementation of {@link MediaModel}
*/
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersController.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersController.java
index 87076f5..cccebf1 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersController.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersController.java
@@ -4,6 +4,10 @@ import com.github.gtache.autosubtitle.gui.fx.AbstractFXController;
import com.github.gtache.autosubtitle.gui.parameters.ParametersController;
import com.github.gtache.autosubtitle.subtitle.OutputFormat;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModel;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import javafx.application.Platform;
import javafx.fxml.FXML;
import javafx.scene.control.TextField;
@@ -15,8 +19,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.controlsfx.control.PrefixSelectionComboBox;
-import javax.inject.Inject;
-import javax.inject.Singleton;
import java.util.function.UnaryOperator;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersModel.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersModel.java
index 76299ab..0036dd3 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersModel.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/parameters/fx/FXParametersModel.java
@@ -10,6 +10,10 @@ import com.github.gtache.autosubtitle.subtitle.OutputFormat;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModel;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModelProvider;
import com.github.gtache.autosubtitle.subtitle.impl.FontImpl;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import javafx.beans.binding.Bindings;
import javafx.beans.property.IntegerProperty;
import javafx.beans.property.ObjectProperty;
@@ -23,8 +27,6 @@ import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.collections.ObservableMap;
-import javax.inject.Inject;
-import javax.inject.Singleton;
import java.util.Map;
/**
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/setup/fx/FXSetupModel.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/setup/fx/FXSetupModel.java
index 64f0c42..b24da01 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/setup/fx/FXSetupModel.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/setup/fx/FXSetupModel.java
@@ -37,7 +37,7 @@ public class FXSetupModel implements SetupModel {
@Inject
FXSetupModel(final Map> setupManagers,
- final Map defaultManagers) {
+ final Map defaultTools) {
final var tmpAvailableSetupManagers = FXCollections.>observableHashMap();
final var tmpSelectedTools = FXCollections.observableHashMap();
final var tmpSelectedSetupManagers = FXCollections.>observableHashMap();
@@ -47,13 +47,22 @@ public class FXSetupModel implements SetupModel {
final var tmpSetupEditables = FXCollections.observableHashMap();
setupManagers.forEach((type, managers) -> {
tmpAvailableSetupManagers.put(type, getUnmodifiableObservableList(managers.values()));
- tmpSelectedTools.put(type, new SimpleStringProperty(getKeyForValue(managers, defaultManagers.get(type))));
+ tmpSelectedTools.put(type, new SimpleStringProperty(defaultTools.get(type)));
tmpSelectedSetupManagers.put(type, new SimpleObjectProperty<>());
tmpSetupStatuses.put(type, new SimpleObjectProperty<>(SetupStatus.ERRORED));
tmpSetupProgresses.put(type, new SimpleDoubleProperty(-2));
tmpSetupProgressLabels.put(type, new SimpleStringProperty(""));
tmpSetupEditables.put(type, new ReadOnlyBooleanWrapper(false));
});
+ for (final var value : ToolType.values()) {
+ tmpAvailableSetupManagers.computeIfAbsent(value, t -> FXCollections.emptyObservableList());
+ tmpSelectedTools.computeIfAbsent(value, t -> new SimpleStringProperty());
+ tmpSelectedSetupManagers.computeIfAbsent(value, t -> new SimpleObjectProperty<>());
+ tmpSetupStatuses.computeIfAbsent(value, t -> new SimpleObjectProperty<>(SetupStatus.ERRORED));
+ tmpSetupProgresses.computeIfAbsent(value, t -> new SimpleDoubleProperty(-2));
+ tmpSetupProgressLabels.computeIfAbsent(value, t -> new SimpleStringProperty(""));
+ tmpSetupEditables.computeIfAbsent(value, t -> new ReadOnlyBooleanWrapper(false));
+ }
this.availableSetupManagers = FXCollections.unmodifiableObservableMap(tmpAvailableSetupManagers);
this.selectedTools = FXCollections.unmodifiableObservableMap(tmpSelectedTools);
this.selectedSetupManagers = FXCollections.unmodifiableObservableMap(tmpSelectedSetupManagers);
@@ -66,12 +75,12 @@ public class FXSetupModel implements SetupModel {
{
setupStatuses.get(type).set(newValue == null ? SetupStatus.ERRORED : newValue.status());
selectedTools.get(type).set(newValue == null ?
- getKeyForValue(setupManagers.get(type), defaultManagers.get(type)) :
+ defaultTools.get(type) :
getKeyForValue(setupManagers.get(type), newValue));
}));
selectedTools.forEach((type, value) -> value.addListener((observable, oldValue, newValue) -> {
if (newValue != null) {
- final var manager = setupManagers.get(type).get(newValue);
+ final var manager = setupManagers.getOrDefault(type, Map.of()).get(newValue);
if (manager != null) {
setSelectedSetupManager(type, manager);
}
@@ -80,7 +89,7 @@ public class FXSetupModel implements SetupModel {
setupInProgress.forEach((type, value) -> value.bind(setupProgresses.get(type).greaterThan(-2)));
- defaultManagers.forEach(this::setSelectedSetupManager);
+ defaultTools.forEach((type, value) -> setSelectedSetupManager(type, setupManagers.getOrDefault(type, Map.of()).get(value)));
}
private static String getKeyForValue(final Map managers, final SetupManager manager) {
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesBinder.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesBinder.java
index a00d665..e706fe3 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesBinder.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesBinder.java
@@ -12,11 +12,12 @@ import com.github.gtache.autosubtitle.subtitle.converter.impl.ParseOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.gui.fx.ObservableSubtitleCollectionImpl;
import com.github.gtache.autosubtitle.subtitle.impl.ExportOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.impl.ImportOptionsImpl;
-import javafx.beans.binding.Bindings;
import javax.inject.Inject;
import javax.inject.Singleton;
+import javafx.beans.binding.Bindings;
+
import static java.util.Objects.requireNonNull;
/**
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesController.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesController.java
index d91f5ff..0943d82 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesController.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesController.java
@@ -10,6 +10,10 @@ import com.github.gtache.autosubtitle.subtitle.converter.ParseException;
import com.github.gtache.autosubtitle.subtitle.gui.fx.ObservableSubtitleCollectionImpl;
import com.github.gtache.autosubtitle.subtitle.gui.fx.ObservableSubtitleImpl;
import com.github.gtache.autosubtitle.translation.TranslationException;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import javafx.application.Platform;
import javafx.beans.binding.Bindings;
import javafx.beans.property.SimpleObjectProperty;
@@ -34,8 +38,6 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.controlsfx.control.PrefixSelectionComboBox;
-import javax.inject.Inject;
-import javax.inject.Singleton;
import java.io.IOException;
import java.nio.file.Path;
import java.text.MessageFormat;
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesModel.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesModel.java
index 9bea1e8..8b60059 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesModel.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/subtitles/fx/FXSubtitlesModel.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.gui.subtitles.fx;
import com.github.gtache.autosubtitle.Language;
+import com.github.gtache.autosubtitle.ToolType;
import com.github.gtache.autosubtitle.gui.subtitles.SubtitlesModel;
import com.github.gtache.autosubtitle.subtitle.ExportOptions;
import com.github.gtache.autosubtitle.subtitle.ImportOptions;
@@ -54,7 +55,7 @@ public class FXSubtitlesModel implements SubtitlesModel importOptions;
@Inject
- FXSubtitlesModel(final Map> translators, final Translator defaultTranslator) {
+ FXSubtitlesModel(final Map> translators, final Map defaultTools) {
this.availableTranslators = FXCollections.unmodifiableObservableMap(FXCollections.observableMap(translators));
this.availableVideoLanguages = FXCollections.unmodifiableObservableList(FXCollections.observableArrayList(Arrays.stream(Language.values())
.sorted((o1, o2) -> {
@@ -83,7 +84,7 @@ public class FXSubtitlesModel implements SubtitlesModel();
this.importOptions = new SimpleObjectProperty<>();
- this.translator = new SimpleObjectProperty<>(defaultTranslator);
+ this.translator = new SimpleObjectProperty<>(translators.get(defaultTools.get(ToolType.TRANSLATOR)));
canSaveSubtitles.bind(Bindings.isNotEmpty(collections));
collections.addListener((MapChangeListener) change ->
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkBinder.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkBinder.java
index eb926e0..1829db2 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkBinder.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkBinder.java
@@ -7,11 +7,12 @@ import com.github.gtache.autosubtitle.subtitle.converter.impl.FormatOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.converter.impl.ParseOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.extractor.impl.ExtractOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.impl.ExportOptionsImpl;
-import javafx.beans.binding.Bindings;
import javax.inject.Inject;
import javax.inject.Singleton;
+import javafx.beans.binding.Bindings;
+
import static java.util.Objects.requireNonNull;
/**
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkController.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkController.java
index 16c3855..161aa21 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkController.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkController.java
@@ -8,6 +8,10 @@ import com.github.gtache.autosubtitle.subtitle.SubtitleCollection;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractEvent;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractException;
import com.github.gtache.autosubtitle.subtitle.extractor.SubtitleExtractorListener;
+
+import javax.inject.Inject;
+import javax.inject.Singleton;
+
import javafx.application.Platform;
import javafx.beans.binding.Bindings;
import javafx.fxml.FXML;
@@ -20,8 +24,6 @@ import javafx.stage.Window;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
-import javax.inject.Inject;
-import javax.inject.Singleton;
import java.io.IOException;
import java.nio.file.Path;
import java.text.MessageFormat;
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkModel.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkModel.java
index bb4561b..c9d6f78 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkModel.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/gui/work/fx/FXWorkModel.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.gui.work.fx;
import com.github.gtache.autosubtitle.Language;
+import com.github.gtache.autosubtitle.ToolType;
import com.github.gtache.autosubtitle.Video;
import com.github.gtache.autosubtitle.VideoConverter;
import com.github.gtache.autosubtitle.VideoLoader;
@@ -56,15 +57,14 @@ public class FXWorkModel implements WorkModel {
private final ObjectProperty extractOptions;
@Inject
- FXWorkModel(final Map> subtitleExtractors, final SubtitleExtractor defaultExtractor,
- final Map videoLoaders, final VideoLoader defaultVideoLoader,
- final Map videoConverters, final VideoConverter defaultVideoConverter) {
+ FXWorkModel(final Map> subtitleExtractors, final Map videoLoaders,
+ final Map videoConverters, final Map defaultTools) {
this.availableSubtitleExtractors = FXCollections.unmodifiableObservableMap(FXCollections.observableMap(subtitleExtractors));
- this.subtitleExtractor = new SimpleObjectProperty<>(defaultExtractor);
+ this.subtitleExtractor = new SimpleObjectProperty<>(subtitleExtractors.get(defaultTools.get(ToolType.SUBTITLE_EXTRACTOR)));
this.availableVideoLoaders = FXCollections.unmodifiableObservableMap(FXCollections.observableMap(videoLoaders));
- this.videoLoader = new SimpleObjectProperty<>(defaultVideoLoader);
+ this.videoLoader = new SimpleObjectProperty<>(videoLoaders.get(defaultTools.get(ToolType.VIDEO_LOADER)));
this.availableVideoConverters = FXCollections.unmodifiableObservableMap(FXCollections.observableMap(videoConverters));
- this.videoConverter = new SimpleObjectProperty<>(defaultVideoConverter);
+ this.videoConverter = new SimpleObjectProperty<>(videoConverters.get(defaultTools.get(ToolType.VIDEO_CONVERTER)));
this.video = new SimpleObjectProperty<>();
this.workStatus = new SimpleObjectProperty<>(WorkStatus.IDLE);
this.progress = new SimpleDoubleProperty(-1);
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/modules/gui/fx/FXModule.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/modules/gui/fx/FXModule.java
index d5aae2c..3fe4af4 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/modules/gui/fx/FXModule.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/modules/gui/fx/FXModule.java
@@ -2,7 +2,7 @@ package com.github.gtache.autosubtitle.modules.gui.fx;
import com.github.gtache.autosubtitle.gui.TimeFormatter;
import com.github.gtache.autosubtitle.gui.fx.ColonTimeFormatter;
-import com.github.gtache.autosubtitle.gui.main.fx.FXMainController;
+import com.github.gtache.autosubtitle.gui.fx.FXMainController;
import com.github.gtache.autosubtitle.gui.media.fx.FXMediaController;
import com.github.gtache.autosubtitle.gui.parameters.fx.FXParametersController;
import com.github.gtache.autosubtitle.gui.setup.fx.FXSetupController;
diff --git a/gui/fx/src/main/java/com/github/gtache/autosubtitle/setup/gui/fx/FXSetupUserBridge.java b/gui/fx/src/main/java/com/github/gtache/autosubtitle/setup/gui/fx/FXSetupUserBridge.java
index 372715b..57ace22 100644
--- a/gui/fx/src/main/java/com/github/gtache/autosubtitle/setup/gui/fx/FXSetupUserBridge.java
+++ b/gui/fx/src/main/java/com/github/gtache/autosubtitle/setup/gui/fx/FXSetupUserBridge.java
@@ -1,6 +1,6 @@
package com.github.gtache.autosubtitle.setup.gui.fx;
-import com.github.gtache.autosubtitle.gui.main.fx.FXMainController;
+import com.github.gtache.autosubtitle.gui.fx.FXMainController;
import com.github.gtache.autosubtitle.setup.SetupUserBridge;
import javafx.application.Platform;
import javafx.scene.control.Alert;
diff --git a/gui/fx/src/main/java/module-info.java b/gui/fx/src/main/java/module-info.java
index d56d3bc..0771da0 100644
--- a/gui/fx/src/main/java/module-info.java
+++ b/gui/fx/src/main/java/module-info.java
@@ -5,27 +5,27 @@ module com.github.gtache.autosubtitle.gui.fx {
requires transitive com.github.gtache.autosubtitle.core;
requires transitive com.github.gtache.autosubtitle.gui.core;
requires transitive javafx.controls;
- requires transitive javafx.media;
requires transitive javafx.fxml;
+ requires transitive javafx.media;
+ requires transitive java.prefs;
requires org.controlsfx.controls;
requires org.apache.logging.log4j;
- requires transitive java.prefs;
exports com.github.gtache.autosubtitle.gui.fx;
+ exports com.github.gtache.autosubtitle.gui.media.fx;
+ exports com.github.gtache.autosubtitle.gui.parameters.fx;
+ exports com.github.gtache.autosubtitle.gui.setup.fx;
+ exports com.github.gtache.autosubtitle.gui.subtitles.fx;
+ exports com.github.gtache.autosubtitle.gui.work.fx;
exports com.github.gtache.autosubtitle.setup.gui.fx;
exports com.github.gtache.autosubtitle.subtitle.gui.fx;
+
exports com.github.gtache.autosubtitle.modules.gui.fx;
+
opens com.github.gtache.autosubtitle.gui.fx to javafx.fxml;
- exports com.github.gtache.autosubtitle.gui.main.fx;
- opens com.github.gtache.autosubtitle.gui.main.fx to javafx.fxml;
- exports com.github.gtache.autosubtitle.gui.media.fx;
opens com.github.gtache.autosubtitle.gui.media.fx to javafx.fxml;
- exports com.github.gtache.autosubtitle.gui.parameters.fx;
opens com.github.gtache.autosubtitle.gui.parameters.fx to javafx.fxml;
- exports com.github.gtache.autosubtitle.gui.setup.fx;
opens com.github.gtache.autosubtitle.gui.setup.fx to javafx.fxml;
- exports com.github.gtache.autosubtitle.gui.subtitles.fx;
opens com.github.gtache.autosubtitle.gui.subtitles.fx to javafx.fxml;
- exports com.github.gtache.autosubtitle.gui.work.fx;
opens com.github.gtache.autosubtitle.gui.work.fx to javafx.fxml;
}
\ No newline at end of file
diff --git a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/mainView.fxml b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/mainView.fxml
index f93226a..e4f6d47 100644
--- a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/mainView.fxml
+++ b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/mainView.fxml
@@ -3,21 +3,21 @@
+ fx:controller="com.github.gtache.autosubtitle.gui.fx.FXMainController">
-
+
-
+
-
+
diff --git a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/mediaView.fxml b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/media/fx/mediaView.fxml
similarity index 100%
rename from gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/mediaView.fxml
rename to gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/media/fx/mediaView.fxml
diff --git a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/parametersView.fxml b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/parameters/fx/parametersView.fxml
similarity index 100%
rename from gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/parametersView.fxml
rename to gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/parameters/fx/parametersView.fxml
diff --git a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/setupView.fxml b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/setup/fx/setupView.fxml
similarity index 100%
rename from gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/setupView.fxml
rename to gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/setup/fx/setupView.fxml
diff --git a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/subtitlesView.fxml b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/subtitles/fx/subtitlesView.fxml
similarity index 100%
rename from gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/subtitlesView.fxml
rename to gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/subtitles/fx/subtitlesView.fxml
diff --git a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/workView.fxml b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/work/fx/workView.fxml
similarity index 81%
rename from gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/workView.fxml
rename to gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/work/fx/workView.fxml
index 73d3cf4..c01d045 100644
--- a/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/fx/workView.fxml
+++ b/gui/fx/src/main/resources/com/github/gtache/autosubtitle/gui/work/fx/workView.fxml
@@ -1,16 +1,8 @@
-
-
-
-
-
-
-
-
-
-
+
+
@@ -51,9 +43,11 @@
-
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/main/fx/TestFXMainController.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/fx/TestFXMainController.java
similarity index 98%
rename from gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/main/fx/TestFXMainController.java
rename to gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/fx/TestFXMainController.java
index d4a9ff4..4a47fe7 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/main/fx/TestFXMainController.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/fx/TestFXMainController.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.main.fx;
+package com.github.gtache.autosubtitle.gui.fx;
import com.github.gtache.autosubtitle.modules.gui.fx.DaggerResourceComponent;
import javafx.fxml.FXMLLoader;
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/main/fx/TestFXMainModel.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/fx/TestFXMainModel.java
similarity index 90%
rename from gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/main/fx/TestFXMainModel.java
rename to gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/fx/TestFXMainModel.java
index fe67062..8692f6a 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/main/fx/TestFXMainModel.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/fx/TestFXMainModel.java
@@ -1,4 +1,4 @@
-package com.github.gtache.autosubtitle.gui.main.fx;
+package com.github.gtache.autosubtitle.gui.fx;
import org.junit.jupiter.api.Test;
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesBinder.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesBinder.java
index 325c89b..6679775 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesBinder.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesBinder.java
@@ -73,7 +73,7 @@ class TestFXSubtitlesBinder {
this.defaultManagers = Map.of(ToolType.TRANSLATOR, firstManager);
this.setupManagers = Map.of(ToolType.TRANSLATOR, Map.of("first", firstManager, "second", secondManager));
this.setupModel = mock(FXSetupModel.class, withSettings().defaultAnswer(CALLS_REAL_METHODS).useConstructor(setupManagers, defaultManagers));
- this.subtitlesModel = new FXSubtitlesModel(translators, firstTranslator);
+ this.subtitlesModel = new FXSubtitlesModel(translators, Map.of(ToolType.TRANSLATOR, "first"));
this.binder = new FXSubtitlesBinder(workModel, parametersModel, setupModel, subtitlesModel);
}
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesController.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesController.java
index 1fbd941..bce168b 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesController.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesController.java
@@ -52,7 +52,7 @@ class TestFXSubtitlesController extends FxRobot {
this.videoConverter = requireNonNull(videoConverter);
this.translator = requireNonNull(translator);
this.timeFormatter = requireNonNull(timeFormatter);
- this.model = spy(new FXSubtitlesModel(Map.of(), translator));
+ this.model = spy(new FXSubtitlesModel(Map.of(), Map.of()));
this.binder = requireNonNull(binder);
this.window = FxToolkit.registerPrimaryStage();
this.controller = spy(FXSubtitlesController.class);
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesModel.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesModel.java
index 1512055..6095d5c 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesModel.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/subtitles/fx/TestFXSubtitlesModel.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.gui.subtitles.fx;
import com.github.gtache.autosubtitle.Language;
+import com.github.gtache.autosubtitle.ToolType;
import com.github.gtache.autosubtitle.subtitle.ExportOptions;
import com.github.gtache.autosubtitle.subtitle.ImportOptions;
import com.github.gtache.autosubtitle.subtitle.gui.fx.ObservableSubtitleCollectionImpl;
@@ -34,7 +35,7 @@ class TestFXSubtitlesModel {
this.translator1 = requireNonNull(translator1);
this.translator2 = requireNonNull(translator2);
this.translators = Map.of("1", translator1, "2", translator2);
- this.model = new FXSubtitlesModel(translators, translator1);
+ this.model = new FXSubtitlesModel(translators, Map.of(ToolType.TRANSLATOR, "1"));
}
@Test
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkBinder.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkBinder.java
index 348c67d..15561bc 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkBinder.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkBinder.java
@@ -2,9 +2,7 @@ package com.github.gtache.autosubtitle.gui.work.fx;
import com.github.gtache.autosubtitle.Language;
import com.github.gtache.autosubtitle.Video;
-import com.github.gtache.autosubtitle.VideoConverter;
import com.github.gtache.autosubtitle.VideoInfo;
-import com.github.gtache.autosubtitle.VideoLoader;
import com.github.gtache.autosubtitle.gui.parameters.fx.FXParametersModel;
import com.github.gtache.autosubtitle.gui.subtitles.fx.FXSubtitlesModel;
import com.github.gtache.autosubtitle.subtitle.OutputFormat;
@@ -12,7 +10,6 @@ import com.github.gtache.autosubtitle.subtitle.converter.impl.FormatOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.converter.impl.ParseOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModel;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModelProvider;
-import com.github.gtache.autosubtitle.subtitle.extractor.SubtitleExtractor;
import com.github.gtache.autosubtitle.subtitle.extractor.impl.ExtractOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.impl.ExportOptionsImpl;
import com.github.gtache.autosubtitle.subtitle.impl.FontImpl;
@@ -53,7 +50,7 @@ class TestFXWorkBinder {
this.defaultMaxLines = 1;
this.parametersModel = mock(FXParametersModel.class, withSettings().defaultAnswer(CALLS_REAL_METHODS).useConstructor(extractionModelProvider, defaultFontFamily, defaultFontSize, defaultMaxLineLength, defaultMaxLines));
this.subtitlesModel = spy(FXSubtitlesModel.class);
- this.workModel = new FXWorkModel(Map.of(), mock(SubtitleExtractor.class), Map.of(), mock(VideoLoader.class), Map.of(), mock(VideoConverter.class)); //TODO
+ this.workModel = new FXWorkModel(Map.of(), Map.of(), Map.of(), Map.of()); //TODO
this.binder = new FXWorkBinder(workModel, parametersModel, subtitlesModel);
}
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkController.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkController.java
index 263f439..9dbfa17 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkController.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkController.java
@@ -42,7 +42,7 @@ class TestFXWorkController extends FxRobot {
this.extractor = requireNonNull(extractor);
this.videoLoader = requireNonNull(videoLoader);
this.videoConverter = requireNonNull(videoConverter);
- this.model = spy(new FXWorkModel(Map.of(), extractor, Map.of(), videoLoader, Map.of(), videoConverter));
+ this.model = spy(new FXWorkModel(Map.of(), Map.of(), Map.of(), Map.of()));
this.binder = requireNonNull(binder);
this.window = FxToolkit.registerPrimaryStage();
this.controller = spy(new FXWorkController(model, binder));
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkModel.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkModel.java
index 6d5d8c9..416021b 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkModel.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/gui/work/fx/TestFXWorkModel.java
@@ -2,14 +2,11 @@ package com.github.gtache.autosubtitle.gui.work.fx;
import com.github.gtache.autosubtitle.Language;
import com.github.gtache.autosubtitle.Video;
-import com.github.gtache.autosubtitle.VideoConverter;
-import com.github.gtache.autosubtitle.VideoLoader;
import com.github.gtache.autosubtitle.gui.work.WorkStatus;
import com.github.gtache.autosubtitle.subtitle.EditableSubtitle;
import com.github.gtache.autosubtitle.subtitle.ExportOptions;
import com.github.gtache.autosubtitle.subtitle.SubtitleCollection;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractOptions;
-import com.github.gtache.autosubtitle.subtitle.extractor.SubtitleExtractor;
import com.github.gtache.autosubtitle.subtitle.gui.fx.ObservableSubtitleCollectionImpl;
import com.github.gtache.autosubtitle.subtitle.gui.fx.ObservableSubtitleImpl;
import org.junit.jupiter.api.Test;
@@ -25,7 +22,7 @@ class TestFXWorkModel {
private final FXWorkModel model;
TestFXWorkModel() {
- this.model = new FXWorkModel(Map.of(), mock(SubtitleExtractor.class), Map.of(), mock(VideoLoader.class), Map.of(), mock(VideoConverter.class)); //TODO
+ this.model = new FXWorkModel(Map.of(), Map.of(), Map.of(), Map.of()); //TODO
}
@Test
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/modules/gui/fx/TestFXModule.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/modules/gui/fx/TestFXModule.java
index 6017094..26acc07 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/modules/gui/fx/TestFXModule.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/modules/gui/fx/TestFXModule.java
@@ -1,6 +1,6 @@
package com.github.gtache.autosubtitle.modules.gui.fx;
-import com.github.gtache.autosubtitle.gui.main.fx.FXMainController;
+import com.github.gtache.autosubtitle.gui.fx.FXMainController;
import com.github.gtache.autosubtitle.gui.media.fx.FXMediaController;
import com.github.gtache.autosubtitle.gui.parameters.fx.FXParametersController;
import com.github.gtache.autosubtitle.gui.setup.fx.FXSetupController;
diff --git a/gui/fx/src/test/java/com/github/gtache/autosubtitle/setup/gui/fx/TestFXSetupUserBridge.java b/gui/fx/src/test/java/com/github/gtache/autosubtitle/setup/gui/fx/TestFXSetupUserBridge.java
index b7362a9..f12bf9b 100644
--- a/gui/fx/src/test/java/com/github/gtache/autosubtitle/setup/gui/fx/TestFXSetupUserBridge.java
+++ b/gui/fx/src/test/java/com/github/gtache/autosubtitle/setup/gui/fx/TestFXSetupUserBridge.java
@@ -1,6 +1,6 @@
package com.github.gtache.autosubtitle.setup.gui.fx;
-import com.github.gtache.autosubtitle.gui.main.fx.FXMainController;
+import com.github.gtache.autosubtitle.gui.fx.FXMainController;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
diff --git a/gui/run/src/main/java/com/github/gtache/autosubtitle/modules/gui/run/RunComponent.java b/gui/run/src/main/java/com/github/gtache/autosubtitle/modules/gui/run/RunComponent.java
index 623b9e6..edce387 100644
--- a/gui/run/src/main/java/com/github/gtache/autosubtitle/modules/gui/run/RunComponent.java
+++ b/gui/run/src/main/java/com/github/gtache/autosubtitle/modules/gui/run/RunComponent.java
@@ -8,10 +8,11 @@ import com.github.gtache.autosubtitle.modules.impl.CoreModule;
import com.github.gtache.autosubtitle.modules.whisper.base.WhisperModule;
import com.github.gtache.autosubtitle.modules.whisperx.WhisperXModule;
import dagger.Component;
-import javafx.fxml.FXMLLoader;
import javax.inject.Singleton;
+import javafx.fxml.FXMLLoader;
+
/**
* Main component
*/
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/Whisper.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/Whisper.java
index 1da1e39..0af0286 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/Whisper.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/Whisper.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisper.base;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperBundledRoot.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperBundledRoot.java
index 34221e6..01976af 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperBundledRoot.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperBundledRoot.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisper.base;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperPythonVersion.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperPythonVersion.java
index 774778b..3c982d0 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperPythonVersion.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperPythonVersion.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisper.base;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperVenvPath.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperVenvPath.java
index 9977780..733b01c 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperVenvPath.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisper/base/WhisperVenvPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisper.base;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/setup/whisper/base/WhisperSetupManager.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/setup/whisper/base/WhisperSetupManager.java
index e36ff8b..6b974de 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/setup/whisper/base/WhisperSetupManager.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/setup/whisper/base/WhisperSetupManager.java
@@ -7,11 +7,13 @@ import com.github.gtache.autosubtitle.setup.SetupManager;
import com.github.gtache.autosubtitle.setup.conda.CondaSetupManager;
import com.github.gtache.autosubtitle.setup.whisper.AbstractWhisperSetupManager;
import com.github.gtache.autosubtitle.setup.whisper.WhisperSetupConfiguration;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import javax.inject.Inject;
import javax.inject.Singleton;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import java.io.IOException;
import java.net.http.HttpClient;
import java.nio.file.Files;
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisper/base/JSONSubtitleConverter.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisper/base/JSONSubtitleConverter.java
index a4e83dd..24d3bdd 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisper/base/JSONSubtitleConverter.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisper/base/JSONSubtitleConverter.java
@@ -12,11 +12,13 @@ import com.github.gtache.autosubtitle.subtitle.converter.ParseOptions;
import com.github.gtache.autosubtitle.subtitle.converter.SubtitleConverter;
import com.github.gtache.autosubtitle.subtitle.impl.SubtitleCollectionImpl;
import com.github.gtache.autosubtitle.subtitle.impl.SubtitleImpl;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import javax.inject.Inject;
import javax.inject.Singleton;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import java.nio.file.Path;
import java.util.Comparator;
import java.util.List;
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisper/base/WhisperSubtitleExtractor.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisper/base/WhisperSubtitleExtractor.java
index b98fc45..083d3e4 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisper/base/WhisperSubtitleExtractor.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisper/base/WhisperSubtitleExtractor.java
@@ -12,6 +12,7 @@ import com.github.gtache.autosubtitle.whisper.WhisperModels;
import javax.inject.Inject;
import javax.inject.Singleton;
+
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
diff --git a/whisper/base/src/main/java/com/github/gtache/autosubtitle/whisper/base/WhisperExtractionModelProvider.java b/whisper/base/src/main/java/com/github/gtache/autosubtitle/whisper/base/WhisperExtractionModelProvider.java
index d39ee77..fe436a5 100644
--- a/whisper/base/src/main/java/com/github/gtache/autosubtitle/whisper/base/WhisperExtractionModelProvider.java
+++ b/whisper/base/src/main/java/com/github/gtache/autosubtitle/whisper/base/WhisperExtractionModelProvider.java
@@ -6,6 +6,7 @@ import com.github.gtache.autosubtitle.whisper.WhisperModels;
import javax.inject.Inject;
import javax.inject.Singleton;
+
import java.util.Arrays;
import java.util.List;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperX.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperX.java
index 09f96c2..20cd007 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperX.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperX.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisperx;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXBundledRoot.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXBundledRoot.java
index 7b9ddcb..810a129 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXBundledRoot.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXBundledRoot.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisperx;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXPythonVersion.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXPythonVersion.java
index 057dd50..de31d7e 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXPythonVersion.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXPythonVersion.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisperx;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXSetupModule.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXSetupModule.java
index 2419b46..29daba4 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXSetupModule.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXSetupModule.java
@@ -25,11 +25,7 @@ public abstract class WhisperXSetupModule {
@IntoMap
@StringKey("whisperx")
abstract SetupManager bindsSubtitleExtractorSetupManager(final WhisperXSetupManager manager);
-
- @Binds
- @SubtitleExtractorSetup
- abstract SetupManager bindsDefaultSubtitleExtractorSetupManager(final WhisperXSetupManager manager);
-
+
@Provides
@WhisperXPythonVersion
static String providesPythonVersion() {
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXVenvPath.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXVenvPath.java
index 011ba9d..958a763 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXVenvPath.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/setup/whisperx/WhisperXVenvPath.java
@@ -1,6 +1,7 @@
package com.github.gtache.autosubtitle.modules.setup.whisperx;
import javax.inject.Qualifier;
+
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/whisperx/WhisperXModule.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/whisperx/WhisperXModule.java
index fa760f6..3576b82 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/whisperx/WhisperXModule.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/modules/whisperx/WhisperXModule.java
@@ -1,11 +1,14 @@
package com.github.gtache.autosubtitle.modules.whisperx;
+import com.github.gtache.autosubtitle.ToolType;
+import com.github.gtache.autosubtitle.modules.impl.ToolTypeKey;
import com.github.gtache.autosubtitle.modules.setup.whisperx.WhisperXSetupModule;
import com.github.gtache.autosubtitle.modules.subtitle.extractor.whisperx.WhisperXExtractorModule;
import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModelProvider;
import com.github.gtache.autosubtitle.whisperx.WhisperXExtractionModelProvider;
import dagger.Binds;
import dagger.Module;
+import dagger.Provides;
import dagger.multibindings.IntoMap;
import dagger.multibindings.StringKey;
@@ -24,6 +27,13 @@ public abstract class WhisperXModule {
@StringKey("whisperx")
abstract ExtractionModelProvider bindsExtractionModelProvider(final WhisperXExtractionModelProvider provider);
+ @Provides
+ @IntoMap
+ @ToolTypeKey(ToolType.SUBTITLE_EXTRACTOR)
+ static String providesDefaultExtractor() {
+ return "whisperx";
+ }
+
@Binds
abstract ExtractionModelProvider bindsDefaultExtractionModelProvider(final WhisperXExtractionModelProvider provider);
}
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/setup/whisperx/WhisperXSetupManager.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/setup/whisperx/WhisperXSetupManager.java
index cfa98ab..fc19550 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/setup/whisperx/WhisperXSetupManager.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/setup/whisperx/WhisperXSetupManager.java
@@ -8,11 +8,13 @@ import com.github.gtache.autosubtitle.setup.SetupUserBridge;
import com.github.gtache.autosubtitle.setup.conda.CondaSetupManager;
import com.github.gtache.autosubtitle.setup.whisper.AbstractWhisperSetupManager;
import com.github.gtache.autosubtitle.setup.whisper.WhisperSetupConfiguration;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
import javax.inject.Inject;
import javax.inject.Singleton;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+
import java.io.IOException;
import java.net.http.HttpClient;
import java.nio.file.Files;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisperx/WhisperXJSONSubtitleConverter.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisperx/WhisperXJSONSubtitleConverter.java
index e453b61..8651b07 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisperx/WhisperXJSONSubtitleConverter.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/converter/json/whisperx/WhisperXJSONSubtitleConverter.java
@@ -15,6 +15,7 @@ import com.github.gtache.autosubtitle.subtitle.impl.SubtitleImpl;
import javax.inject.Inject;
import javax.inject.Singleton;
+
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Comparator;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisperx/WhisperXSubtitleExtractor.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisperx/WhisperXSubtitleExtractor.java
index 76c844b..5a5b682 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisperx/WhisperXSubtitleExtractor.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/subtitle/extractor/whisperx/WhisperXSubtitleExtractor.java
@@ -11,6 +11,7 @@ import com.github.gtache.autosubtitle.subtitle.extractor.whisper.AbstractWhisper
import com.github.gtache.autosubtitle.whisper.WhisperModels;
import javax.inject.Inject;
+
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.List;
diff --git a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/whisperx/WhisperXExtractionModelProvider.java b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/whisperx/WhisperXExtractionModelProvider.java
index 6c978d8..8599edc 100644
--- a/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/whisperx/WhisperXExtractionModelProvider.java
+++ b/whisper/whisperx/src/main/java/com/github/gtache/autosubtitle/whisperx/WhisperXExtractionModelProvider.java
@@ -5,6 +5,7 @@ import com.github.gtache.autosubtitle.subtitle.extractor.ExtractionModelProvider
import com.github.gtache.autosubtitle.whisper.WhisperModels;
import javax.inject.Inject;
+
import java.util.Arrays;
import java.util.List;