diff --git a/client/src/main/java/ctbrec/ui/JavaFxModel.java b/client/src/main/java/ctbrec/ui/JavaFxModel.java index 0f9019d4..f60ce99d 100644 --- a/client/src/main/java/ctbrec/ui/JavaFxModel.java +++ b/client/src/main/java/ctbrec/ui/JavaFxModel.java @@ -10,6 +10,7 @@ import com.squareup.moshi.JsonReader; import com.squareup.moshi.JsonWriter; import ctbrec.Model; +import ctbrec.recorder.download.Download; import ctbrec.recorder.download.StreamSource; import ctbrec.sites.Site; import javafx.beans.property.BooleanProperty; @@ -212,4 +213,9 @@ public class JavaFxModel implements Model { public int compareTo(Model o) { return delegate.compareTo(o); } + + @Override + public Download createDownload() { + return delegate.createDownload(); + } } diff --git a/common/src/main/java/ctbrec/AbstractModel.java b/common/src/main/java/ctbrec/AbstractModel.java index 53198b05..6f34272c 100644 --- a/common/src/main/java/ctbrec/AbstractModel.java +++ b/common/src/main/java/ctbrec/AbstractModel.java @@ -9,6 +9,9 @@ import java.util.concurrent.ExecutionException; import com.squareup.moshi.JsonReader; import com.squareup.moshi.JsonWriter; +import ctbrec.recorder.download.Download; +import ctbrec.recorder.download.HlsDownload; +import ctbrec.recorder.download.MergedHlsDownload; import ctbrec.sites.Site; public abstract class AbstractModel implements Model { @@ -184,4 +187,13 @@ public abstract class AbstractModel implements Model { public Site getSite() { return site; } + + @Override + public Download createDownload() { + if(Config.isServerMode()) { + return new HlsDownload(getSite().getHttpClient()); + } else { + return new MergedHlsDownload(getSite().getHttpClient()); + } + } } diff --git a/common/src/main/java/ctbrec/Model.java b/common/src/main/java/ctbrec/Model.java index feb73817..70ddee51 100644 --- a/common/src/main/java/ctbrec/Model.java +++ b/common/src/main/java/ctbrec/Model.java @@ -9,6 +9,7 @@ import com.iheartradio.m3u8.PlaylistException; import com.squareup.moshi.JsonReader; import com.squareup.moshi.JsonWriter; +import ctbrec.recorder.download.Download; import ctbrec.recorder.download.StreamSource; import ctbrec.sites.Site; @@ -101,6 +102,6 @@ public interface Model extends Comparable { public void setSuspended(boolean suspended); - + public Download createDownload(); } \ No newline at end of file diff --git a/common/src/main/java/ctbrec/recorder/LocalRecorder.java b/common/src/main/java/ctbrec/recorder/LocalRecorder.java index 6c9ab6df..97982b94 100644 --- a/common/src/main/java/ctbrec/recorder/LocalRecorder.java +++ b/common/src/main/java/ctbrec/recorder/LocalRecorder.java @@ -61,8 +61,6 @@ import ctbrec.io.HttpClient; import ctbrec.io.StreamRedirectThread; import ctbrec.recorder.PlaylistGenerator.InvalidPlaylistException; import ctbrec.recorder.download.Download; -import ctbrec.recorder.download.HlsDownload; -import ctbrec.recorder.download.MergedHlsDownload; public class LocalRecorder implements Recorder { @@ -194,13 +192,7 @@ public class LocalRecorder implements Recorder { } LOG.debug("Starting recording for model {}", model.getName()); - Download download; - if (Config.isServerMode()) { - download = new HlsDownload(client); - } else { - download = new MergedHlsDownload(client); - } - + Download download = model.createDownload(); recordingProcesses.put(model, download); new Thread() { @Override