Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public final class PlayerConfiguration {
// Output
public final AudioOutput output;
public final String outputClass;
public final Object[] outputClassParams;
public final File outputPipe;
public final File metadataPipe;
public final String[] mixerSearchKeywords;
Expand All @@ -52,7 +53,7 @@ public final class PlayerConfiguration {
public final File localFilesPath;

private PlayerConfiguration(AudioQuality preferredQuality, boolean enableNormalisation, float normalisationPregain, boolean autoplayEnabled, int crossfadeDuration, boolean preloadEnabled,
AudioOutput output, String outputClass, File outputPipe, File metadataPipe, String[] mixerSearchKeywords, boolean logAvailableMixers, int releaseLineDelay,
AudioOutput output, String outputClass, Object[] outputClassParams, File outputPipe, File metadataPipe, String[] mixerSearchKeywords, boolean logAvailableMixers, int releaseLineDelay,
int initialVolume, int volumeSteps, boolean bypassSinkVolume, File localFilesPath) {
this.preferredQuality = preferredQuality;
this.enableNormalisation = enableNormalisation;
Expand All @@ -61,6 +62,7 @@ private PlayerConfiguration(AudioQuality preferredQuality, boolean enableNormali
this.crossfadeDuration = crossfadeDuration;
this.output = output;
this.outputClass = outputClass;
this.outputClassParams = outputClassParams;
this.outputPipe = outputPipe;
this.metadataPipe = metadataPipe;
this.mixerSearchKeywords = mixerSearchKeywords;
Expand Down Expand Up @@ -89,6 +91,7 @@ public final static class Builder {
// Output
private AudioOutput output = AudioOutput.MIXER;
private String outputClass;
private Object[] outputClassParams;
private File outputPipe;
private File metadataPipe;
private String[] mixerSearchKeywords;
Expand Down Expand Up @@ -141,6 +144,11 @@ public Builder setOutputClass(String outputClass) {
return this;
}

public Builder setOutputClassParams(Object[] outputClassParams) {
this.outputClassParams = outputClassParams;
return this;
}

public Builder setOutputPipe(File outputPipe) {
this.outputPipe = outputPipe;
return this;
Expand Down Expand Up @@ -200,7 +208,7 @@ public Builder setLocalFilesPath(File localFilesPath) {
@Contract(value = " -> new", pure = true)
public @NotNull PlayerConfiguration build() {
return new PlayerConfiguration(preferredQuality, enableNormalisation, normalisationPregain, autoplayEnabled, crossfadeDuration, preloadEnabled,
output, outputClass, outputPipe, metadataPipe, mixerSearchKeywords, logAvailableMixers, releaseLineDelay,
output, outputClass, outputClassParams, outputPipe, metadataPipe, mixerSearchKeywords, logAvailableMixers, releaseLineDelay,
initialVolume, volumeSteps, bypassSinkVolume, localFilesPath);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public AudioSink(@NotNull PlayerConfiguration conf, @NotNull Listener listener)
if (conf.outputClass == null || conf.outputClass.isEmpty())
throw new IllegalArgumentException("Custom output sink class not configured!");

output = initCustomOutputSink(conf.outputClass);
output = initCustomOutputSink(conf.outputClass, conf.outputClassParams);
break;
default:
throw new IllegalArgumentException("Unknown output: " + conf.output);
Expand Down